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

Unified 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: js Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698