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

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

Issue 880313003: Add additional layout tests for MediaKeySession.keyStatuses (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: more js 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
« no previous file with comments | « no previous file | LayoutTests/media/encrypted-media/encrypted-media-keystatuses-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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</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 13
14 // Even though key ids are uint8, using printable values so that 14 // Even though key ids are uint8, using printable values so that
15 // they can be verified easily. 15 // they can be verified easily.
16 var key1 = stringToUint8Array('123'); 16 var key1String = '123';
17 var key2 = stringToUint8Array('4567890'); 17 var key2String = '4567890';
18 var key1 = stringToUint8Array(key1String);
19 var key2 = stringToUint8Array(key2String);
18 var rawKey1 = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14, 0x d2, 0x7b, 20 var rawKey1 = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14, 0x d2, 0x7b,
19 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4, 0x ae, 0x3c]); 21 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4, 0x ae, 0x3c]);
20 var rawKey2 = new Uint8Array([0x3c, 0xae, 0xe4, 0xfc, 0x2a, 0x12, 0x ef, 0x68, 22 var rawKey2 = new Uint8Array([0x3c, 0xae, 0xe4, 0xfc, 0x2a, 0x12, 0x ef, 0x68,
21 0x7b, 0xd2, 0x14, 0x68, 0xf1, 0x62, 0x dd, 0xeb]); 23 0x7b, 0xd2, 0x14, 0x68, 0xf1, 0x62, 0x dd, 0xeb]);
22 24
23 async_test(function(test) 25 async_test(function(test)
24 { 26 {
25 function processMessage(event) 27 function processMessage(event)
26 { 28 {
27 // No keys added yet. 29 // No keys added yet.
28 assert_equals(mediaKeySession.keyStatuses.size, 0); 30 assert_equals(mediaKeySession.keyStatuses.size, 0);
29 31
30 waitForEventAndRunStep('keystatuseschange', mediaKeySession, processKeyStatusesChange, test); 32 waitForEventAndRunStep('keystatuseschange', mediaKeySession, processKeyStatusesChange, test);
31 33
32 var jwkSet = stringToUint8Array(createJWKSet(createJWK(key1, rawKey1), createJWK(key2, rawKey2))); 34 var jwkSet = stringToUint8Array(createJWKSet(createJWK(key1, rawKey1), createJWK(key2, rawKey2)));
33 mediaKeySession.update(jwkSet).catch(function(error) { 35 mediaKeySession.update(jwkSet).catch(function(error) {
34 forceTestFailureFromPromise(test, error); 36 forceTestFailureFromPromise(test, error);
35 }); 37 });
36 } 38 }
37 39
38 function processKeyStatusesChange(event) 40 function processKeyStatusesChange(event)
39 { 41 {
42 // Two keys added, so both should show up in |keyStatuses|.
40 assert_equals(mediaKeySession.keyStatuses.size, 2); 43 assert_equals(mediaKeySession.keyStatuses.size, 2);
41 consoleWrite("for (var entry of keyStatuses)"); 44 dumpKeyStatuses(mediaKeySession.keyStatuses);
45
46 // Check |keyStatuses| for 2 entries.
47 var result = [];
42 for (var entry of mediaKeySession.keyStatuses) { 48 for (var entry of mediaKeySession.keyStatuses) {
43 consoleWrite(arrayBufferAsString(entry[0]) + ", " + entr y[1]); 49 result.push({ key: arrayBufferAsString(entry[0]), value: entry[1] });
sandersd (OOO until July 31) 2015/01/30 23:22:46 I think 'result[arrayBufferAsString(entry[0])] = e
44 } 50 }
45 consoleWrite("for (var key of keyStatuses.keys())"); 51 assert_object_equals(result,
52 [{ key: key1String, value: 'usable'}, { key: key2String, value: 'usable'}],
53 'keyStatuses fails');
54
55 // |keyStatuses| must contain both keys.
56 result = [];
46 for (var key of mediaKeySession.keyStatuses.keys()) { 57 for (var key of mediaKeySession.keyStatuses.keys()) {
47 consoleWrite(arrayBufferAsString(key)); 58 result.push(arrayBufferAsString(key));
48 } 59 }
49 consoleWrite("for (var value of keyStatuses.values())"); 60 assert_array_equals(result,
61 [key1String, key2String],
62 'keyStatuses.keys() fails');
63
64 // Both values in |mediaKeySession| should be 'usable'.
65 result = [];
50 for (var value of mediaKeySession.keyStatuses.values()) { 66 for (var value of mediaKeySession.keyStatuses.values()) {
51 consoleWrite(value); 67 result.push(value);
52 } 68 }
53 consoleWrite("for (var entry of keyStatuses.entries())"); 69 assert_array_equals(result,
70 ['usable', 'usable'],
71 'keyStatuses.values() fails');
72
73 // Check |keyStatuses.entries()|.
74 result = [];
54 for (var entry of mediaKeySession.keyStatuses.entries()) { 75 for (var entry of mediaKeySession.keyStatuses.entries()) {
55 consoleWrite(arrayBufferAsString(entry[0]) + ", " + entr y[1]); 76 result.push({ key: arrayBufferAsString(entry[0]), value: entry[1] });
56 } 77 }
78 assert_object_equals(result,
79 [{ key: key1String, value: 'usable'}, { key: key2String, value: 'usable'}],
80 'keyStatuses.entries() fails');
81
82 // forEach() should return both entries.
83 result = [];
84 mediaKeySession.keyStatuses.forEach(function(value, key, map ) {
85 result.push({ key: arrayBufferAsString(key), value: valu e });
86 });
87 assert_object_equals(result,
88 [{ key: key1String, value: 'usable'}, { key: key2String, value: 'usable'}],
89 'keyStatuses.forEach() fails');
90
57 assert_true(mediaKeySession.keyStatuses.has(key1)); 91 assert_true(mediaKeySession.keyStatuses.has(key1));
58 assert_true(mediaKeySession.keyStatuses.has(key2)); 92 assert_true(mediaKeySession.keyStatuses.has(key2));
59 assert_false(mediaKeySession.keyStatuses.has(stringToUint8Ar ray('123456'))); 93 assert_false(mediaKeySession.keyStatuses.has(stringToUint8Ar ray('123456')));
60 assert_equals(mediaKeySession.keyStatuses.get(key1), 'usable '); 94 assert_equals(mediaKeySession.keyStatuses.get(key1), 'usable ');
61 assert_equals(mediaKeySession.keyStatuses.get(key2), 'usable '); 95 assert_equals(mediaKeySession.keyStatuses.get(key2), 'usable ');
62 assert_equals(mediaKeySession.keyStatuses.get(stringToUint8A rray('123456')), undefined); 96 assert_equals(mediaKeySession.keyStatuses.get(stringToUint8A rray('123456')), undefined);
97
63 test.done(); 98 test.done();
64 } 99 }
65 100
66 navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(fu nction(access) { 101 navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(fu nction(access) {
67 return access.createMediaKeys(); 102 return access.createMediaKeys();
68 }).then(function(mediaKeys) { 103 }).then(function(mediaKeys) {
69 var initDataType = getInitDataType(); 104 var initDataType = getInitDataType();
70 mediaKeySession = mediaKeys.createSession(); 105 mediaKeySession = mediaKeys.createSession();
71 106
72 // There should be no keys defined yet. 107 // There should be no keys defined yet.
73 assert_equals(mediaKeySession.keyStatuses.size, 0); 108 assert_equals(mediaKeySession.keyStatuses.size, 0);
74 109
75 waitForEventAndRunStep('message', mediaKeySession, processMe ssage, test); 110 waitForEventAndRunStep('message', mediaKeySession, processMe ssage, test);
76 return mediaKeySession.generateRequest(initDataType, getInit Data(initDataType)); 111 return mediaKeySession.generateRequest(initDataType, getInit Data(initDataType));
77 }).catch(function(error) { 112 }).catch(function(error) {
78 forceTestFailureFromPromise(test, error); 113 forceTestFailureFromPromise(test, error);
79 }); 114 });
80 }, 'Verify MediaKeySession.keyStatuses.'); 115 }, 'Verify MediaKeySession.keyStatuses.');
81 </script> 116 </script>
82 </body> 117 </body>
83 </html> 118 </html>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/media/encrypted-media/encrypted-media-keystatuses-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698