Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(891)

Side by Side Diff: LayoutTests/media/encrypted-media/encrypted-media-keystatuses-multiple-updates.html

Issue 880313003: Add additional layout tests for MediaKeySession.keyStatuses (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <html> 2 <html>
3 <head> 3 <head>
4 <title>Verify MediaKeySession.keyStatuses</title> 4 <title>Verify MediaKeySession.keyStatuses with multiple updates</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 var mediaKeySession; 12 var mediaKeySession;
13 var firstEvent;
13 14
14 // Even though key ids are uint8, using printable values so that 15 // Even though key ids are uint8, using printable values so that
15 // they can be verified easily. 16 // they can be verified easily.
16 var key1 = stringToUint8Array('123'); 17 var key1 = stringToUint8Array('123');
17 var key2 = stringToUint8Array('4567890'); 18 var key2 = stringToUint8Array('4567890');
18 var rawKey1 = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14, 0x d2, 0x7b, 19 var rawKey1 = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14, 0x d2, 0x7b,
19 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4, 0x ae, 0x3c]); 20 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4, 0x ae, 0x3c]);
20 var rawKey2 = new Uint8Array([0x3c, 0xae, 0xe4, 0xfc, 0x2a, 0x12, 0x ef, 0x68, 21 var rawKey2 = new Uint8Array([0x3c, 0xae, 0xe4, 0xfc, 0x2a, 0x12, 0x ef, 0x68,
21 0x7b, 0xd2, 0x14, 0x68, 0xf1, 0x62, 0x dd, 0xeb]); 22 0x7b, 0xd2, 0x14, 0x68, 0xf1, 0x62, 0x dd, 0xeb]);
22 23
23 async_test(function(test) 24 async_test(function(test)
24 { 25 {
25 function processMessage(event) 26 function processMessage(event)
26 { 27 {
27 // No keys added yet. 28 // No keys added yet.
28 assert_equals(mediaKeySession.keyStatuses.size, 0); 29 verifyKeyStatuses(mediaKeySession.keyStatuses, [], [key1, ke y2]);
29 30
30 waitForEventAndRunStep('keystatuseschange', mediaKeySession, processKeyStatusesChange, test); 31 // Add key1 to the session.
31 32 firstEvent = true;
32 var jwkSet = stringToUint8Array(createJWKSet(createJWK(key1, rawKey1), createJWK(key2, rawKey2))); 33 var jwkSet = stringToUint8Array(createJWKSet(createJWK(key1, rawKey1)));
33 mediaKeySession.update(jwkSet).catch(function(error) { 34 mediaKeySession.update(jwkSet).catch(function(error) {
34 forceTestFailureFromPromise(test, error); 35 forceTestFailureFromPromise(test, error);
35 }); 36 });
36 } 37 }
37 38
38 function processKeyStatusesChange(event) 39 function processKeyStatusesChange(event)
39 { 40 {
40 assert_equals(mediaKeySession.keyStatuses.size, 2); 41 if (firstEvent) {
41 consoleWrite("for (var entry of keyStatuses)"); 42 // Verify that the session only contains key1.
42 for (var entry of mediaKeySession.keyStatuses) { 43 dumpKeyStatuses(mediaKeySession.keyStatuses);
43 consoleWrite(arrayBufferAsString(entry[0]) + ", " + entr y[1]); 44 verifyKeyStatuses(mediaKeySession.keyStatuses, [key1], [ key2]);
45
46 // Now add key2 to the session.
47 firstEvent = false;
48 var jwkSet = stringToUint8Array(createJWKSet(createJWK(k ey2, rawKey2)));
49 mediaKeySession.update(jwkSet).catch(function(error) {
50 forceTestFailureFromPromise(test, error);
51 });
52 } else {
53 // Verify that the session now contains key1 and key2.
54 dumpKeyStatuses(mediaKeySession.keyStatuses);
55 verifyKeyStatuses(mediaKeySession.keyStatuses, [key1, ke y2], []);
56
57 test.done();
44 } 58 }
45 consoleWrite("for (var key of keyStatuses.keys())");
46 for (var key of mediaKeySession.keyStatuses.keys()) {
47 consoleWrite(arrayBufferAsString(key));
48 }
49 consoleWrite("for (var value of keyStatuses.values())");
50 for (var value of mediaKeySession.keyStatuses.values()) {
51 consoleWrite(value);
52 }
53 consoleWrite("for (var entry of keyStatuses.entries())");
54 for (var entry of mediaKeySession.keyStatuses.entries()) {
55 consoleWrite(arrayBufferAsString(entry[0]) + ", " + entr y[1]);
56 }
57 assert_true(mediaKeySession.keyStatuses.has(key1));
58 assert_true(mediaKeySession.keyStatuses.has(key2));
59 assert_false(mediaKeySession.keyStatuses.has(stringToUint8Ar ray('123456')));
60 assert_equals(mediaKeySession.keyStatuses.get(key1), 'usable ');
61 assert_equals(mediaKeySession.keyStatuses.get(key2), 'usable ');
62 assert_equals(mediaKeySession.keyStatuses.get(stringToUint8A rray('123456')), undefined);
63 test.done();
64 } 59 }
65 60
66 navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(fu nction(access) { 61 navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(fu nction(access) {
67 return access.createMediaKeys(); 62 return access.createMediaKeys();
68 }).then(function(mediaKeys) { 63 }).then(function(mediaKeys) {
69 var initDataType = getInitDataType(); 64 var initDataType = getInitDataType();
70 mediaKeySession = mediaKeys.createSession(); 65 mediaKeySession = mediaKeys.createSession();
71 66
72 // There should be no keys defined yet. 67 // There should be no keys defined yet.
73 assert_equals(mediaKeySession.keyStatuses.size, 0); 68 assert_equals(mediaKeySession.keyStatuses.size, 0);
74 69
75 waitForEventAndRunStep('message', mediaKeySession, processMe ssage, test); 70 waitForEventAndRunStep('message', mediaKeySession, processMe ssage, test);
71 waitForEventAndRunStep('keystatuseschange', mediaKeySession, processKeyStatusesChange, test);
72
76 return mediaKeySession.generateRequest(initDataType, getInit Data(initDataType)); 73 return mediaKeySession.generateRequest(initDataType, getInit Data(initDataType));
77 }).catch(function(error) { 74 }).catch(function(error) {
78 forceTestFailureFromPromise(test, error); 75 forceTestFailureFromPromise(test, error);
79 }); 76 });
80 }, 'Verify MediaKeySession.keyStatuses.'); 77 }, 'Verify MediaKeySession.keyStatuses with multiple updates.');
81 </script> 78 </script>
82 </body> 79 </body>
83 </html> 80 </html>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698