| Index: third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove-temporary.html
|
| diff --git a/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove-temporary.html b/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove-temporary.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3ea6e78b7feb63daedda7a29ccbd6616e11ea5ba
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove-temporary.html
|
| @@ -0,0 +1,57 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| + <head>
|
| + <title>Test MediaKeySession remove() function on temporary sessions</title>
|
| + <script src="encrypted-media-utils.js"></script>
|
| + <script src="../../resources/testharness.js"></script>
|
| + <script src="../../resources/testharnessreport.js"></script>
|
| + </head>
|
| + <body>
|
| + <script>
|
| + promise_test(function(test)
|
| + {
|
| + var keyId = stringToUint8Array('0123456789012345');
|
| + var rawKey = new Uint8Array([0xeb, 0xdd, 0x62, 0xf1, 0x68, 0x14, 0xd2, 0x7b,
|
| + 0x68, 0xef, 0x12, 0x2a, 0xfc, 0xe4, 0xae, 0x3c]);
|
| +
|
| + var mediaKeySession;
|
| + var waitForMessagePromise;
|
| +
|
| + return navigator.requestMediaKeySystemAccess('org.w3.clearkey', getSimpleConfigurationForInitDataType('keyids')).then(function(access) {
|
| + return access.createMediaKeys();
|
| + }).then(function(mediaKeys) {
|
| + mediaKeySession = mediaKeys.createSession();
|
| + waitForMessagePromise = waitForSingleEvent(mediaKeySession, 'message', function(e, resolve, reject) {
|
| + resolve();
|
| + });
|
| + const request = stringToUint8Array(createKeyIDs(keyId));
|
| + return mediaKeySession.generateRequest('keyids', request);
|
| + }).then(function() {
|
| + return waitForMessagePromise;
|
| + }).then(function() {
|
| + const jwkSet = stringToUint8Array(createJWKSet(createJWK(keyId, rawKey)));
|
| + return mediaKeySession.update(jwkSet);
|
| + }).then(function() {
|
| + // After update() the session should have 1 usable key.
|
| + verifyKeyStatuses(mediaKeySession.keyStatuses,
|
| + { expected: [keyId], unexpected: [] }, 'usable');
|
| + return mediaKeySession.remove();
|
| + }).then(function() {
|
| + // After remove() all keys should be 'released'.
|
| + verifyKeyStatuses(mediaKeySession.keyStatuses,
|
| + { expected: [keyId], unexpected: [] }, 'released');
|
| + // After remove() the session expiry should be NaN.
|
| + // ClearKey doesn't change set expiry times, but check
|
| + // anyway.
|
| + assert_true(isNaN(mediaKeySession.expiration));
|
| + return mediaKeySession.close();
|
| + }).then(function() {
|
| + // After close() there should be no keys.
|
| + verifyKeyStatuses(mediaKeySession.keyStatuses,
|
| + { expected: [], unexpected: [keyId] });
|
| + });
|
| +
|
| + }, 'Test MediaKeySession remove() function on temporary sessions');
|
| + </script>
|
| + </body>
|
| +</html>
|
|
|