blob: 7623ee722eeece4b63c6aedb5c879b7b59299cfa [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 = '2.0';
var mediaKeys;
// Calls getStatusForPolicy() with |hdcpVersion| and expects it
// to fail. If |expectedError| is specified, the resulting
// error must match. If |expectedError| not specified, the
// resulting error must be a NotSupportedError exception.
function getStatusForHdcpPolicy(hdcpVersion, expectedError)
{
return mediaKeys.getStatusForPolicy(hdcpVersion).then(function(MediaKeyStatus) {
// getStatusForPolicy() is not supported by Clear Key
// key system and the promise should always be rejected.
return Promise.reject('Promise resolved unexpectedly');
}, function(error) {
if (expectedError === undefined) {
assert_equals(error.name, 'NotSupportedError');
} else {
assert_equals(error, expectedError);
}
return Promise.resolve();
});
};
return navigator.requestMediaKeySystemAccess('org.w3.clearkey', getSimpleConfiguration()).then(function(access) {
return access.createMediaKeys();
}).then(function(result) {
mediaKeys = result;
return getStatusForHdcpPolicy({});
}).then(function() {
return getStatusForHdcpPolicy({minHdcpVersion: hdcpVersionNone});
}).then(function() {
return getStatusForHdcpPolicy({minHdcpVersion: hdcpVersion2_0});
}).then(function() {
return getStatusForHdcpPolicy({foo: 'bar'});
}).then(function() {
return getStatusForHdcpPolicy(
{ get minHdcpVersion() { return hdcpVersion2_0; } });
}).then(function() {
return getStatusForHdcpPolicy(
{ get minHdcpVersion() { throw 'throwing getter'; } },
'throwing getter');
});
}, 'MediaKeys.getStatusForPolicy');
</script>
</body>
</html>