OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <title>Verify v2 events</title> | 4 <title>Verify v2 events</title> |
5 <script src="encrypted-media-utils.js"></script> | 5 <script src="encrypted-media-utils.js"></script> |
6 <script src="../../resources/testharness.js"></script> | 6 <script src="../../resources/testharness.js"></script> |
7 <script src="../../resources/testharnessreport.js"></script> | 7 <script src="../../resources/testharnessreport.js"></script> |
8 </head> | 8 </head> |
9 <body> | 9 <body> |
10 <div id="log"></div> | 10 <div id="log"></div> |
11 <script> | 11 <script> |
12 // Currently Clear Key only generates aynchronous "message" and | 12 // Currently Clear Key only generates aynchronous "message" and |
13 // "keychange" events. | 13 // "keychange" events. |
14 async_test(function(test) | 14 async_test(function(test) |
15 { | 15 { |
| 16 var initDataType; |
| 17 var initData; |
16 var mediaKeySession; | 18 var mediaKeySession; |
17 var rawKey = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14,
0xd2, 0x7b, | 19 var rawKey = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14,
0xd2, 0x7b, |
18 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4,
0xae, 0x3c]); | 20 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4,
0xae, 0x3c]); |
19 | 21 |
20 function processMessage(event) | 22 function processMessage(event) |
21 { | 23 { |
22 assert_true(event instanceof window.MediaKeyMessageEvent); | 24 assert_true(event instanceof window.MediaKeyMessageEvent); |
23 assert_equals(event.target, mediaKeySession); | 25 assert_equals(event.target, mediaKeySession); |
24 assert_equals(event.type, 'message'); | 26 assert_equals(event.type, 'message'); |
25 assert_equals(event.messageType, 'license-request'); | 27 assert_equals(event.messageType, 'license-request'); |
26 | 28 |
27 var keyId = extractSingleKeyIdFromMessage(event.message); | 29 var keyId = extractSingleKeyIdFromMessage(event.message); |
28 var jwkSet = stringToUint8Array(createJWKSet(createJWK(keyId
, rawKey))); | 30 var jwkSet = stringToUint8Array(createJWKSet(createJWK(keyId
, rawKey))); |
29 | 31 |
30 waitForEventAndRunStep('keystatuseschange', mediaKeySession,
test.step_func(processKeyStatusesChange), test); | 32 waitForEventAndRunStep('keystatuseschange', mediaKeySession,
test.step_func(processKeyStatusesChange), test); |
31 | 33 |
32 mediaKeySession.update(jwkSet).catch(test.step_func(function
(error) { | 34 mediaKeySession.update(jwkSet).catch(test.step_func(function
(error) { |
33 forceTestFailureFromPromise(test, error); | 35 forceTestFailureFromPromise(test, error); |
34 })); | 36 })); |
35 } | 37 } |
36 | 38 |
37 function processKeyStatusesChange(event) | 39 function processKeyStatusesChange(event) |
38 { | 40 { |
39 assert_true(event instanceof Event); | 41 assert_true(event instanceof Event); |
40 assert_equals(event.target, mediaKeySession); | 42 assert_equals(event.target, mediaKeySession); |
41 assert_equals(event.type, 'keystatuseschange'); | 43 assert_equals(event.type, 'keystatuseschange'); |
42 test.done(); | 44 test.done(); |
43 } | 45 } |
44 | 46 |
45 navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{}]).t
hen(function(access) { | 47 getSupportedInitDataType().then(function(type) { |
| 48 initDataType = type; |
| 49 initData = getInitData(initDataType); |
| 50 return navigator.requestMediaKeySystemAccess('org.w3.clearke
y', [{}]); |
| 51 }).then(function(access) { |
46 return access.createMediaKeys(); | 52 return access.createMediaKeys(); |
47 }).then(test.step_func(function(mediaKeys) { | 53 }).then(test.step_func(function(mediaKeys) { |
48 var initDataType = getInitDataType(); | |
49 mediaKeySession = mediaKeys.createSession(); | 54 mediaKeySession = mediaKeys.createSession(); |
50 waitForEventAndRunStep('message', mediaKeySession, test.step
_func(processMessage), test); | 55 waitForEventAndRunStep('message', mediaKeySession, test.step
_func(processMessage), test); |
51 return mediaKeySession.generateRequest(initDataType, getInit
Data(initDataType)); | 56 return mediaKeySession.generateRequest(initDataType, initDat
a); |
52 })).catch(test.step_func(function(error) { | 57 })).catch(test.step_func(function(error) { |
53 forceTestFailureFromPromise(test, error); | 58 forceTestFailureFromPromise(test, error); |
54 })); | 59 })); |
55 }, 'Verify v2 events.'); | 60 }, 'Verify v2 events.'); |
56 </script> | 61 </script> |
57 </body> | 62 </body> |
58 </html> | 63 </html> |
OLD | NEW |