From 68d5458bd8a5b8e806ffff5cb277fcae1bea7001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lu=C3=ADs=20Ot=C3=A1vio=20Cobucci=20Oblonczyk?= Date: Wed, 1 Apr 2015 11:53:56 -0300 Subject: [PATCH] Fixing functional tests (closes #21). --- test/FunctionalTests/EcdsaTokenTest.php | 45 +++++++++++++++++++--- test/FunctionalTests/HmacTokenTest.php | 45 +++++++++++++++++++--- test/FunctionalTests/RsaTokenTest.php | 45 +++++++++++++++++++--- test/FunctionalTests/UnsignedTokenTest.php | 5 +-- 4 files changed, 118 insertions(+), 22 deletions(-) diff --git a/test/FunctionalTests/EcdsaTokenTest.php b/test/FunctionalTests/EcdsaTokenTest.php index de92689d..0e1eae50 100644 --- a/test/FunctionalTests/EcdsaTokenTest.php +++ b/test/FunctionalTests/EcdsaTokenTest.php @@ -13,6 +13,7 @@ use Lcobucci\JWT\Signature; use Lcobucci\JWT\Signer\Ecdsa\Sha256; use Lcobucci\JWT\EcdsaKeys; +use Lcobucci\JWT\Signer\Ecdsa\Sha512; /** * @author Luís Otávio Cobucci Oblonczyk @@ -22,6 +23,19 @@ class EcdsaTokenTest extends \PHPUnit_Framework_TestCase { use EcdsaKeys; + /** + * @var Sha256 + */ + private $signer; + + /** + * @before + */ + public function createSigner() + { + $this->signer = new Sha256(); + } + /** * @test * @@ -44,7 +58,7 @@ public function builderCanGenerateAToken() ->setAudience('http://client.abc.com') ->setIssuer('http://api.abc.com') ->set('user', $user) - ->sign(new Sha256(), $this->privateEcdsa()) + ->sign($this->signer, $this->privateEcdsa()) ->getToken(); $this->assertAttributeInstanceOf(Signature::class, 'signature', $token); @@ -68,7 +82,6 @@ public function builderCanGenerateAToken() * @covers Lcobucci\JWT\Claim\Basic * @covers Lcobucci\JWT\Parsing\Encoder * @covers Lcobucci\JWT\Parsing\Decoder - * @covers Lcobucci\JWT\Signer\Factory */ public function parserCanReadAToken(Token $generated) { @@ -89,14 +102,35 @@ public function parserCanReadAToken(Token $generated) * @covers Lcobucci\JWT\Parsing\Encoder * @covers Lcobucci\JWT\Claim\Factory * @covers Lcobucci\JWT\Claim\Basic - * @covers Lcobucci\JWT\Signer\Factory * @covers Lcobucci\JWT\Signer\OpenSSL * @covers Lcobucci\JWT\Signer\Ecdsa * @covers Lcobucci\JWT\Signer\Ecdsa\Sha256 */ public function verifyShouldReturnFalseWhenKeyIsNotRight(Token $token) { - $this->assertFalse($token->verify($this->otherPublicEcdsa())); + $this->assertFalse($token->verify($this->signer, $this->otherPublicEcdsa())); + } + + /** + * @test + * + * @depends builderCanGenerateAToken + * + * @covers Lcobucci\JWT\Builder + * @covers Lcobucci\JWT\Parser + * @covers Lcobucci\JWT\Token + * @covers Lcobucci\JWT\Signature + * @covers Lcobucci\JWT\Parsing\Encoder + * @covers Lcobucci\JWT\Claim\Factory + * @covers Lcobucci\JWT\Claim\Basic + * @covers Lcobucci\JWT\Signer\OpenSSL + * @covers Lcobucci\JWT\Signer\Ecdsa + * @covers Lcobucci\JWT\Signer\Ecdsa\Sha256 + * @covers Lcobucci\JWT\Signer\Ecdsa\Sha512 + */ + public function verifyShouldReturnFalseWhenAlgorithmIsDifferent(Token $token) + { + $this->assertFalse($token->verify(new Sha512(), $this->publicEcdsa())); } /** @@ -111,13 +145,12 @@ public function verifyShouldReturnFalseWhenKeyIsNotRight(Token $token) * @covers Lcobucci\JWT\Parsing\Encoder * @covers Lcobucci\JWT\Claim\Factory * @covers Lcobucci\JWT\Claim\Basic - * @covers Lcobucci\JWT\Signer\Factory * @covers Lcobucci\JWT\Signer\OpenSSL * @covers Lcobucci\JWT\Signer\Ecdsa * @covers Lcobucci\JWT\Signer\Ecdsa\Sha256 */ public function verifyShouldReturnTrueWhenKeyIsRight(Token $token) { - $this->assertTrue($token->verify($this->publicEcdsa())); + $this->assertTrue($token->verify($this->signer, $this->publicEcdsa())); } } diff --git a/test/FunctionalTests/HmacTokenTest.php b/test/FunctionalTests/HmacTokenTest.php index 18047c09..2c59f0e3 100644 --- a/test/FunctionalTests/HmacTokenTest.php +++ b/test/FunctionalTests/HmacTokenTest.php @@ -12,6 +12,7 @@ use Lcobucci\JWT\Token; use Lcobucci\JWT\Signature; use Lcobucci\JWT\Signer\Hmac\Sha256; +use Lcobucci\JWT\Signer\Hmac\Sha512; /** * @author Luís Otávio Cobucci Oblonczyk @@ -19,6 +20,19 @@ */ class HmacTokenTest extends \PHPUnit_Framework_TestCase { + /** + * @var Sha256 + */ + private $signer; + + /** + * @before + */ + public function createSigner() + { + $this->signer = new Sha256(); + } + /** * @test * @@ -40,7 +54,7 @@ public function builderCanGenerateAToken() ->setAudience('http://client.abc.com') ->setIssuer('http://api.abc.com') ->set('user', $user) - ->sign(new Sha256(), 'testing') + ->sign($this->signer, 'testing') ->getToken(); $this->assertAttributeInstanceOf(Signature::class, 'signature', $token); @@ -64,7 +78,6 @@ public function builderCanGenerateAToken() * @covers Lcobucci\JWT\Claim\Basic * @covers Lcobucci\JWT\Parsing\Encoder * @covers Lcobucci\JWT\Parsing\Decoder - * @covers Lcobucci\JWT\Signer\Factory */ public function parserCanReadAToken(Token $generated) { @@ -85,13 +98,34 @@ public function parserCanReadAToken(Token $generated) * @covers Lcobucci\JWT\Parsing\Encoder * @covers Lcobucci\JWT\Claim\Factory * @covers Lcobucci\JWT\Claim\Basic - * @covers Lcobucci\JWT\Signer\Factory * @covers Lcobucci\JWT\Signer\Hmac * @covers Lcobucci\JWT\Signer\Hmac\Sha256 */ public function verifyShouldReturnFalseWhenKeyIsNotRight(Token $token) { - $this->assertFalse($token->verify('testing1')); + $this->assertFalse($token->verify($this->signer, 'testing1')); + } + + /** + * @test + * + * @depends builderCanGenerateAToken + * + * @covers Lcobucci\JWT\Builder + * @covers Lcobucci\JWT\Parser + * @covers Lcobucci\JWT\Token + * @covers Lcobucci\JWT\Signature + * @covers Lcobucci\JWT\Parsing\Encoder + * @covers Lcobucci\JWT\Claim\Factory + * @covers Lcobucci\JWT\Claim\Basic + * @covers Lcobucci\JWT\Signer\OpenSSL + * @covers Lcobucci\JWT\Signer\Hmac + * @covers Lcobucci\JWT\Signer\Hmac\Sha256 + * @covers Lcobucci\JWT\Signer\Hmac\Sha512 + */ + public function verifyShouldReturnFalseWhenAlgorithmIsDifferent(Token $token) + { + $this->assertFalse($token->verify(new Sha512(), 'testing')); } /** @@ -106,12 +140,11 @@ public function verifyShouldReturnFalseWhenKeyIsNotRight(Token $token) * @covers Lcobucci\JWT\Parsing\Encoder * @covers Lcobucci\JWT\Claim\Factory * @covers Lcobucci\JWT\Claim\Basic - * @covers Lcobucci\JWT\Signer\Factory * @covers Lcobucci\JWT\Signer\Hmac * @covers Lcobucci\JWT\Signer\Hmac\Sha256 */ public function verifyShouldReturnTrueWhenKeyIsRight(Token $token) { - $this->assertTrue($token->verify('testing')); + $this->assertTrue($token->verify($this->signer, 'testing')); } } diff --git a/test/FunctionalTests/RsaTokenTest.php b/test/FunctionalTests/RsaTokenTest.php index 37b8d702..af8ff88f 100644 --- a/test/FunctionalTests/RsaTokenTest.php +++ b/test/FunctionalTests/RsaTokenTest.php @@ -13,6 +13,7 @@ use Lcobucci\JWT\Signature; use Lcobucci\JWT\Signer\Rsa\Sha256; use Lcobucci\JWT\RsaKeys; +use Lcobucci\JWT\Signer\Rsa\Sha512; /** * @author Luís Otávio Cobucci Oblonczyk @@ -22,6 +23,19 @@ class RsaTokenTest extends \PHPUnit_Framework_TestCase { use RsaKeys; + /** + * @var Sha256 + */ + private $signer; + + /** + * @before + */ + public function createSigner() + { + $this->signer = new Sha256(); + } + /** * @test * @@ -44,7 +58,7 @@ public function builderCanGenerateAToken() ->setAudience('http://client.abc.com') ->setIssuer('http://api.abc.com') ->set('user', $user) - ->sign(new Sha256(), $this->privateRsa()) + ->sign($this->signer, $this->privateRsa()) ->getToken(); $this->assertAttributeInstanceOf(Signature::class, 'signature', $token); @@ -68,7 +82,6 @@ public function builderCanGenerateAToken() * @covers Lcobucci\JWT\Claim\Basic * @covers Lcobucci\JWT\Parsing\Encoder * @covers Lcobucci\JWT\Parsing\Decoder - * @covers Lcobucci\JWT\Signer\Factory */ public function parserCanReadAToken(Token $generated) { @@ -89,14 +102,35 @@ public function parserCanReadAToken(Token $generated) * @covers Lcobucci\JWT\Parsing\Encoder * @covers Lcobucci\JWT\Claim\Factory * @covers Lcobucci\JWT\Claim\Basic - * @covers Lcobucci\JWT\Signer\Factory * @covers Lcobucci\JWT\Signer\OpenSSL * @covers Lcobucci\JWT\Signer\Rsa * @covers Lcobucci\JWT\Signer\Rsa\Sha256 */ public function verifyShouldReturnFalseWhenKeyIsNotRight(Token $token) { - $this->assertFalse($token->verify($this->encryptedPublicRsa())); + $this->assertFalse($token->verify($this->signer, $this->encryptedPublicRsa())); + } + + /** + * @test + * + * @depends builderCanGenerateAToken + * + * @covers Lcobucci\JWT\Builder + * @covers Lcobucci\JWT\Parser + * @covers Lcobucci\JWT\Token + * @covers Lcobucci\JWT\Signature + * @covers Lcobucci\JWT\Parsing\Encoder + * @covers Lcobucci\JWT\Claim\Factory + * @covers Lcobucci\JWT\Claim\Basic + * @covers Lcobucci\JWT\Signer\OpenSSL + * @covers Lcobucci\JWT\Signer\Rsa + * @covers Lcobucci\JWT\Signer\Rsa\Sha256 + * @covers Lcobucci\JWT\Signer\Rsa\Sha512 + */ + public function verifyShouldReturnFalseWhenAlgorithmIsDifferent(Token $token) + { + $this->assertFalse($token->verify(new Sha512(), $this->publicRsa())); } /** @@ -111,13 +145,12 @@ public function verifyShouldReturnFalseWhenKeyIsNotRight(Token $token) * @covers Lcobucci\JWT\Parsing\Encoder * @covers Lcobucci\JWT\Claim\Factory * @covers Lcobucci\JWT\Claim\Basic - * @covers Lcobucci\JWT\Signer\Factory * @covers Lcobucci\JWT\Signer\OpenSSL * @covers Lcobucci\JWT\Signer\Rsa * @covers Lcobucci\JWT\Signer\Rsa\Sha256 */ public function verifyShouldReturnTrueWhenKeyIsRight(Token $token) { - $this->assertTrue($token->verify($this->publicRsa())); + $this->assertTrue($token->verify($this->signer, $this->publicRsa())); } } diff --git a/test/FunctionalTests/UnsignedTokenTest.php b/test/FunctionalTests/UnsignedTokenTest.php index e3bda3a3..dce34791 100644 --- a/test/FunctionalTests/UnsignedTokenTest.php +++ b/test/FunctionalTests/UnsignedTokenTest.php @@ -60,7 +60,6 @@ public function builderCanGenerateAToken() * @covers Lcobucci\JWT\Claim\Basic * @covers Lcobucci\JWT\Parsing\Encoder * @covers Lcobucci\JWT\Parsing\Decoder - * @covers Lcobucci\JWT\Signer\Factory */ public function parserCanReadAToken(Token $generated) { @@ -84,9 +83,8 @@ public function parserCanReadAToken(Token $generated) * @covers Lcobucci\JWT\Claim\GreaterOrEqualsTo * @covers Lcobucci\JWT\Parsing\Encoder * @covers Lcobucci\JWT\Parsing\Decoder - * @covers Lcobucci\JWT\Signer\Factory */ - public function tokenValidationShouldReturnWhenEverythingIsFile(Token $generated) + public function tokenValidationShouldReturnWhenEverythingIsFine(Token $generated) { $data = new ValidationData(self::CURRENT_TIME - 10); $data->setAudience('http://client.abc.com'); @@ -112,7 +110,6 @@ public function tokenValidationShouldReturnWhenEverythingIsFile(Token $generated * @covers Lcobucci\JWT\Claim\GreaterOrEqualsTo * @covers Lcobucci\JWT\Parsing\Encoder * @covers Lcobucci\JWT\Parsing\Decoder - * @covers Lcobucci\JWT\Signer\Factory */ public function tokenValidationShouldReturnFalseWhenExpectedDataDontMatch(ValidationData $data, Token $generated) {