|
21 | 21 | use OpenTok\Util\Client; |
22 | 22 | use GuzzleHttp\Middleware; |
23 | 23 | use GuzzleHttp\HandlerStack; |
24 | | -use OpenTok\Util\Validators; |
25 | 24 | use PHPUnit\Framework\TestCase; |
26 | 25 | use GuzzleHttp\Handler\MockHandler; |
27 | 26 | use OpenTok\Exception\InvalidArgumentException; |
@@ -880,6 +879,31 @@ public function testWillGenerateJWTWithClassLayout(): void |
880 | 879 | $this->assertEquals('focus+main', $decodedArray['initial_layout_class_list']); |
881 | 880 | } |
882 | 881 |
|
| 882 | + /** |
| 883 | + * Tests that the JWT Token can be generated with the correct expiration time |
| 884 | + */ |
| 885 | + public function testWillGenerateJWTWithCorrectExpirationTime(): void |
| 886 | + { |
| 887 | + $openTok = new OpenTok('12345678', 'b60d0b2568f3ea9731bd9d3f71be263ce19f802f'); |
| 888 | + $expireTime = time() + 3600; // expires in one hour |
| 889 | + $token = $openTok->generateToken( |
| 890 | + '1_MX4xMjM0NTY3OH4-VGh1IEZlYiAyNyAwNDozODozMSBQU1QgMjAxNH4wLjI0NDgyMjI', |
| 891 | + ['expireTime' => $expireTime] // expires in one hour |
| 892 | + ); |
| 893 | + |
| 894 | + $this->assertNotEquals('T1', substr($token, 0, 2)); |
| 895 | + |
| 896 | + $decoded = JWT::decode($token, new Key('b60d0b2568f3ea9731bd9d3f71be263ce19f802f', 'HS256')); |
| 897 | + $decodedArray = (array) $decoded; |
| 898 | + |
| 899 | + $this->assertEquals('12345678', $decodedArray['iss']); |
| 900 | + $this->assertEquals('1_MX4xMjM0NTY3OH4-VGh1IEZlYiAyNyAwNDozODozMSBQU1QgMjAxNH4wLjI0NDgyMjI', $decodedArray['session_id']); |
| 901 | + $this->assertEquals('project', $decodedArray['ist']); |
| 902 | + $this->assertEquals('session.connect', $decodedArray['scope']); |
| 903 | + $this->assertEquals('publisher', $decodedArray['role']); |
| 904 | + $this->assertEquals($expireTime, $decodedArray['exp']); |
| 905 | + } |
| 906 | + |
883 | 907 | public function testStartsArchive(): void |
884 | 908 | { |
885 | 909 | // Arrange |
|
0 commit comments