@@ -160,7 +160,7 @@ public void testCreateBadSession() throws OpenTokException {
160
160
// TODO: test session creation conditions that result in errors
161
161
162
162
@ Test
163
- public void testRoleDefault () throws
163
+ public void testTokenDefault () throws
164
164
OpenTokException , UnsupportedEncodingException , NoSuchAlgorithmException , SignatureException ,
165
165
InvalidKeyException {
166
166
@@ -180,6 +180,38 @@ public void testRoleDefault() throws
180
180
assertNotNull (tokenData .get ("nonce" ));
181
181
}
182
182
183
+ @ Test
184
+ public void testTokenRoles () throws
185
+ OpenTokException , UnsupportedEncodingException , NoSuchAlgorithmException , SignatureException ,
186
+ InvalidKeyException {
187
+
188
+ int apiKey = 123456 ;
189
+ String apiSecret = "1234567890abcdef1234567890abcdef1234567890" ;
190
+ OpenTok opentok = new OpenTok (apiKey , apiSecret );
191
+ String sessionId = "1_MX4xMjM0NTZ-flNhdCBNYXIgMTUgMTQ6NDI6MjMgUERUIDIwMTR-MC40OTAxMzAyNX4" ;
192
+ String role = RoleConstants .SUBSCRIBER ;
193
+ Exception actualException = null ;
194
+
195
+ String defaultToken = opentok .generateToken (sessionId );
196
+ String roleToken = opentok .generateToken (sessionId , role );
197
+ try {
198
+ String invalidToken = opentok .generateToken (sessionId , "NOT A VALID ROLE" );
199
+ } catch (OpenTokException exception ) {
200
+ actualException = exception ;
201
+ }
202
+
203
+ assertNotNull (defaultToken );
204
+ assertNotNull (roleToken );
205
+ assertTrue (Helpers .verifyTokenSignature (defaultToken , apiSecret ));
206
+ assertTrue (Helpers .verifyTokenSignature (roleToken , apiSecret ));
207
+
208
+ Map <String , String > defaultTokenData = Helpers .decodeToken (defaultToken );
209
+ assertEquals ("publisher" , defaultTokenData .get ("role" ));
210
+ Map <String , String > roleTokenData = Helpers .decodeToken (roleToken );
211
+ assertEquals (role , roleTokenData .get ("role" ));
212
+ assertEquals (OpenTokInvalidArgumentException .class , actualException .getClass ());
213
+ }
214
+
183
215
// @Test
184
216
// public void testRolePublisher() throws OpenTokException {
185
217
// Session s= sdk.createSession();
0 commit comments