|
10 | 10 | import java.security.InvalidKeyException;
|
11 | 11 | import java.security.NoSuchAlgorithmException;
|
12 | 12 | import java.security.SignatureException;
|
| 13 | +import java.util.ArrayList; |
13 | 14 | import java.util.Date;
|
14 | 15 | import java.util.HashMap;
|
15 | 16 | import java.util.Map;
|
@@ -212,6 +213,48 @@ public void testTokenRoles() throws
|
212 | 213 | assertEquals(OpenTokInvalidArgumentException.class, actualException.getClass());
|
213 | 214 | }
|
214 | 215 |
|
| 216 | + @Test |
| 217 | + public void testTokenExpireTime() throws |
| 218 | + OpenTokException, SignatureException, NoSuchAlgorithmException, InvalidKeyException, |
| 219 | + UnsupportedEncodingException { |
| 220 | + |
| 221 | + int apiKey = 123456; |
| 222 | + String apiSecret = "1234567890abcdef1234567890abcdef1234567890"; |
| 223 | + String sessionId = "1_MX4xMjM0NTZ-flNhdCBNYXIgMTUgMTQ6NDI6MjMgUERUIDIwMTR-MC40OTAxMzAyNX4"; |
| 224 | + OpenTok opentok = new OpenTok(apiKey, apiSecret); |
| 225 | + long now = System.currentTimeMillis() / 1000L; |
| 226 | + long inOneHour = now + (60*60); |
| 227 | + long inThirtyDays = now + (60*60*24*30); |
| 228 | + ArrayList<Exception> exceptions = new ArrayList<Exception>(); |
| 229 | + |
| 230 | + |
| 231 | + String defaultToken = opentok.generateToken(sessionId); |
| 232 | + String oneHourToken = opentok.generateToken(sessionId, null, inOneHour); |
| 233 | + try { |
| 234 | + String earlyExpireTimeToken = opentok.generateToken(sessionId, null, now - 10); |
| 235 | + } catch (Exception exception) { |
| 236 | + exceptions.add(exception); |
| 237 | + } |
| 238 | + try { |
| 239 | + String lateExpireTimeToken = opentok.generateToken(sessionId, null, inThirtyDays+(60*60*24) /* 31 days */); |
| 240 | + } catch (Exception exception) { |
| 241 | + exceptions.add(exception); |
| 242 | + } |
| 243 | + |
| 244 | + assertNotNull(defaultToken); |
| 245 | + assertNotNull(oneHourToken); |
| 246 | + assertTrue(Helpers.verifyTokenSignature(defaultToken, apiSecret)); |
| 247 | + assertTrue(Helpers.verifyTokenSignature(oneHourToken, apiSecret)); |
| 248 | + |
| 249 | + Map<String, String> defaultTokenData = Helpers.decodeToken(defaultToken); |
| 250 | + assertEquals(Double.toString(inThirtyDays), defaultTokenData.get("expire_time")); |
| 251 | + Map<String, String> oneHourTokenData = Helpers.decodeToken(oneHourToken); |
| 252 | + assertEquals(Double.toString(inOneHour), oneHourTokenData.get("expire_time")); |
| 253 | + // TODO: iterate over exceptions |
| 254 | + //assertEquals(OpenTokInvalidArgumentException.class, actualException.getClass()); |
| 255 | + |
| 256 | + } |
| 257 | + |
215 | 258 | // @Test
|
216 | 259 | // public void testRolePublisher() throws OpenTokException {
|
217 | 260 | // Session s= sdk.createSession();
|
|
0 commit comments