Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove.html |
| diff --git a/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove.html b/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5b3df731edc9821f2864b0e6ce0885bac0772006 |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/media/encrypted-media/encrypted-media-session-remove.html |
| @@ -0,0 +1,57 @@ |
| +<!DOCTYPE html> |
| +<html> |
| + <head> |
| + <title>Test MediaKeySession remove() function</title> |
|
xhwang
2017/04/25 16:43:48
About the file name and this title, should this be
jrummell
2017/04/25 17:54:10
Done.
|
| + <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'); |
| + </script> |
| + </body> |
| +</html> |