Files
tubestation/toolkit/content/tests/widgets/head.js

44 lines
1.2 KiB
JavaScript

"use strict";
var tests = [];
function waitForCondition(condition, nextTest, errorMsg) {
var tries = 0;
var interval = setInterval(function() {
if (tries >= 30) {
ok(false, errorMsg);
moveOn();
}
var conditionPassed;
try {
conditionPassed = condition();
} catch (e) {
ok(false, e + "\n" + e.stack);
conditionPassed = false;
}
if (conditionPassed) {
moveOn();
}
tries++;
}, 100);
var moveOn = function() { clearInterval(interval); nextTest(); };
}
function getAnonElementWithinVideoByAttribute(video, aName, aValue) {
const domUtils = SpecialPowers.Cc["@mozilla.org/inspector/dom-utils;1"].
getService(SpecialPowers.Ci.inIDOMUtils);
// <videocontrols> is the second anonymous child node of <video>, but
// the first child node of <audio>.
const videoControlIndex = video.nodeName == "VIDEO" ? 1 : 0;
const videoControl = domUtils.getChildrenForNode(video, true)[videoControlIndex];
return SpecialPowers.wrap(videoControl.ownerDocument)
.getAnonymousElementByAttribute(videoControl, aName, aValue);
}
function executeTests() {
return tests
.map(fn => () => new Promise(fn))
.reduce((promise, task) => promise.then(task), Promise.resolve());
}