109 lines
3.4 KiB
HTML
109 lines
3.4 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<script src=../video-test.js></script>
|
|
<script type="text/javascript">
|
|
var mock;
|
|
var promise;
|
|
var mediaKeySystemAccess;
|
|
var capabilities = {};
|
|
|
|
function doTest()
|
|
{
|
|
if (!window.internals) {
|
|
// failTest("Internals is required for this test.")
|
|
// return;
|
|
}
|
|
|
|
run('internals.initializeMockMediaSource()');
|
|
run('mock = internals.registerMockCDM()');
|
|
run('mock.supportedDataTypes = ["mock"]');
|
|
|
|
next();
|
|
}
|
|
|
|
function next() {
|
|
if (!tests.length) {
|
|
mock.unregister();
|
|
endTest()
|
|
return;
|
|
}
|
|
|
|
var nextTest = tests.shift();
|
|
consoleWrite('');
|
|
nextTest();
|
|
}
|
|
|
|
function gotMediaKeySystemAccess(result) {
|
|
mediaKeySystemAccess = result;
|
|
next();
|
|
}
|
|
|
|
tests = [
|
|
function() {
|
|
run('capabilities.initDataTypes = ["mock"]');
|
|
run(`capabilities.videoCapabilities = [{ contentType: 'video/mock; codecs="mock"' }] `);
|
|
run('promise = navigator.requestMediaKeySystemAccess("org.webkit.mock", [capabilities])');
|
|
shouldResolve(promise).then(gotMediaKeySystemAccess, failTest);
|
|
},
|
|
|
|
function() {
|
|
run('promise = mediaKeySystemAccess.createMediaKeys()');
|
|
shouldResolve(promise).then(next, next);
|
|
},
|
|
|
|
function() {
|
|
run('mock.canCreateInstances = false');
|
|
run('promise = mediaKeySystemAccess.createMediaKeys()');
|
|
shouldReject(promise).then(next, next);
|
|
},
|
|
|
|
function() {
|
|
run('mock.canCreateInstances = true');
|
|
run('capabilities.distinctiveIdentifier = "not-allowed"');
|
|
run('promise = navigator.requestMediaKeySystemAccess("org.webkit.mock", [capabilities])');
|
|
shouldResolve(promise).then(gotMediaKeySystemAccess, failTest);
|
|
},
|
|
|
|
function() {
|
|
run('promise = mediaKeySystemAccess.createMediaKeys()');
|
|
shouldResolve(promise).then(next, next);
|
|
},
|
|
|
|
function() {
|
|
run('mock.distinctiveIdentifiersRequirement = "required"');
|
|
run('promise = mediaKeySystemAccess.createMediaKeys()');
|
|
shouldReject(promise).then(next, next);
|
|
},
|
|
|
|
function() {
|
|
run('mock.distinctiveIdentifiersRequirement = "optional"');
|
|
run('capabilities.persistentState = "not-allowed"');
|
|
run('promise = navigator.requestMediaKeySystemAccess("org.webkit.mock", [capabilities])');
|
|
shouldResolve(promise).then(gotMediaKeySystemAccess, failTest);
|
|
},
|
|
|
|
function() {
|
|
run('testRunner.setIsMediaKeySystemPermissionGranted(false)');
|
|
run('promise = navigator.requestMediaKeySystemAccess("org.webkit.mock", [capabilities])');
|
|
shouldReject(promise).then(next, next);
|
|
},
|
|
|
|
function() {
|
|
testRunner.setIsMediaKeySystemPermissionGranted(true);
|
|
run('promise = mediaKeySystemAccess.createMediaKeys()');
|
|
shouldResolve(promise).then(next, next);
|
|
},
|
|
|
|
function() {
|
|
run('mock.persistentStateRequirement = "required"');
|
|
run('promise = mediaKeySystemAccess.createMediaKeys()');
|
|
shouldReject(promise).then(next, next);
|
|
},
|
|
];
|
|
</script>
|
|
</head>
|
|
<body onload="doTest()">
|
|
</body>
|
|
</html>
|