Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(874)

Side by Side Diff: third_party/WebKit/LayoutTests/imported/wpt/encrypted-media/scripts/syntax-mediakeysystemaccess.js

Issue 2546853003: Add W3C encrypted-media tests (Closed)
Patch Set: rebase now that content files landed Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 function runTest(config) {
2 var keysystem = config.keysystem;
3 var testname = testnamePrefix(null, config.keysystem);
4 var initDataType = config.initDataType;
5 var configuration = {
6 initDataTypes: [config.initDataType],
7 audioCapabilities: [{contentType: config.audioType}],
8 videoCapabilities: [{contentType: config.videoType}],
9 sessionTypes: ['temporary']
10 };
11
12 var kRequestMediaKeySystemAccessExceptionsTestCases = [
13 // Too few parameters.
14 {
15 exception: 'TypeError',
16 func: function () {
17 return navigator.requestMediaKeySystemAccess();
18 }
19 },
20 {
21 exception: 'TypeError',
22 func: function () {
23 return navigator.requestMediaKeySystemAccess(keysystem);
24 }
25 },
26 // Invalid key systems. Note that JavaScript converts all these
27 // values into strings by calling toString(), so they fail due
28 // to the key system not being supported, not due to the type.
29 {
30 exception: 'NotSupportedError',
31 func: function () {
32 return navigator.requestMediaKeySystemAccess(null, [{}]);
33 }
34 },
35 {
36 exception: 'NotSupportedError',
37 func: function () {
38 return navigator.requestMediaKeySystemAccess(undefined, [{}]);
39 }
40 },
41 {
42 exception: 'NotSupportedError',
43 func: function () {
44 return navigator.requestMediaKeySystemAccess(1, [{}]);
45 }
46 },
47 {
48 exception: 'NotSupportedError',
49 func: function () {
50 return navigator.requestMediaKeySystemAccess('unsupported', [{}] );
51 }
52 },
53 // Empty keysystem string should be rejected with TypeError.
54 {
55 exception: 'TypeError',
56 func: function () {
57 return navigator.requestMediaKeySystemAccess('', [{}]);
58 }
59 },
60 // (new Uint8Array(0)).toString() should return ''. So this case should be the same
61 // as the above.
62 {
63 exception: 'TypeError',
64 func: function () {
65 return navigator.requestMediaKeySystemAccess(new Uint8Array(0), [{}]);
66 }
67 },
68 // Non-ASCII names.
69 {
70 exception: 'NotSupportedError',
71 func: function () {
72 return navigator.requestMediaKeySystemAccess(keysystem + '\u263A ', [{}]);
73 }
74 },
75 // Empty sequence of MediaKeySystemConfiguration.
76 {
77 exception: 'TypeError',
78 func: function () {
79 return navigator.requestMediaKeySystemAccess(keysystem, []);
80 }
81 },
82 // Things that don't convert to valid sequences of MediaKeySystemConfigu rations.
83 {
84 exception: 'TypeError',
85 func: function () {
86 return navigator.requestMediaKeySystemAccess(keysystem, {});
87 }
88 },
89 {
90 exception: 'TypeError',
91 func: function () {
92 return navigator.requestMediaKeySystemAccess(keysystem, "invalid ");
93 }
94 },
95 {
96 exception: 'TypeError',
97 func: function () {
98 return navigator.requestMediaKeySystemAccess(keysystem, [{}, 6]) ;
99 }
100 },
101 {
102 exception: 'TypeError',
103 func: function () {
104 return navigator.requestMediaKeySystemAccess(keysystem, ["invali d", "upsupported"]);
105 }
106 }
107 ];
108
109 function requestMediaKeySystemAccessTestExceptions(){
110 return new Promise(function(resolve, reject){
111 var createPromises = kRequestMediaKeySystemAccessExceptionsTestCases .map(function (testCase) {
112 return test_exception(testCase);
113 });
114 Promise.all(createPromises).then(function (result) {
115 resolve();
116 }).catch(function (error) {
117 reject(error);
118 });
119 })
120 }
121 promise_test(function() {
122 return requestMediaKeySystemAccessTestExceptions();
123 }, testname + ' test requestMediaKeySystemAccess() exceptions.');
124
125 function requestMediaKeySystemAccessTestAttributes(){
126 return new Promise(function(resolve, reject){
127 isInitDataTypeSupported(keysystem, initDataType).then(function (isTy peSupported) {
128 assert_equals(typeof navigator.requestMediaKeySystemAccess, 'function');
129 assert_true(isTypeSupported, "initDataType not supported");
130 return navigator.requestMediaKeySystemAccess(keysystem, [con figuration]);
131 }).then(function (access) {
132 assert_not_equals(access, null);
133 assert_equals(typeof access, 'object');
134 assert_equals(access.keySystem, keysystem);
135 assert_equals(typeof access.getConfiguration, 'function');
136 assert_equals(typeof access.createMediaKeys, 'function');
137 resolve();
138 }).catch(function(error){
139 reject(error);
140 })
141 })
142 }
143 promise_test(function() {
144 return requestMediaKeySystemAccessTestAttributes();
145 }, testname + ' test MediaKeySystemAccess attribute syntax.');
146
147 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698