blob: 9da47f658332dc76b5ff6905ed507b0edf4885c9 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<title>MediaKeys.getStatusForPolicy</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 hdcpVersionNone = "";
var hdcpVersion2_0 = "hdcp-2.0";
var mediaKeys;
function checkMediaKeysPolicyConstruction() {
var policy = new MediaKeysPolicy({minHdcpVersion: hdcpVersionNone});
assert_equals(policy.minHdcpVersion, hdcpVersionNone);
policy = new MediaKeysPolicy({minHdcpVersion: hdcpVersion2_0});
assert_equals(policy.minHdcpVersion, hdcpVersion2_0);
policy = new MediaKeysPolicy({minHdcpVersion: hdcpVersion2_0, foo: "bar"});
assert_equals(policy.minHdcpVersion, hdcpVersion2_0);
assert_false('foo' in policy);
policy = new MediaKeysPolicy({foo: "bar"});
assert_equals(policy.minHdcpVersion, hdcpVersionNone);
assert_false('foo' in policy);
return Promise.resolve();
}
function getStatusForHdcpPolicy(hdcpVersion)
{
var policy = new MediaKeysPolicy({minHdcpVersion: hdcpVersion});
mediaKeys.getStatusForPolicy(policy).then(function(MediaKeyStatus) {
// getStatusForPolicy() is not supported by Clear Key key
// system and the promise should always be rejected with
// NotSupportedError.
return Promise.reject("Promise resolved unexpectedly");
}, function(error) {
assert_equals(error.name, "NotSupportedError");
return Promise.resolve();
});
}
return navigator.requestMediaKeySystemAccess('org.w3.clearkey', getSimpleConfiguration()).then(function(access) {
return access.createMediaKeys();
}).then(function(result) {
mediaKeys = result;
return checkMediaKeysPolicyConstruction();
}).then(function() {
return getStatusForHdcpPolicy(hdcpVersionNone);
}).then(function() {
return getStatusForHdcpPolicy(hdcpVersion2_0);
});
}, 'MediaKeys.getStatusForPolicy');
</script>
</body>
</html>