diff --git a/tests/CodeChallengeVerifiers/PlainVerifier.php b/tests/CodeChallengeVerifiers/PlainVerifier.php new file mode 100644 index 00000000..4939c88c --- /dev/null +++ b/tests/CodeChallengeVerifiers/PlainVerifier.php @@ -0,0 +1,24 @@ +assertEquals('plain', $verifier->getMethod()); + } + + public function testVerifyCodeChallenge() + { + $verifier = new PlainVerifier(); + + $this->assertTrue($verifier->verifyCodeChallenge('foo', 'foo'); + $this->assertFalse($verifier->verifyCodeChallenge('foo', 'bar'); + } +} diff --git a/tests/CodeChallengeVerifiers/S256Verifier.php b/tests/CodeChallengeVerifiers/S256Verifier.php new file mode 100644 index 00000000..2bf14353 --- /dev/null +++ b/tests/CodeChallengeVerifiers/S256Verifier.php @@ -0,0 +1,37 @@ +assertEquals('S256', $verifier->getMethod()); + } + + public function testVerifyCodeChallengeSucceeds() + { + $codeChallenge = $this->createCodeChallenge('foo'); + $verifier = new S256Verifier(); + + $this->assertTrue($verifier->verifyCodeChallenge('foo', $codeChallenge)); + } + + public function testVerifyCodeChallengeFails() + { + $codeChallenge = $this->createCodeChallenge('bar'); + $verifier = new S256Verifier(); + + $this->assertFalse($verifier->verifyCodeChallenge('foo', $codeChallenge)); + } + + private function createCodeChallenge($codeVerifier) + { + return strtr(rtrim(base64_encode(hash('sha256', $codeVerifier, true)), '='), '+/', '-_'); + } +}