78 lines
1.8 KiB
JavaScript
78 lines
1.8 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
/* import-globals-from head.js */
|
|
|
|
async function runTest({
|
|
expectUtility = false,
|
|
expectRDD = false,
|
|
expectContent = false,
|
|
expectError = false,
|
|
}) {
|
|
info(`Running tests with decoding from somewhere`);
|
|
info(` expectUtility: ${expectUtility}`);
|
|
info(` expectRDD: ${expectRDD}`);
|
|
info(` expectContent: ${expectContent}`);
|
|
|
|
// 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 && !expectContent && !expectError
|
|
? expectation.process
|
|
: "RDD",
|
|
expectation.decoder,
|
|
expectContent,
|
|
false, // expectJava
|
|
expectError
|
|
)
|
|
);
|
|
}
|
|
|
|
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);
|
|
}
|
|
}
|