@@ -828,7 +828,56 @@ public function testWillGenerateSha256Token(): void
828828 $ this ->assertEquals ('project ' , $ decodedArray ['ist ' ]);
829829 $ this ->assertEquals ('session.connect ' , $ decodedArray ['scope ' ]);
830830 $ this ->assertEquals ('publisher ' , $ decodedArray ['role ' ]);
831+ }
832+
833+ /**
834+ * Tests that the JWT Token can be generated with connection data
835+ * @see https://github.com/opentok/OpenTok-PHP-SDK/issues/357
836+ */
837+ public function testWillGenerateJWTWithConnectionData (): void
838+ {
839+ $ openTok = new OpenTok ('12345678 ' , 'b60d0b2568f3ea9731bd9d3f71be263ce19f802f ' );
840+ $ token = $ openTok ->generateToken (
841+ '1_MX4xMjM0NTY3OH4-VGh1IEZlYiAyNyAwNDozODozMSBQU1QgMjAxNH4wLjI0NDgyMjI ' ,
842+ ['data ' => 'username=bob ' ]
843+ );
844+
845+ $ this ->assertNotEquals ('T1 ' , substr ($ token , 0 , 2 ));
831846
847+ $ decoded = JWT ::decode ($ token , new Key ('b60d0b2568f3ea9731bd9d3f71be263ce19f802f ' , 'HS256 ' ));
848+ $ decodedArray = (array ) $ decoded ;
849+
850+ $ this ->assertEquals ('12345678 ' , $ decodedArray ['iss ' ]);
851+ $ this ->assertEquals ('1_MX4xMjM0NTY3OH4-VGh1IEZlYiAyNyAwNDozODozMSBQU1QgMjAxNH4wLjI0NDgyMjI ' , $ decodedArray ['session_id ' ]);
852+ $ this ->assertEquals ('project ' , $ decodedArray ['ist ' ]);
853+ $ this ->assertEquals ('session.connect ' , $ decodedArray ['scope ' ]);
854+ $ this ->assertEquals ('publisher ' , $ decodedArray ['role ' ]);
855+ $ this ->assertEquals ('username=bob ' , $ decodedArray ['connection_data ' ]);
856+ }
857+
858+ /**
859+ * Tests that the JWT Token can be generated with the class layout data
860+ * @see https://github.com/opentok/OpenTok-PHP-SDK/issues/357
861+ */
862+ public function testWillGenerateJWTWithClassLayout (): void
863+ {
864+ $ openTok = new OpenTok ('12345678 ' , 'b60d0b2568f3ea9731bd9d3f71be263ce19f802f ' );
865+ $ token = $ openTok ->generateToken (
866+ '1_MX4xMjM0NTY3OH4-VGh1IEZlYiAyNyAwNDozODozMSBQU1QgMjAxNH4wLjI0NDgyMjI ' ,
867+ ['initialLayoutClassList ' => ['focus ' , 'main ' ]]
868+ );
869+
870+ $ this ->assertNotEquals ('T1 ' , substr ($ token , 0 , 2 ));
871+
872+ $ decoded = JWT ::decode ($ token , new Key ('b60d0b2568f3ea9731bd9d3f71be263ce19f802f ' , 'HS256 ' ));
873+ $ decodedArray = (array ) $ decoded ;
874+
875+ $ this ->assertEquals ('12345678 ' , $ decodedArray ['iss ' ]);
876+ $ this ->assertEquals ('1_MX4xMjM0NTY3OH4-VGh1IEZlYiAyNyAwNDozODozMSBQU1QgMjAxNH4wLjI0NDgyMjI ' , $ decodedArray ['session_id ' ]);
877+ $ this ->assertEquals ('project ' , $ decodedArray ['ist ' ]);
878+ $ this ->assertEquals ('session.connect ' , $ decodedArray ['scope ' ]);
879+ $ this ->assertEquals ('publisher ' , $ decodedArray ['role ' ]);
880+ $ this ->assertEquals ('focus+main ' , $ decodedArray ['initial_layout_class_list ' ]);
832881 }
833882
834883 public function testStartsArchive (): void
0 commit comments