Source code

Revision control

Copy as Markdown

Other Tools

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.');
}