1
0
Fork 0
firefox/testing/web-platform/tests/encrypted-media/scripts/events-session-closed-event.js
Daniel Baumann 5e9a113729
Adding upstream version 140.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-25 09:37:52 +02:00

52 lines
No EOL
1.9 KiB
JavaScript

function runTest(config, qualifier)
{
var testname = testnamePrefix(qualifier, config.keysystem) + ' test MediaKeySession closed event.';
var configuration = {
initDataTypes: [config.initDataType],
audioCapabilities: [{
contentType: config.audioType
}],
videoCapabilities: [{
contentType: config.videoType
}],
sessionTypes: ['temporary']
};
promise_test(function (test) {
var initDataType;
var initData;
var mediaKeySession;
return navigator.requestMediaKeySystemAccess(config.keysystem, [configuration]).then(function (access) {
initDataType = access.getConfiguration().initDataTypes[0];
return access.createMediaKeys();
}).then(function (mediaKeys) {
mediaKeySession = mediaKeys.createSession();
if(config.initData) {
initData = config.initData;
} else {
initData = stringToUint8Array(atob(config.content.keys[0].initData));
}
return mediaKeySession.generateRequest(initDataType, initData);
}).then(function() {
// close() should result in the closed promise being
// fulfilled.
return mediaKeySession.close();
}).then(function (result) {
assert_equals(result, undefined);
// Wait for the session to be closed.
return mediaKeySession.closed;
}).then(function (result) {
assert_equals(result, "closed-by-application");
// Now that the session is closed, verify that the
// closed attribute immediately returns a fulfilled
// promise.
return mediaKeySession.closed;
}).then(function (result) {
assert_equals(result, "closed-by-application");
}).catch(function(error) {
assert_unreached('Error: ' + error.name);
});
}, testname);
}