Chromium Code Reviews| Index: LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html |
| diff --git a/LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html b/LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html |
| index 6283c1e5cce50d3f05a9d9abfcf85a5fe2380e27..2d49635d8c510171b9087a3f6dc03e564a597074 100644 |
| --- a/LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html |
| +++ b/LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html |
| @@ -13,13 +13,33 @@ |
| // Even though key ids are uint8, using printable values so that |
| // they can be verified easily. |
| - var key1 = stringToUint8Array('123'); |
| - var key2 = stringToUint8Array('4567890'); |
| + var key1String = '123'; |
| + var key2String = '4567890'; |
| + var key1 = stringToUint8Array(key1String); |
| + var key2 = stringToUint8Array(key2String); |
| var rawKey1 = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14, 0xd2, 0x7b, |
| 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4, 0xae, 0x3c]); |
| var rawKey2 = new Uint8Array([0x3c, 0xae, 0xe4, 0xfc, 0x2a, 0x12, 0xef, 0x68, |
| 0x7b, 0xd2, 0x14, 0x68, 0xf1, 0x62, 0xdd, 0xeb]); |
| + // Compares two arrays possibly containing subarrays for equality. |
| + // assert_array_equals() expects that each entry matches exactly, |
| + // which doesn't work for nested arrays. |
| + function compare_array(actual, expected, description) |
| + { |
| + assert_equals(actual.length, expected.length, |
| + description + ': length'); |
| + for (var i = 0; i < actual.length; i++) { |
| + if (Array.isArray(expected[i])) { |
| + assert_array_equals(expected[i], actual[i], |
| + description + ': entry[' + i + ']'); |
| + } else { |
| + assert_equals(expected[i], actual[i], |
| + description + ': entry[' + i + ']'); |
| + } |
| + } |
| + } |
| + |
| async_test(function(test) |
| { |
| function processMessage(event) |
| @@ -37,29 +57,62 @@ |
| function processKeyStatusesChange(event) |
| { |
| + // Two keys added, so both should show up in |keyStatuses|. |
| assert_equals(mediaKeySession.keyStatuses.size, 2); |
| - consoleWrite("for (var entry of keyStatuses)"); |
| + dumpKeyStatuses(mediaKeySession.keyStatuses); |
| + |
| + // Check |keyStatuses| for 2 entries. |
| + var result = []; |
| for (var entry of mediaKeySession.keyStatuses) { |
| - consoleWrite(arrayBufferAsString(entry[0]) + ", " + entry[1]); |
| + result.push([arrayBufferAsString(entry[0]), entry[1]]); |
| } |
| - consoleWrite("for (var key of keyStatuses.keys())"); |
| + compare_array(result, |
|
sandersd (OOO until July 31)
2015/01/30 22:51:38
If we are comparing both the key and the value, th
jrummell
2015/01/30 23:18:25
assert_object_equals() works.
|
| + [[key1String, 'usable'], [key2String, 'usable']], |
| + 'keyStatuses fails'); |
| + |
| + // |keyStatuses| must contain both keys. |
| + result = []; |
| for (var key of mediaKeySession.keyStatuses.keys()) { |
| - consoleWrite(arrayBufferAsString(key)); |
| + result.push(arrayBufferAsString(key)); |
| } |
| - consoleWrite("for (var value of keyStatuses.values())"); |
| + compare_array(result, |
| + [key1String, key2String], |
| + 'keyStatuses.keys() fails'); |
| + |
| + // Both values in |mediaKeySession| should be 'usable'. |
| + result = []; |
| for (var value of mediaKeySession.keyStatuses.values()) { |
| - consoleWrite(value); |
| + result.push(value); |
| } |
| - consoleWrite("for (var entry of keyStatuses.entries())"); |
| + compare_array(result, |
| + ['usable', 'usable'], |
| + 'keyStatuses.values() fails'); |
| + |
| + // Check |keyStatuses.entries()|. |
| + result = []; |
| for (var entry of mediaKeySession.keyStatuses.entries()) { |
| - consoleWrite(arrayBufferAsString(entry[0]) + ", " + entry[1]); |
| + result.push([arrayBufferAsString(entry[0]), entry[1]]); |
| } |
| + compare_array(result, |
| + [[key1String, 'usable'], [key2String, 'usable']], |
| + 'keyStatuses.entries() fails'); |
| + |
| + // forEach() should return both entries. |
| + result = []; |
| + mediaKeySession.keyStatuses.forEach(function(value, key, map) { |
| + result.push([arrayBufferAsString(key), value]); |
| + }); |
| + compare_array(result, |
| + [[key1String, 'usable'], [key2String, 'usable']], |
| + 'keyStatuses.forEach() fails'); |
| + |
| assert_true(mediaKeySession.keyStatuses.has(key1)); |
| assert_true(mediaKeySession.keyStatuses.has(key2)); |
| assert_false(mediaKeySession.keyStatuses.has(stringToUint8Array('123456'))); |
| assert_equals(mediaKeySession.keyStatuses.get(key1), 'usable'); |
| assert_equals(mediaKeySession.keyStatuses.get(key2), 'usable'); |
| assert_equals(mediaKeySession.keyStatuses.get(stringToUint8Array('123456')), undefined); |
| + |
| test.done(); |
| } |