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

Unified 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: more 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-multiple-updates.html
diff --git a/LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html b/LayoutTests/media/encrypted-media/encrypted-media-keystatuses-multiple-updates.html
similarity index 56%
copy from LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html
copy to LayoutTests/media/encrypted-media/encrypted-media-keystatuses-multiple-updates.html
index 6283c1e5cce50d3f05a9d9abfcf85a5fe2380e27..c1ea893494a7171a9f445d7a5be08cc32bc6ee89 100644
--- a/LayoutTests/media/encrypted-media/encrypted-media-keystatuses.html
+++ b/LayoutTests/media/encrypted-media/encrypted-media-keystatuses-multiple-updates.html
@@ -1,7 +1,7 @@
<!DOCTYPE html>
<html>
<head>
- <title>Verify MediaKeySession.keyStatuses</title>
+ <title>Verify MediaKeySession.keyStatuses with multiple updates</title>
<script src="encrypted-media-utils.js"></script>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
@@ -10,6 +10,7 @@
<div id="log"></div>
<script>
var mediaKeySession;
+ var firstEvent;
// Even though key ids are uint8, using printable values so that
// they can be verified easily.
@@ -25,11 +26,11 @@
function processMessage(event)
{
// No keys added yet.
- assert_equals(mediaKeySession.keyStatuses.size, 0);
-
- waitForEventAndRunStep('keystatuseschange', mediaKeySession, processKeyStatusesChange, test);
+ verifyKeyStatuses(mediaKeySession.keyStatuses, { expected: [], unexpected: [key1, key2] });
- var jwkSet = stringToUint8Array(createJWKSet(createJWK(key1, rawKey1), createJWK(key2, rawKey2)));
+ // Add key1 to the session.
+ firstEvent = true;
+ var jwkSet = stringToUint8Array(createJWKSet(createJWK(key1, rawKey1)));
mediaKeySession.update(jwkSet).catch(function(error) {
forceTestFailureFromPromise(test, error);
});
@@ -37,30 +38,24 @@
function processKeyStatusesChange(event)
{
- assert_equals(mediaKeySession.keyStatuses.size, 2);
- consoleWrite("for (var entry of keyStatuses)");
- for (var entry of mediaKeySession.keyStatuses) {
- consoleWrite(arrayBufferAsString(entry[0]) + ", " + entry[1]);
- }
- consoleWrite("for (var key of keyStatuses.keys())");
- for (var key of mediaKeySession.keyStatuses.keys()) {
- consoleWrite(arrayBufferAsString(key));
- }
- consoleWrite("for (var value of keyStatuses.values())");
- for (var value of mediaKeySession.keyStatuses.values()) {
- consoleWrite(value);
- }
- consoleWrite("for (var entry of keyStatuses.entries())");
- for (var entry of mediaKeySession.keyStatuses.entries()) {
- consoleWrite(arrayBufferAsString(entry[0]) + ", " + entry[1]);
+ if (firstEvent) {
+ // Verify that the session only contains key1.
+ dumpKeyStatuses(mediaKeySession.keyStatuses);
+ verifyKeyStatuses(mediaKeySession.keyStatuses, { expected: [key1], unexpected: [key2] });
+
+ // Now add key2 to the session.
+ firstEvent = false;
+ var jwkSet = stringToUint8Array(createJWKSet(createJWK(key2, rawKey2)));
+ mediaKeySession.update(jwkSet).catch(function(error) {
+ forceTestFailureFromPromise(test, error);
+ });
+ } else {
+ // Verify that the session now contains key1 and key2.
+ dumpKeyStatuses(mediaKeySession.keyStatuses);
+ verifyKeyStatuses(mediaKeySession.keyStatuses, { expected: [key1, key2] });
+
+ test.done();
}
- 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();
}
navigator.requestMediaKeySystemAccess('org.w3.clearkey').then(function(access) {
@@ -73,11 +68,13 @@
assert_equals(mediaKeySession.keyStatuses.size, 0);
waitForEventAndRunStep('message', mediaKeySession, processMessage, test);
+ waitForEventAndRunStep('keystatuseschange', mediaKeySession, processKeyStatusesChange, test);
+
return mediaKeySession.generateRequest(initDataType, getInitData(initDataType));
}).catch(function(error) {
forceTestFailureFromPromise(test, error);
});
- }, 'Verify MediaKeySession.keyStatuses.');
+ }, 'Verify MediaKeySession.keyStatuses with multiple updates.');
</script>
</body>
</html>

Powered by Google App Engine
This is Rietveld 408576698