diff options
Diffstat (limited to 'vendor/lusitanian/oauth/tests/Unit/OAuth2/Service/GoogleTest.php')
-rw-r--r-- | vendor/lusitanian/oauth/tests/Unit/OAuth2/Service/GoogleTest.php | 195 |
1 files changed, 195 insertions, 0 deletions
diff --git a/vendor/lusitanian/oauth/tests/Unit/OAuth2/Service/GoogleTest.php b/vendor/lusitanian/oauth/tests/Unit/OAuth2/Service/GoogleTest.php new file mode 100644 index 00000000..b55808d2 --- /dev/null +++ b/vendor/lusitanian/oauth/tests/Unit/OAuth2/Service/GoogleTest.php @@ -0,0 +1,195 @@ +<?php + +namespace OAuthTest\Unit\OAuth2\Service; + +use OAuth\OAuth2\Service\Google; +use OAuth\Common\Token\TokenInterface; + +class GoogleTest extends \PHPUnit_Framework_TestCase +{ + /** + * @covers OAuth\OAuth2\Service\Google::__construct + */ + public function testConstructCorrectInterfaceWithoutCustomUri() + { + $service = new Google( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'), + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface') + ); + + $this->assertInstanceOf('\\OAuth\\OAuth2\\Service\\ServiceInterface', $service); + } + + /** + * @covers OAuth\OAuth2\Service\Google::__construct + */ + public function testConstructCorrectInstanceWithoutCustomUri() + { + $service = new Google( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'), + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface') + ); + + $this->assertInstanceOf('\\OAuth\\OAuth2\\Service\\AbstractService', $service); + } + + /** + * @covers OAuth\OAuth2\Service\Google::__construct + */ + public function testConstructCorrectInstanceWithCustomUri() + { + $service = new Google( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'), + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface'), + array(), + $this->getMock('\\OAuth\\Common\\Http\\Uri\\UriInterface') + ); + + $this->assertInstanceOf('\\OAuth\\OAuth2\\Service\\AbstractService', $service); + } + + /** + * @covers OAuth\OAuth2\Service\Google::__construct + * @covers OAuth\OAuth2\Service\Google::getAuthorizationEndpoint + */ + public function testGetAuthorizationEndpoint() + { + $service = new Google( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'), + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface') + ); + + $this->assertSame( + 'https://accounts.google.com/o/oauth2/auth?access_type=online', + $service->getAuthorizationEndpoint()->getAbsoluteUri() + ); + + // Verify that 'offine' works + $service->setAccessType('offline'); + $this->assertSame( + 'https://accounts.google.com/o/oauth2/auth?access_type=offline', + $service->getAuthorizationEndpoint()->getAbsoluteUri() + ); + + } + + /** + * @covers OAuth\OAuth2\Service\Google::__construct + * @covers OAuth\OAuth2\Service\Google::getAuthorizationEndpoint + */ + public function testGetAuthorizationEndpointException() + { + $service = new Google( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'), + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface') + ); + + $this->setExpectedException('OAuth\OAuth2\Service\Exception\InvalidAccessTypeException'); + + try { + $service->setAccessType('invalid'); + } catch (InvalidAccessTypeException $e) { + return; + } + $this->fail('Expected InvalidAccessTypeException not thrown'); + } + + /** + * @covers OAuth\OAuth2\Service\Google::__construct + * @covers OAuth\OAuth2\Service\Google::getAccessTokenEndpoint + */ + public function testGetAccessTokenEndpoint() + { + $service = new Google( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'), + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface') + ); + + $this->assertSame( + 'https://accounts.google.com/o/oauth2/token', + $service->getAccessTokenEndpoint()->getAbsoluteUri() + ); + } + + /** + * @covers OAuth\OAuth2\Service\Google::__construct + * @covers OAuth\OAuth2\Service\Google::parseAccessTokenResponse + */ + public function testParseAccessTokenResponseThrowsExceptionOnNulledResponse() + { + $client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'); + $client->expects($this->once())->method('retrieveResponse')->will($this->returnValue(null)); + + $service = new Google( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $client, + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface') + ); + + $this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException'); + + $service->requestAccessToken('foo'); + } + + /** + * @covers OAuth\OAuth2\Service\Google::__construct + * @covers OAuth\OAuth2\Service\Google::parseAccessTokenResponse + */ + public function testParseAccessTokenResponseThrowsExceptionOnError() + { + $client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'); + $client->expects($this->once())->method('retrieveResponse')->will($this->returnValue('error=some_error')); + + $service = new Google( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $client, + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface') + ); + + $this->setExpectedException('\\OAuth\\Common\\Http\\Exception\\TokenResponseException'); + + $service->requestAccessToken('foo'); + } + + /** + * @covers OAuth\OAuth2\Service\Google::__construct + * @covers OAuth\OAuth2\Service\Google::parseAccessTokenResponse + */ + public function testParseAccessTokenResponseValidWithoutRefreshToken() + { + $client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'); + $client->expects($this->once())->method('retrieveResponse')->will($this->returnValue('{"access_token":"foo","expires_in":"bar"}')); + + $service = new Google( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $client, + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface') + ); + + $this->assertInstanceOf('\\OAuth\\OAuth2\\Token\\StdOAuth2Token', $service->requestAccessToken('foo')); + } + + /** + * @covers OAuth\OAuth2\Service\Google::__construct + * @covers OAuth\OAuth2\Service\Google::parseAccessTokenResponse + */ + public function testParseAccessTokenResponseValidWithRefreshToken() + { + $client = $this->getMock('\\OAuth\\Common\\Http\\Client\\ClientInterface'); + $client->expects($this->once())->method('retrieveResponse')->will($this->returnValue('{"access_token":"foo","expires_in":"bar","refresh_token":"baz"}')); + + $service = new Google( + $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'), + $client, + $this->getMock('\\OAuth\\Common\\Storage\\TokenStorageInterface') + ); + + $this->assertInstanceOf('\\OAuth\\OAuth2\\Token\\StdOAuth2Token', $service->requestAccessToken('foo')); + } +} |