| 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>
|
|
|