forked from mirrors/gecko-dev
73 lines
1.7 KiB
JavaScript
73 lines
1.7 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
async function runTest(expectUtility) {
|
|
info(
|
|
`Running tests with decoding from Utility or RDD: expectUtility=${expectUtility}`
|
|
);
|
|
|
|
// Utility should now be the default, so dont toggle the pref unless we test
|
|
// RDD
|
|
if (!expectUtility) {
|
|
await SpecialPowers.pushPrefEnv({
|
|
set: [["media.utility-process.enabled", expectUtility]],
|
|
});
|
|
}
|
|
|
|
const platform = Services.appinfo.OS;
|
|
|
|
for (let { src, expectations } of audioTestData()) {
|
|
if (!(platform in expectations)) {
|
|
info(`Skipping ${src} for ${platform}`);
|
|
continue;
|
|
}
|
|
|
|
const expectation = expectations[platform];
|
|
|
|
info(`Add media tabs: ${src}`);
|
|
let tabs = [await addMediaTab(src), await addMediaTab(src)];
|
|
let playback = [];
|
|
|
|
info("Play tabs");
|
|
for (let tab of tabs) {
|
|
playback.push(
|
|
play(
|
|
tab,
|
|
expectUtility ? expectation.process : "RDD",
|
|
expectation.decoder
|
|
)
|
|
);
|
|
}
|
|
|
|
info("Wait all playback");
|
|
await Promise.all(playback);
|
|
|
|
let allstop = [];
|
|
info("Stop tabs");
|
|
for (let tab of tabs) {
|
|
allstop.push(stop(tab));
|
|
}
|
|
|
|
info("Wait all stop");
|
|
await Promise.all(allstop);
|
|
|
|
let remove = [];
|
|
info("Remove tabs");
|
|
for (let tab of tabs) {
|
|
remove.push(BrowserTestUtils.removeTab(tab));
|
|
}
|
|
|
|
info("Wait all tabs to be removed");
|
|
await Promise.all(remove);
|
|
}
|
|
}
|
|
|
|
add_task(async function testAudioDecodingInUtility() {
|
|
await runTest(true);
|
|
});
|
|
|
|
add_task(async function testAudioDecodingInRDD() {
|
|
await runTest(false);
|
|
});
|