diff --git a/tests/FetchTestDisabled.php b/tests/FetchTestDisabled.php index b939370..6c27c85 100644 --- a/tests/FetchTestDisabled.php +++ b/tests/FetchTestDisabled.php @@ -32,7 +32,6 @@ class FetchTest extends PHPUnit\Framework\TestCase { $url = 'https://nghttp2.org/httpbin/ip'; $response = $this->http->get($url); - $this->assertEquals('', $response['error']); + $this->assertEquals('', $response['error']); } - } \ No newline at end of file diff --git a/tests/LibraryTest.php b/tests/LibraryTest.php index 2a70683..3252faa 100644 --- a/tests/LibraryTest.php +++ b/tests/LibraryTest.php @@ -108,4 +108,30 @@ class LibraryTest extends PHPUnit\Framework\TestCase $normalXRay->parse($url, $html) ); } + + public function testDefaultOptionsAreUsedForFetching() + { + // LibraryTest::testDefaultOptionsAreUsed can only test that default options are merged and passed + // to the relevant format handler. To test that they’re additionally passed to the fetcher currently + // requires a network request to the twitter API for an auth error. + // A potential future improvement for this would be to make a new mock HTTP client object which + // accepts a callback, which gets passed the request it would send. We can then check that the + // request has the parameters we want without having to actually hit the network. + $url = 'https://twitter.com/BarnabyWalters/status/990659593561952256'; + + // Confirm the expected behaviour. + $xray = new p3k\XRay(); + $result = $xray->parse($url); + $this->assertEquals('missing_parameters', $result['error']); + + $xray = new p3k\XRay([ + 'twitter_api_key' => 'extremely real API credentials', + 'twitter_api_secret' => 'extremely real API credentials', + 'twitter_access_token' => 'extremely real API credentials', + 'twitter_access_token_secret' => 'extremely real API credentials' + ]); + $result = $xray->parse($url); + $this->assertEquals('twitter_error', $result['error']); + } + }