| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <html> | 2 <html> |
| 3 <head> | 3 <head> |
| 4 <title>Test EME syntax</title> | 4 <title>Test EME syntax</title> |
| 5 <script src="encrypted-media-utils.js"></script> | 5 <script src="encrypted-media-utils.js"></script> |
| 6 <script src="../../resources/testharness.js"></script> | 6 <script src="../../resources/testharness.js"></script> |
| 7 <script src="../../resources/testharnessreport.js"></script> | 7 <script src="../../resources/testharnessreport.js"></script> |
| 8 </head> | 8 </head> |
| 9 <body> | 9 <body> |
| 10 <div id="log"></div> | 10 <div id="log"></div> |
| (...skipping 918 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 929 func: function(mk) { return mk.setServerCertificate(undefine
d); } | 929 func: function(mk) { return mk.setServerCertificate(undefine
d); } |
| 930 }, | 930 }, |
| 931 { | 931 { |
| 932 exception: 'TypeError', | 932 exception: 'TypeError', |
| 933 func: function(mk) { return mk.setServerCertificate(1); } | 933 func: function(mk) { return mk.setServerCertificate(1); } |
| 934 }, | 934 }, |
| 935 // Empty array. | 935 // Empty array. |
| 936 { | 936 { |
| 937 exception: 'InvalidAccessError', | 937 exception: 'InvalidAccessError', |
| 938 func: function(mk) { return mk.setServerCertificate(new Uint
8Array(0)); } | 938 func: function(mk) { return mk.setServerCertificate(new Uint
8Array(0)); } |
| 939 }, | |
| 940 // Valid calls, but not supported by Clear Key. | |
| 941 { | |
| 942 exception: 'NotSupportedError', | |
| 943 func: function(mk) { var cert = new Uint8Array(200); assert_
true(ArrayBuffer.isView(cert)); return mk.setServerCertificate(cert); } | |
| 944 }, | |
| 945 { | |
| 946 // Pass in ArrayBuffer | |
| 947 exception: 'NotSupportedError', | |
| 948 func: function(mk) { var cert = new Uint8Array(200); assert_
false(ArrayBuffer.isView(cert.buffer)); return mk.setServerCertificate(cert.buff
er); } | |
| 949 } | 939 } |
| 950 ]; | 940 ]; |
| 951 | 941 |
| 952 async_test(function(test) | 942 async_test(function(test) |
| 953 { | 943 { |
| 954 navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{}]).t
hen(function(access) { | 944 navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{}]).t
hen(function(access) { |
| 955 return access.createMediaKeys(); | 945 return access.createMediaKeys(); |
| 956 }).then(function(mediaKeys) { | 946 }).then(function(mediaKeys) { |
| 957 var promises = kSetServerCertificateExceptionsTestCases.map(
function(testCase) { | 947 var promises = kSetServerCertificateExceptionsTestCases.map(
function(testCase) { |
| 958 return test_exception(testCase, mediaKeys); | 948 return test_exception(testCase, mediaKeys); |
| 959 }); | 949 }); |
| 960 | 950 |
| 961 assert_not_equals(promises.length, 0); | 951 assert_not_equals(promises.length, 0); |
| 962 return Promise.all(promises); | 952 return Promise.all(promises); |
| 963 }).then(function(result) { | 953 }).then(function(result) { |
| 964 test.done(); | 954 test.done(); |
| 965 }).catch(function(error) { | 955 }).catch(function(error) { |
| 966 forceTestFailureFromPromise(test, error, 'setServerCertifica
te() exception tests failed'); | 956 forceTestFailureFromPromise(test, error, 'setServerCertifica
te() exception tests failed'); |
| 967 }); | 957 }); |
| 968 }, 'Test MediaKeys setServerCertificate() exceptions.'); | 958 }, 'Test MediaKeys setServerCertificate() exceptions.'); |
| 969 | 959 |
| 970 // FIXME: Add test for successful setServerCertificate(). Note that | 960 // All calls to |func| in this group are expected to resolve. |
| 971 // Clear Key does not support it. | 961 var kSetServerCertificateTestCases = [ |
| 962 { |
| 963 // Pass in ArrayBufferView |
| 964 func: function(mk) { |
| 965 var cert = new Uint8Array(200); |
| 966 assert_true(ArrayBuffer.isView(cert)); |
| 967 return mk.setServerCertificate(cert); |
| 968 }, |
| 969 expected: false, |
| 970 }, |
| 971 { |
| 972 // Pass in ArrayBuffer |
| 973 func: function(mk) { |
| 974 var buffer = new ArrayBuffer(200); |
| 975 assert_false(ArrayBuffer.isView(buffer)); |
| 976 return mk.setServerCertificate(buffer); |
| 977 }, |
| 978 expected: false, |
| 979 } |
| 980 ]; |
| 981 |
| 982 async_test(function(test) |
| 983 { |
| 984 var expected_result; |
| 985 navigator.requestMediaKeySystemAccess('org.w3.clearkey', [{}]).t
hen(function(access) { |
| 986 return access.createMediaKeys(); |
| 987 }).then(function(mediaKeys) { |
| 988 var promises = kSetServerCertificateTestCases.map(function(t
estCase) { |
| 989 return testCase.func.call(null, mediaKeys); |
| 990 }); |
| 991 expected_result = kSetServerCertificateTestCases.map(functio
n(testCase) { |
| 992 return testCase.expected; |
| 993 }); |
| 994 |
| 995 assert_not_equals(promises.length, 0); |
| 996 return Promise.all(promises); |
| 997 }).then(function(result) { |
| 998 assert_array_equals(result, expected_result); |
| 999 test.done(); |
| 1000 }).catch(function(error) { |
| 1001 forceTestFailureFromPromise(test, error, 'setServerCertifica
te() test failed'); |
| 1002 }); |
| 1003 }, 'Test MediaKeys setServerCertificate().'); |
| 1004 |
| 972 | 1005 |
| 973 // FIXME: Add syntax checks for MediaKeys.IsTypeSupported(). | 1006 // FIXME: Add syntax checks for MediaKeys.IsTypeSupported(). |
| 974 // FIXME: Add syntax checks for MediaKeyError and MediaKeySession ev
ents. | 1007 // FIXME: Add syntax checks for MediaKeyError and MediaKeySession ev
ents. |
| 975 // FIXME: Add HTMLMediaElement syntax checks, e.g. setMediaKeys, med
iakeys, onencrypted. | 1008 // FIXME: Add HTMLMediaElement syntax checks, e.g. setMediaKeys, med
iakeys, onencrypted. |
| 976 </script> | 1009 </script> |
| 977 </body> | 1010 </body> |
| 978 </html> | 1011 </html> |
| OLD | NEW |