diff options
Diffstat (limited to 'vendor/lusitanian/oauth/tests/Unit/OAuth1/Signature/SignatureTest.php')
-rw-r--r-- | vendor/lusitanian/oauth/tests/Unit/OAuth1/Signature/SignatureTest.php | 325 |
1 files changed, 325 insertions, 0 deletions
diff --git a/vendor/lusitanian/oauth/tests/Unit/OAuth1/Signature/SignatureTest.php b/vendor/lusitanian/oauth/tests/Unit/OAuth1/Signature/SignatureTest.php new file mode 100644 index 00000000..44c731f5 --- /dev/null +++ b/vendor/lusitanian/oauth/tests/Unit/OAuth1/Signature/SignatureTest.php @@ -0,0 +1,325 @@ +<?php + +namespace OAuthTest\Unit\OAuth1\Signature; + +use OAuth\OAuth1\Signature\Signature; + +class SignatureTest extends \PHPUnit_Framework_TestCase +{ + /** + * @covers OAuth\OAuth1\Signature\Signature::__construct + */ + public function testConstructCorrectInterface() + { + $signature = new Signature($this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface')); + + $this->assertInstanceOf('\\OAuth\\OAuth1\\Signature\\SignatureInterface', $signature); + } + + /** + * @covers OAuth\OAuth1\Signature\Signature::__construct + * @covers OAuth\OAuth1\Signature\Signature::setHashingAlgorithm + */ + public function testSetHashingAlgorithm() + { + $signature = new Signature($this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface')); + + $this->assertNull($signature->setHashingAlgorithm('foo')); + } + + /** + * @covers OAuth\OAuth1\Signature\Signature::__construct + * @covers OAuth\OAuth1\Signature\Signature::setTokenSecret + */ + public function testSetTokenSecret() + { + $signature = new Signature($this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface')); + + $this->assertNull($signature->setTokenSecret('foo')); + } + + /** + * @covers OAuth\OAuth1\Signature\Signature::__construct + * @covers OAuth\OAuth1\Signature\Signature::setHashingAlgorithm + * @covers OAuth\OAuth1\Signature\Signature::setTokenSecret + * @covers OAuth\OAuth1\Signature\Signature::getSignature + * @covers OAuth\OAuth1\Signature\Signature::buildSignatureDataString + * @covers OAuth\OAuth1\Signature\Signature::hash + * @covers OAuth\OAuth1\Signature\Signature::getSigningKey + */ + public function testGetSignatureBareUri() + { + $credentials = $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'); + $credentials->expects($this->any()) + ->method('getConsumerSecret') + ->will($this->returnValue('foo')); + + + $signature = new Signature($credentials); + + $signature->setHashingAlgorithm('HMAC-SHA1'); + $signature->setTokenSecret('foo'); + + $uri = $this->getMock('\\OAuth\\Common\\Http\\Uri\\UriInterface'); + $uri->expects($this->any()) + ->method('getQuery') + ->will($this->returnValue('')); + $uri->expects($this->any()) + ->method('getScheme') + ->will($this->returnValue('http')); + $uri->expects($this->any()) + ->method('getRawAuthority') + ->will($this->returnValue('')); + $uri->expects($this->any()) + ->method('getPath') + ->will($this->returnValue('/foo')); + + $this->assertSame('uoCpiII/Lg/cPiF0XrU2pj4eGFQ=', $signature->getSignature($uri, array('pee' => 'haa'))); + } + + /** + * @covers OAuth\OAuth1\Signature\Signature::__construct + * @covers OAuth\OAuth1\Signature\Signature::setHashingAlgorithm + * @covers OAuth\OAuth1\Signature\Signature::setTokenSecret + * @covers OAuth\OAuth1\Signature\Signature::getSignature + * @covers OAuth\OAuth1\Signature\Signature::buildSignatureDataString + * @covers OAuth\OAuth1\Signature\Signature::hash + * @covers OAuth\OAuth1\Signature\Signature::getSigningKey + */ + public function testGetSignatureWithQueryString() + { + $credentials = $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'); + $credentials->expects($this->any()) + ->method('getConsumerSecret') + ->will($this->returnValue('foo')); + + + $signature = new Signature($credentials); + + $signature->setHashingAlgorithm('HMAC-SHA1'); + $signature->setTokenSecret('foo'); + + $uri = $this->getMock('\\OAuth\\Common\\Http\\Uri\\UriInterface'); + $uri->expects($this->any()) + ->method('getQuery') + ->will($this->returnValue('param1=value1')); + $uri->expects($this->any()) + ->method('getScheme') + ->will($this->returnValue('http')); + $uri->expects($this->any()) + ->method('getRawAuthority') + ->will($this->returnValue('')); + $uri->expects($this->any()) + ->method('getPath') + ->will($this->returnValue('/foo')); + + $this->assertSame('LxtD+WjJBRppIUvEI79iQ7I0hSo=', $signature->getSignature($uri, array('pee' => 'haa'))); + } + + /** + * @covers OAuth\OAuth1\Signature\Signature::__construct + * @covers OAuth\OAuth1\Signature\Signature::setHashingAlgorithm + * @covers OAuth\OAuth1\Signature\Signature::setTokenSecret + * @covers OAuth\OAuth1\Signature\Signature::getSignature + * @covers OAuth\OAuth1\Signature\Signature::buildSignatureDataString + * @covers OAuth\OAuth1\Signature\Signature::hash + * @covers OAuth\OAuth1\Signature\Signature::getSigningKey + */ + public function testGetSignatureWithAuthority() + { + $credentials = $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'); + $credentials->expects($this->any()) + ->method('getConsumerSecret') + ->will($this->returnValue('foo')); + + + $signature = new Signature($credentials); + + $signature->setHashingAlgorithm('HMAC-SHA1'); + $signature->setTokenSecret('foo'); + + $uri = $this->getMock('\\OAuth\\Common\\Http\\Uri\\UriInterface'); + $uri->expects($this->any()) + ->method('getQuery') + ->will($this->returnValue('param1=value1')); + $uri->expects($this->any()) + ->method('getScheme') + ->will($this->returnValue('http')); + $uri->expects($this->any()) + ->method('getRawAuthority') + ->will($this->returnValue('peehaa:pass')); + $uri->expects($this->any()) + ->method('getPath') + ->will($this->returnValue('/foo')); + + $this->assertSame('MHvkRndIntLrxiPkjkiCNsMEqv4=', $signature->getSignature($uri, array('pee' => 'haa'))); + } + + /** + * @covers OAuth\OAuth1\Signature\Signature::__construct + * @covers OAuth\OAuth1\Signature\Signature::setHashingAlgorithm + * @covers OAuth\OAuth1\Signature\Signature::setTokenSecret + * @covers OAuth\OAuth1\Signature\Signature::getSignature + * @covers OAuth\OAuth1\Signature\Signature::buildSignatureDataString + * @covers OAuth\OAuth1\Signature\Signature::hash + * @covers OAuth\OAuth1\Signature\Signature::getSigningKey + */ + public function testGetSignatureWithBarePathNonExplicitTrailingHostSlash() + { + $credentials = $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'); + $credentials->expects($this->any()) + ->method('getConsumerSecret') + ->will($this->returnValue('foo')); + + + $signature = new Signature($credentials); + + $signature->setHashingAlgorithm('HMAC-SHA1'); + $signature->setTokenSecret('foo'); + + $uri = $this->getMock('\\OAuth\\Common\\Http\\Uri\\UriInterface'); + $uri->expects($this->any()) + ->method('getQuery') + ->will($this->returnValue('param1=value1')); + $uri->expects($this->any()) + ->method('getScheme') + ->will($this->returnValue('http')); + $uri->expects($this->any()) + ->method('getRawAuthority') + ->will($this->returnValue('peehaa:pass')); + $uri->expects($this->any()) + ->method('getPath') + ->will($this->returnValue('/')); + $uri->expects($this->any()) + ->method('hasExplicitTrailingHostSlash') + ->will($this->returnValue(false)); + + $this->assertSame('iFELDoiI5Oj9ixB3kHzoPvBpq0w=', $signature->getSignature($uri, array('pee' => 'haa'))); + } + + /** + * @covers OAuth\OAuth1\Signature\Signature::__construct + * @covers OAuth\OAuth1\Signature\Signature::setHashingAlgorithm + * @covers OAuth\OAuth1\Signature\Signature::setTokenSecret + * @covers OAuth\OAuth1\Signature\Signature::getSignature + * @covers OAuth\OAuth1\Signature\Signature::buildSignatureDataString + * @covers OAuth\OAuth1\Signature\Signature::hash + * @covers OAuth\OAuth1\Signature\Signature::getSigningKey + */ + public function testGetSignatureWithBarePathWithExplicitTrailingHostSlash() + { + $credentials = $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'); + $credentials->expects($this->any()) + ->method('getConsumerSecret') + ->will($this->returnValue('foo')); + + + $signature = new Signature($credentials); + + $signature->setHashingAlgorithm('HMAC-SHA1'); + $signature->setTokenSecret('foo'); + + $uri = $this->getMock('\\OAuth\\Common\\Http\\Uri\\UriInterface'); + $uri->expects($this->any()) + ->method('getQuery') + ->will($this->returnValue('param1=value1')); + $uri->expects($this->any()) + ->method('getScheme') + ->will($this->returnValue('http')); + $uri->expects($this->any()) + ->method('getRawAuthority') + ->will($this->returnValue('peehaa:pass')); + $uri->expects($this->any()) + ->method('getPath') + ->will($this->returnValue('/')); + $uri->expects($this->any()) + ->method('hasExplicitTrailingHostSlash') + ->will($this->returnValue(true)); + + $this->assertSame('IEhUsArSTLvbQ3QYr0zzn+Rxpjg=', $signature->getSignature($uri, array('pee' => 'haa'))); + } + + /** + * @covers OAuth\OAuth1\Signature\Signature::__construct + * @covers OAuth\OAuth1\Signature\Signature::setHashingAlgorithm + * @covers OAuth\OAuth1\Signature\Signature::setTokenSecret + * @covers OAuth\OAuth1\Signature\Signature::getSignature + * @covers OAuth\OAuth1\Signature\Signature::buildSignatureDataString + * @covers OAuth\OAuth1\Signature\Signature::hash + * @covers OAuth\OAuth1\Signature\Signature::getSigningKey + */ + public function testGetSignatureNoTokenSecretSet() + { + $credentials = $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'); + $credentials->expects($this->any()) + ->method('getConsumerSecret') + ->will($this->returnValue('foo')); + + + $signature = new Signature($credentials); + + $signature->setHashingAlgorithm('HMAC-SHA1'); + + $uri = $this->getMock('\\OAuth\\Common\\Http\\Uri\\UriInterface'); + $uri->expects($this->any()) + ->method('getQuery') + ->will($this->returnValue('param1=value1')); + $uri->expects($this->any()) + ->method('getScheme') + ->will($this->returnValue('http')); + $uri->expects($this->any()) + ->method('getRawAuthority') + ->will($this->returnValue('peehaa:pass')); + $uri->expects($this->any()) + ->method('getPath') + ->will($this->returnValue('/')); + $uri->expects($this->any()) + ->method('hasExplicitTrailingHostSlash') + ->will($this->returnValue(true)); + + $this->assertSame('YMHF7FYmLq7wzGnnHWYtd1VoBBE=', $signature->getSignature($uri, array('pee' => 'haa'))); + } + + /** + * @covers OAuth\OAuth1\Signature\Signature::__construct + * @covers OAuth\OAuth1\Signature\Signature::setHashingAlgorithm + * @covers OAuth\OAuth1\Signature\Signature::setTokenSecret + * @covers OAuth\OAuth1\Signature\Signature::getSignature + * @covers OAuth\OAuth1\Signature\Signature::buildSignatureDataString + * @covers OAuth\OAuth1\Signature\Signature::hash + * @covers OAuth\OAuth1\Signature\Signature::getSigningKey + */ + public function testGetSignatureThrowsExceptionOnUnsupportedAlgo() + { + $this->setExpectedException('\\OAuth\\OAuth1\\Signature\\Exception\\UnsupportedHashAlgorithmException'); + + $credentials = $this->getMock('\\OAuth\\Common\\Consumer\\CredentialsInterface'); + $credentials->expects($this->any()) + ->method('getConsumerSecret') + ->will($this->returnValue('foo')); + + + $signature = new Signature($credentials); + + $signature->setHashingAlgorithm('UnsupportedAlgo'); + + $uri = $this->getMock('\\OAuth\\Common\\Http\\Uri\\UriInterface'); + $uri->expects($this->any()) + ->method('getQuery') + ->will($this->returnValue('param1=value1')); + $uri->expects($this->any()) + ->method('getScheme') + ->will($this->returnValue('http')); + $uri->expects($this->any()) + ->method('getRawAuthority') + ->will($this->returnValue('peehaa:pass')); + $uri->expects($this->any()) + ->method('getPath') + ->will($this->returnValue('/')); + $uri->expects($this->any()) + ->method('hasExplicitTrailingHostSlash') + ->will($this->returnValue(true)); + + $signature->getSignature($uri, array('pee' => 'haa')); + } +} |