mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Update web-platform-tests to revision e8bfc205e36ad699601212cd50083870bad9a75d
This commit is contained in:
parent
65dd6d4340
commit
ccdb0a3458
1428 changed files with 118036 additions and 9786 deletions
|
@ -0,0 +1,184 @@
|
|||
function runTest(config) {
|
||||
var keysystem = config.keysystem;
|
||||
var testname = testnamePrefix(null, config.keysystem);
|
||||
var initDataType = config.initDataType;
|
||||
var configuration = {
|
||||
initDataTypes: [config.initDataType],
|
||||
audioCapabilities: [{contentType: config.audioType}],
|
||||
videoCapabilities: [{contentType: config.videoType}],
|
||||
sessionTypes: ['temporary']
|
||||
};
|
||||
|
||||
function createMediaKeysAttributeTest() {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var access;
|
||||
isInitDataTypeSupported(keysystem, initDataType).then(function (isTypeSupported) {
|
||||
assert_equals(typeof navigator.requestMediaKeySystemAccess, 'function');
|
||||
assert_true(isTypeSupported, "initDataType should be supported");
|
||||
return navigator.requestMediaKeySystemAccess(keysystem, [configuration]);
|
||||
}).then(function (result) {
|
||||
access = result;
|
||||
assert_equals(access.keySystem, keysystem);
|
||||
return access.createMediaKeys();
|
||||
}).then(function (mediaKeys) {
|
||||
assert_not_equals(mediaKeys, null);
|
||||
assert_equals(typeof mediaKeys, 'object');
|
||||
assert_equals(typeof mediaKeys.createSession, 'function');
|
||||
assert_equals(typeof mediaKeys.setServerCertificate, 'function');
|
||||
|
||||
// Test creation of a second MediaKeys.
|
||||
// The extra parameter is ignored.
|
||||
return access.createMediaKeys('extra');
|
||||
}).then(function (mediaKeys) {
|
||||
assert_not_equals(mediaKeys, null);
|
||||
assert_equals(typeof mediaKeys, 'object');
|
||||
assert_equals(typeof mediaKeys.createSession, 'function');
|
||||
assert_equals(typeof mediaKeys.setServerCertificate, 'function');
|
||||
resolve();
|
||||
}).catch(function (error) {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
promise_test(function() {
|
||||
return createMediaKeysAttributeTest();
|
||||
}, testname + ' test MediaKeys attribute syntax');
|
||||
|
||||
var kSetServerCertificateExceptionsTestCases = [
|
||||
// Too few parameters.
|
||||
{
|
||||
exception: 'TypeError',
|
||||
func: function (mk) {
|
||||
return mk.setServerCertificate();
|
||||
}
|
||||
},
|
||||
// Invalid parameters.
|
||||
{
|
||||
exception: 'TypeError',
|
||||
func: function (mk) {
|
||||
return mk.setServerCertificate('');
|
||||
}
|
||||
},
|
||||
{
|
||||
exception: 'TypeError',
|
||||
func: function (mk) {
|
||||
return mk.setServerCertificate(null);
|
||||
}
|
||||
},
|
||||
{
|
||||
exception: 'TypeError',
|
||||
func: function (mk) {
|
||||
return mk.setServerCertificate(undefined);
|
||||
}
|
||||
},
|
||||
{
|
||||
exception: 'TypeError',
|
||||
func: function (mk) {
|
||||
return mk.setServerCertificate(1);
|
||||
}
|
||||
},
|
||||
// Empty array.
|
||||
{
|
||||
exception: 'TypeError',
|
||||
func: function (mk) {
|
||||
return mk.setServerCertificate(new Uint8Array(0));
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
function setServerCertificateTestExceptions() {
|
||||
return new Promise(function(resolve, reject) {
|
||||
isInitDataTypeSupported(keysystem, initDataType).then(function (isTypeSupported) {
|
||||
assert_equals(typeof navigator.requestMediaKeySystemAccess, 'function');
|
||||
assert_true(isTypeSupported, "initDataType not supported");
|
||||
return navigator.requestMediaKeySystemAccess(keysystem, [configuration]);
|
||||
}).then(function (access) {
|
||||
return access.createMediaKeys();
|
||||
}).then(function (mediaKeys) {
|
||||
var promises = kSetServerCertificateExceptionsTestCases.map(function (testCase) {
|
||||
return test_exception(testCase, mediaKeys);
|
||||
});
|
||||
assert_not_equals(promises.length, 0);
|
||||
return Promise.all(promises);
|
||||
}).then(function () {
|
||||
resolve();
|
||||
}).catch(function (error) {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
}
|
||||
promise_test(function() {
|
||||
return setServerCertificateTestExceptions();
|
||||
}, testname + ' test MediaKeys setServerCertificate() exceptions.');
|
||||
|
||||
// All calls to |func| in this group resolve. setServerCertificate with these cert may either resolve with true
|
||||
// for clearkey or throw a DOMException.
|
||||
var kSetServerCertificateTestCases = [
|
||||
{
|
||||
// Pass in ArrayBufferView
|
||||
func: function (mk) {
|
||||
var cert = new Uint8Array(200);
|
||||
assert_true(ArrayBuffer.isView(cert));
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
mk.setServerCertificate(cert).then(function (value) {
|
||||
resolve(value);
|
||||
}).catch(function (error) {
|
||||
if (Object.prototype.toString.call(error) === "[object DOMException]") {
|
||||
resolve(false);
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
expected: false
|
||||
},
|
||||
{
|
||||
// Pass in ArrayBuffer.
|
||||
func: function (mk) {
|
||||
var cert = new ArrayBuffer(200);
|
||||
assert_false(ArrayBuffer.isView(cert));
|
||||
return new Promise(function (resolve) {
|
||||
mk.setServerCertificate(cert).then(function (resolveValue) {
|
||||
resolve(resolveValue);
|
||||
}).catch(function (error) {
|
||||
if (Object.prototype.toString.call(error) === "[object DOMException]") {
|
||||
resolve(false);
|
||||
}
|
||||
});
|
||||
})
|
||||
},
|
||||
expected: false
|
||||
}
|
||||
];
|
||||
function setServerCertificateTest(){
|
||||
return new Promise(function(resolve, reject){
|
||||
var expected_result;
|
||||
isInitDataTypeSupported(keysystem, initDataType).then(function (isTypeSupported) {
|
||||
assert_equals(typeof navigator.requestMediaKeySystemAccess, 'function');
|
||||
assert_true(isTypeSupported, "initDataType not supported");
|
||||
return navigator.requestMediaKeySystemAccess(keysystem, [configuration]);
|
||||
}).then(function (access) {
|
||||
return access.createMediaKeys();
|
||||
}).then(function (mediaKeys) {
|
||||
var promises = kSetServerCertificateTestCases.map(function (testCase) {
|
||||
return testCase.func.call(null, mediaKeys);
|
||||
});
|
||||
expected_result = kSetServerCertificateTestCases.map(function (testCase) {
|
||||
return testCase.expected;
|
||||
});
|
||||
assert_not_equals(promises.length, 0);
|
||||
return Promise.all(promises);
|
||||
}).then(function (result) {
|
||||
assert_array_equals(result, expected_result);
|
||||
resolve();
|
||||
}).catch(function (error) {
|
||||
reject(error);
|
||||
});
|
||||
})
|
||||
}
|
||||
promise_test(function() {
|
||||
return setServerCertificateTest();
|
||||
}, testname + ' test MediaKeys setServerCertificate() syntax with non-empty certificate.');
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue