Chromium Code Reviews| OLD | NEW |
|---|---|
| 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> |
| (...skipping 19 matching lines...) Expand all Loading... | |
| 30 waitForEventAndRunStep('keystatuseschange', mediaKeySession, processKeyStatusesChange, test); | 30 waitForEventAndRunStep('keystatuseschange', mediaKeySession, processKeyStatusesChange, test); |
| 31 | 31 |
| 32 var jwkSet = stringToUint8Array(createJWKSet(createJWK(key1, rawKey1), createJWK(key2, rawKey2))); | 32 var jwkSet = stringToUint8Array(createJWKSet(createJWK(key1, rawKey1), createJWK(key2, rawKey2))); |
| 33 mediaKeySession.update(jwkSet).catch(function(error) { | 33 mediaKeySession.update(jwkSet).catch(function(error) { |
| 34 forceTestFailureFromPromise(test, error); | 34 forceTestFailureFromPromise(test, error); |
| 35 }); | 35 }); |
| 36 } | 36 } |
| 37 | 37 |
| 38 function processKeyStatusesChange(event) | 38 function processKeyStatusesChange(event) |
| 39 { | 39 { |
| 40 // Two keys added, so both should show up in |keyStatuses|. | |
| 40 assert_equals(mediaKeySession.keyStatuses.size, 2); | 41 assert_equals(mediaKeySession.keyStatuses.size, 2); |
| 41 consoleWrite("for (var entry of keyStatuses)"); | 42 dumpKeyStatuses(mediaKeySession.keyStatuses); |
| 43 | |
| 44 // Check |keyStatuses| for 2 entries. | |
| 45 var key1String = arrayBufferAsString(key1); | |
| 46 var key2String = arrayBufferAsString(key2); | |
| 47 var count = 0; | |
| 42 for (var entry of mediaKeySession.keyStatuses) { | 48 for (var entry of mediaKeySession.keyStatuses) { |
|
sandersd (OOO until July 31)
2015/01/30 20:40:00
This could be made into a helper function that, gi
jrummell
2015/01/30 22:33:56
Done.
| |
| 43 consoleWrite(arrayBufferAsString(entry[0]) + ", " + entr y[1]); | 49 ++count; |
| 50 assert_true(arrayBufferAsString(entry[0]) == key1String || | |
| 51 arrayBufferAsString(entry[0]) == key2String) ; | |
| 52 assert_equals(entry[1], 'usable'); | |
| 44 } | 53 } |
| 45 consoleWrite("for (var key of keyStatuses.keys())"); | 54 assert_equals(count, 2, 'keyStatuses does not contain 2 entr ies'); |
| 55 | |
| 56 // |keyStatuses| must contain both keys. | |
| 57 count = 0; | |
| 58 var seen1 = false; | |
| 59 var seen2 = false; | |
| 46 for (var key of mediaKeySession.keyStatuses.keys()) { | 60 for (var key of mediaKeySession.keyStatuses.keys()) { |
| 47 consoleWrite(arrayBufferAsString(key)); | 61 ++count; |
| 62 assert_true(arrayBufferAsString(key) == key1String || | |
| 63 arrayBufferAsString(key) == key2String); | |
| 64 if (arrayBufferAsString(key) == key1String) | |
| 65 seen1 = true; | |
| 66 if (arrayBufferAsString(key) == key2String) | |
| 67 seen2 = true; | |
| 48 } | 68 } |
| 49 consoleWrite("for (var value of keyStatuses.values())"); | 69 assert_equals(count, 2, 'keyStatuses.keys() does not contain 2 entries'); |
| 70 assert_true(seen1, 'key1 not returned'); | |
| 71 assert_true(seen2, 'key2 not returned'); | |
| 72 | |
| 73 // Both values in |mediaKeySession| should be 'usable'. | |
| 74 count = 0; | |
| 50 for (var value of mediaKeySession.keyStatuses.values()) { | 75 for (var value of mediaKeySession.keyStatuses.values()) { |
| 51 consoleWrite(value); | 76 ++count; |
| 77 assert_equals(value, 'usable'); | |
| 52 } | 78 } |
| 53 consoleWrite("for (var entry of keyStatuses.entries())"); | 79 assert_equals(count, 2, 'keyStatuses.values() does not conta in 2 entries'); |
| 80 | |
| 81 // Check |keyStatuses.entries()|. | |
| 82 count = 0; | |
| 54 for (var entry of mediaKeySession.keyStatuses.entries()) { | 83 for (var entry of mediaKeySession.keyStatuses.entries()) { |
| 55 consoleWrite(arrayBufferAsString(entry[0]) + ", " + entr y[1]); | 84 ++count; |
| 85 assert_true(arrayBufferAsString(entry[0]) == key1String || | |
| 86 arrayBufferAsString(entry[0]) == key2String) ; | |
| 87 assert_equals(entry[1], 'usable'); | |
| 56 } | 88 } |
| 89 assert_equals(count, 2, 'keyStatuses.entries() does not cont ain 2 entries'); | |
| 90 | |
| 91 // forEach() should return both entries. | |
| 92 count = 0; | |
| 93 seen1 = false; | |
| 94 seen2 = false; | |
| 95 mediaKeySession.keyStatuses.forEach(function(value, key, map ) { | |
| 96 ++count; | |
| 97 assert_true(arrayBufferAsString(key) == key1String || | |
| 98 arrayBufferAsString(key) == key2String); | |
| 99 if (arrayBufferAsString(key) == key1String) | |
| 100 seen1 = true; | |
| 101 if (arrayBufferAsString(key) == key2String) | |
| 102 seen2 = true; | |
| 103 assert_equals(value, 'usable'); | |
| 104 assert_equals(map, mediaKeySession.keyStatuses); | |
| 105 }); | |
| 106 assert_equals(count, 2, 'keyStatuses.forEach() does not cont ain 2 entries'); | |
| 107 assert_true(seen1, 'key1 not returned'); | |
| 108 assert_true(seen2, 'key2 not returned'); | |
| 109 | |
| 57 assert_true(mediaKeySession.keyStatuses.has(key1)); | 110 assert_true(mediaKeySession.keyStatuses.has(key1)); |
| 58 assert_true(mediaKeySession.keyStatuses.has(key2)); | 111 assert_true(mediaKeySession.keyStatuses.has(key2)); |
| 59 assert_false(mediaKeySession.keyStatuses.has(stringToUint8Ar ray('123456'))); | 112 assert_false(mediaKeySession.keyStatuses.has(stringToUint8Ar ray('123456'))); |
| 60 assert_equals(mediaKeySession.keyStatuses.get(key1), 'usable '); | 113 assert_equals(mediaKeySession.keyStatuses.get(key1), 'usable '); |
| 61 assert_equals(mediaKeySession.keyStatuses.get(key2), 'usable '); | 114 assert_equals(mediaKeySession.keyStatuses.get(key2), 'usable '); |
| 62 assert_equals(mediaKeySession.keyStatuses.get(stringToUint8A rray('123456')), undefined); | 115 assert_equals(mediaKeySession.keyStatuses.get(stringToUint8A rray('123456')), undefined); |
| 116 | |
| 63 test.done(); | 117 test.done(); |
| 64 } | 118 } |
| 65 | 119 |
| 66 navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(fu nction(access) { | 120 navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(fu nction(access) { |
| 67 return access.createMediaKeys(); | 121 return access.createMediaKeys(); |
| 68 }).then(function(mediaKeys) { | 122 }).then(function(mediaKeys) { |
| 69 var initDataType = getInitDataType(); | 123 var initDataType = getInitDataType(); |
| 70 mediaKeySession = mediaKeys.createSession(); | 124 mediaKeySession = mediaKeys.createSession(); |
| 71 | 125 |
| 72 // There should be no keys defined yet. | 126 // There should be no keys defined yet. |
| 73 assert_equals(mediaKeySession.keyStatuses.size, 0); | 127 assert_equals(mediaKeySession.keyStatuses.size, 0); |
| 74 | 128 |
| 75 waitForEventAndRunStep('message', mediaKeySession, processMe ssage, test); | 129 waitForEventAndRunStep('message', mediaKeySession, processMe ssage, test); |
| 76 return mediaKeySession.generateRequest(initDataType, getInit Data(initDataType)); | 130 return mediaKeySession.generateRequest(initDataType, getInit Data(initDataType)); |
| 77 }).catch(function(error) { | 131 }).catch(function(error) { |
| 78 forceTestFailureFromPromise(test, error); | 132 forceTestFailureFromPromise(test, error); |
| 79 }); | 133 }); |
| 80 }, 'Verify MediaKeySession.keyStatuses.'); | 134 }, 'Verify MediaKeySession.keyStatuses.'); |
| 81 </script> | 135 </script> |
| 82 </body> | 136 </body> |
| 83 </html> | 137 </html> |
| OLD | NEW |