mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-23 10:15:41 +00:00
85611a7b6d
--HG-- extra : rebase_source : a22344ee1569f58f1f0a01017bfe0d46a6a14602
67 lines
2.1 KiB
HTML
67 lines
2.1 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<title>Video controls test - Error</title>
|
|
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<script type="text/javascript" src="/tests/SimpleTest/EventUtils.js"></script>
|
|
<script type="text/javascript" src="head.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
|
|
</head>
|
|
<body>
|
|
<p id="display"></p>
|
|
|
|
<div id="content">
|
|
<video id="video" controls preload="auto"></video>
|
|
</div>
|
|
|
|
<pre id="test">
|
|
<script clas="testbody" type="application/javascript">
|
|
SimpleTest.waitForExplicitFinish();
|
|
|
|
const video = document.getElementById("video");
|
|
const statusOverlay = getAnonElementWithinVideoByAttribute(video, "anonid", "statusOverlay");
|
|
const statusIcon = getAnonElementWithinVideoByAttribute(video, "anonid", "statusIcon");
|
|
|
|
const testCases = [];
|
|
|
|
testCases.push(() => new Promise(resolve => {
|
|
ok(statusOverlay.hidden, "statusOverlay shoud not present without error");
|
|
ok(!statusOverlay.hasAttribute("error"), "statusOverlay should not in error state");
|
|
isnot(statusIcon.getAttribute("type"), "error", "should not show error icon");
|
|
|
|
resolve();
|
|
}));
|
|
|
|
testCases.push(() => new Promise(resolve => {
|
|
video.src = "invalid-path.ogg";
|
|
video.addEventListener("error", resolve);
|
|
}));
|
|
|
|
testCases.push(() => new Promise(resolve => {
|
|
const errorType = "errorSrcNotSupported";
|
|
|
|
ok(!statusOverlay.hidden, `statusOverlay should show when ${errorType}`);
|
|
is(statusOverlay.getAttribute("error"), errorType, `statusOverlay should have correct error state: ${errorType}`);
|
|
is(statusIcon.getAttribute("type"), "error", `should show error icon when ${errorType}`);
|
|
|
|
resolve();
|
|
}));
|
|
|
|
function executeTestCases(tasks) {
|
|
return tasks.reduce((promise, task) => promise.then(task), Promise.resolve());
|
|
}
|
|
|
|
function startTest() {
|
|
executeTestCases(testCases).then(SimpleTest.finish);
|
|
}
|
|
|
|
function loadevent() {
|
|
SpecialPowers.pushPrefEnv({"set": [["media.cache_size", 40000]]}, startTest);
|
|
}
|
|
|
|
window.addEventListener("load", loadevent);
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|