JWTTest.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <?php
  2. namespace Namshi\JOSE\Test;
  3. use Namshi\JOSE\Base64\Base64UrlSafeEncoder;
  4. use Namshi\JOSE\JWT;
  5. use PHPUnit_Framework_TestCase as TestCase;
  6. class JWTTest extends TestCase
  7. {
  8. public function testGenerationOfTheSigninInput()
  9. {
  10. $payload = array('b' => 'a', 'iat' => 1421161177);
  11. $header = array('a' => 'b');
  12. $jwt = new JWT($payload, $header);
  13. $encoder = new Base64UrlSafeEncoder();
  14. $this->assertEquals(sprintf('%s.%s', $encoder->encode(json_encode($header)), $encoder->encode(json_encode($payload))), $jwt->generateSigninInput());
  15. }
  16. public function testGenerationOfTheSigninInputCanHandleSlashes()
  17. {
  18. $encoder = new Base64UrlSafeEncoder();
  19. $json_string = '{"a":"/b/"}';
  20. $encoded_json_string = $encoder->encode($json_string);
  21. $jwt = new JWT(json_decode($json_string, true), json_decode($json_string, true));
  22. $this->assertEquals(sprintf('%s.%s', $encoded_json_string, $encoded_json_string), $jwt->generateSigninInput());
  23. }
  24. public function testPayload()
  25. {
  26. $jwt = new JWT(array('a' => 'b'), array());
  27. $payload = $jwt->getPayload();
  28. $this->assertSame(array('a' => 'b'), $payload);
  29. $jwt = new JWT(array('a' => 'b'), array());
  30. $jwt->setPayload(array('b' => 'a'));
  31. $payload = $jwt->getPayload();
  32. $this->assertSame($payload['b'], 'a');
  33. $this->assertSame(array('b' => 'a'), $payload);
  34. }
  35. }