| <!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> |