46 lines
1.8 KiB
JavaScript
46 lines
1.8 KiB
JavaScript
function runTest(config, qualifier)
|
|
{
|
|
function checkEncryptionScheme(encryptionScheme)
|
|
{
|
|
var simpleConfig = getSimpleConfiguration();
|
|
assert_greater_than(simpleConfig[0].audioCapabilities.length, 0);
|
|
simpleConfig[0].audioCapabilities.forEach(function(capability) {
|
|
capability.encryptionScheme = encryptionScheme;
|
|
});
|
|
|
|
return navigator.requestMediaKeySystemAccess(config.keysystem, simpleConfig)
|
|
.then(
|
|
function(access) {
|
|
var actualConfiguration = access.getConfiguration();
|
|
for (let i = 0; i < actualConfiguration.audioCapabilities.length; i++) {
|
|
const capability = actualConfiguration.audioCapabilities[i];
|
|
|
|
// If "encryptionScheme" is not supported, fail.
|
|
if (!('encryptionScheme' in capability)) {
|
|
return Promise.reject('Not implemented');
|
|
}
|
|
|
|
// If "encryptionScheme" is supported, it should be returned.
|
|
assert_equals(capability.encryptionScheme, encryptionScheme);
|
|
}
|
|
return Promise.resolve('Supported');
|
|
},
|
|
function error() {
|
|
// CDM does not support "encryptionScheme". Test should still pass.
|
|
return Promise.resolve('Not supported');
|
|
});
|
|
}
|
|
|
|
promise_test(
|
|
() => checkEncryptionScheme('cenc'),
|
|
testnamePrefix(qualifier, config.keysystem) + ' support for "cenc" encryption scheme.');
|
|
|
|
promise_test(
|
|
() => checkEncryptionScheme('cbcs'),
|
|
testnamePrefix(qualifier, config.keysystem) + ' support for "cbcs" encryption scheme.');
|
|
|
|
promise_test(
|
|
() => checkEncryptionScheme('cbcs-1-9'),
|
|
testnamePrefix(qualifier, config.keysystem) +
|
|
' support for "cbcs-1-9" encryption scheme.');
|
|
}
|