diff options
author | Frédéric Guillot <fred@kanboard.net> | 2014-11-06 06:41:47 -0500 |
---|---|---|
committer | Frédéric Guillot <fred@kanboard.net> | 2014-11-06 06:41:47 -0500 |
commit | c80c15dcc33a70acc2b177691d33f088f8c2541e (patch) | |
tree | bc3e44e35b97b751c145cc5797a0faf356922244 /vendor/lusitanian/oauth/tests/Unit/OAuth1/Service/EtsyTest.php | |
parent | c91ff61cdfa8b5eb76783927e5b8710f2a9f2601 (diff) |
Include all vendor files in the repo to be easier for people
Diffstat (limited to 'vendor/lusitanian/oauth/tests/Unit/OAuth1/Service/EtsyTest.php')
-rw-r--r-- | vendor/lusitanian/oauth/tests/Unit/OAuth1/Service/EtsyTest.php | 286 |
1 files changed, 286 insertions, 0 deletions
diff --git a/vendor/lusitanian/oauth/tests/Unit/OAuth1/Service/EtsyTest.php b/vendor/lusitanian/oauth/tests/Unit/OAuth1/Service/EtsyTest.php new file mode 100644 index 00000000..97ad3cdd --- /dev/null +++ b/vendor/lusitanian/oauth/tests/Unit/OAuth1/Service/EtsyTest.php @@ -0,0 +1,286 @@ +<?php + +namespace OAuthTest\Unit\OAuth1\Service; + +use OAuth\OAuth1\Service\Etsy; + +class EtsyTest extends \PHPUnit_Framework_TestCase +{ + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + */ + public function testConstructCorrectInterfaceWithoutCustomUri() + { + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'), + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'), + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface') + ); + + $this->assertInstanceOf('\\OAuth\\OAuth1\\Service\\ServiceInterface', $service); + } + + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + */ + public function testConstructCorrectInstanceWithoutCustomUri() + { + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'), + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'), + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface') + ); + + $this->assertInstanceOf('\\OAuth\\OAuth1\\Service\\AbstractService', $service); + } + + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + */ + public function testConstructCorrectInstanceWithCustomUri() + { + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'), + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'), + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Uri\\UriInterface') + ); + + $this->assertInstanceOf('\\OAuth\\OAuth1\\Service\\AbstractService', $service); + } + + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + * @covers OAuth\OAuth1\Service\Etsy::getRequestTokenEndpoint + */ + public function testGetRequestTokenEndpoint() + { + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'), + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'), + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface') + ); + + $this->assertSame( + 'https://openapi.etsy.com/v2/oauth/request_token', + $service->getRequestTokenEndpoint()->getAbsoluteUri() + ); + + $service->setScopes(array('email_r', 'cart_rw')); + + $this->assertSame( + 'https://openapi.etsy.com/v2/oauth/request_token?scope=email_r%20cart_rw', + $service->getRequestTokenEndpoint()->getAbsoluteUri() + ); + + } + + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + * @covers OAuth\OAuth1\Service\Etsy::getAuthorizationEndpoint + */ + public function testGetAuthorizationEndpoint() + { + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'), + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'), + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface') + ); + + $this->assertSame( + 'https://openapi.etsy.com/v2/', + $service->getAuthorizationEndpoint()->getAbsoluteUri() + ); + } + + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + * @covers OAuth\OAuth1\Service\Etsy::getAccessTokenEndpoint + */ + public function testGetAccessTokenEndpoint() + { + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'), + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'), + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface') + ); + + $this->assertSame( + 'https://openapi.etsy.com/v2/oauth/access_token', + $service->getAccessTokenEndpoint()->getAbsoluteUri() + ); + } + + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + * @covers OAuth\OAuth1\Service\Etsy::getRequestTokenEndpoint + * @covers OAuth\OAuth1\Service\Etsy::parseRequestTokenResponse + */ + public function testParseRequestTokenResponseThrowsExceptionOnNulledResponse() + { + $client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'); + $client->expects($this->once())->method('retrieveResponse')->will($this->returnValue(null)); + + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $client, + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'), + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface') + ); + + $this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException'); + + $service->requestRequestToken(); + } + + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + * @covers OAuth\OAuth1\Service\Etsy::getRequestTokenEndpoint + * @covers OAuth\OAuth1\Service\Etsy::parseRequestTokenResponse + */ + public function testParseRequestTokenResponseThrowsExceptionOnResponseNotAnArray() + { + $client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'); + $client->expects($this->once())->method('retrieveResponse')->will($this->returnValue('notanarray')); + + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $client, + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'), + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface') + ); + + $this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException'); + + $service->requestRequestToken(); + } + + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + * @covers OAuth\OAuth1\Service\Etsy::getRequestTokenEndpoint + * @covers OAuth\OAuth1\Service\Etsy::parseRequestTokenResponse + */ + public function testParseRequestTokenResponseThrowsExceptionOnResponseCallbackNotSet() + { + $client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'); + $client->expects($this->once())->method('retrieveResponse')->will($this->returnValue('foo=bar')); + + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $client, + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'), + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface') + ); + + $this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException'); + + $service->requestRequestToken(); + } + + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + * @covers OAuth\OAuth1\Service\Etsy::getRequestTokenEndpoint + * @covers OAuth\OAuth1\Service\Etsy::parseRequestTokenResponse + */ + public function testParseRequestTokenResponseThrowsExceptionOnResponseCallbackNotTrue() + { + $client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'); + $client->expects($this->once())->method('retrieveResponse')->will($this->returnValue( + 'oauth_callback_confirmed=false' + )); + + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $client, + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'), + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface') + ); + + $this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException'); + + $service->requestRequestToken(); + } + + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + * @covers OAuth\OAuth1\Service\Etsy::getRequestTokenEndpoint + * @covers OAuth\OAuth1\Service\Etsy::parseRequestTokenResponse + * @covers OAuth\OAuth1\Service\Etsy::parseAccessTokenResponse + */ + public function testParseRequestTokenResponseValid() + { + $client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'); + $client->expects($this->once())->method('retrieveResponse')->will($this->returnValue( + 'oauth_callback_confirmed=true&oauth_token=foo&oauth_token_secret=bar' + )); + + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $client, + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'), + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface') + ); + + $this->assertInstanceOf('\\OAuth\\OAuth1\\Token\\StdOAuth1Token', $service->requestRequestToken()); + } + + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + * @covers OAuth\OAuth1\Service\Etsy::getRequestTokenEndpoint + * @covers OAuth\OAuth1\Service\Etsy::parseAccessTokenResponse + */ + public function testParseAccessTokenResponseThrowsExceptionOnError() + { + $client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'); + $client->expects($this->once())->method('retrieveResponse')->will($this->returnValue('error=bar')); + + $token = $this->getMock('\\OAuth\\OAuth1\\Token\\TokenInterface'); + + $storage = $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'); + $storage->expects($this->any())->method('retrieveAccessToken')->will($this->returnValue($token)); + + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $client, + $storage, + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface') + ); + + $this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException'); + + $service->requestAccessToken('foo', 'bar', $token); + } + + /** + * @covers OAuth\OAuth1\Service\Etsy::__construct + * @covers OAuth\OAuth1\Service\Etsy::getRequestTokenEndpoint + * @covers OAuth\OAuth1\Service\Etsy::parseAccessTokenResponse + */ + public function testParseAccessTokenResponseValid() + { + $client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'); + $client->expects($this->once())->method('retrieveResponse')->will($this->returnValue( + 'oauth_token=foo&oauth_token_secret=bar' + )); + + $token = $this->getMock('\\OAuth\\OAuth1\\Token\\TokenInterface'); + + $storage = $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'); + $storage->expects($this->any())->method('retrieveAccessToken')->will($this->returnValue($token)); + + $service = new Etsy( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $client, + $storage, + $this->getMock('\\OAuth\\OAuth1\\Signature\\SignatureInterface') + ); + + $this->assertInstanceOf('\\OAuth\\OAuth1\\Token\\StdOAuth1Token', $service->requestAccessToken('foo', 'bar', $token)); + } +} |