diff options
Diffstat (limited to 'dom/media/test/test_error_on_404.html')
-rw-r--r-- | dom/media/test/test_error_on_404.html | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/dom/media/test/test_error_on_404.html b/dom/media/test/test_error_on_404.html new file mode 100644 index 000000000..e49f03e22 --- /dev/null +++ b/dom/media/test/test_error_on_404.html @@ -0,0 +1,84 @@ +<!DOCTYPE HTML> +<html> +<!-- +https://bugzilla.mozilla.org/show_bug.cgi?id=476731 +--> +<head> + <title>Test for Bug 476731</title> + <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> + <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> + <script type="text/javascript" src="manifest.js"></script> +</head> +<body> +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=476731">Mozilla Bug </a> +<p id="display"></p> +<div id="content" style="display: none"> +</div> +<pre id="test"> +<script type="application/javascript"> +/** Test for Bug 476731 **/ + +var videos = []; + +function FinishedLoads() { + if (videos.length == 0) + return false; + for (var i=0; i<videos.length; ++i) { + if (videos[i]._loadedData) { + // A video loadeddata, it should have 404'd. Signal the end of the test + // so the error will be reported. + return true; + } + if (!videos[i]._loadError) { + return false; + } + } + return true; +} + +function loadError(evt) { + var v = evt.target; + is(v._loadError, false, "Shouldn't receive multiple error events for " + v.src); + v._loadError = true; + is(v._loadStart, true, "Receive loadstart for " + v.src); + is(v._loadedData, false, "Shouldn't receive loadeddata for " + v.src); + if (FinishedLoads(videos)) + SimpleTest.finish(); +} + +function loadedData(evt) { + evt.target._loadedData = true; +} + +function loadStart(evt) { + evt.target._loadStart = true; +} + +// Create all video objects. +for (var i=0; i<g404Tests.length; ++i) { + var v = document.createElement("video"); + v.preload = "metadata"; + var test = g404Tests[i]; + if (!v.canPlayType(test.type)) { + continue; + } + v.src = test.name; + v._loadedData = false; + v._loadStart = false; + v._loadError = false; + v.addEventListener("error", loadError, false); + v.addEventListener("loadstart", loadStart, false); + v.addEventListener("loadeddata", loadedData, false); + document.body.appendChild(v); // Will start load. + videos.push(v); +} + +if (videos.length == 0) { + todo(false, "No types supported"); +} else { + SimpleTest.waitForExplicitFinish(); +} +</script> +</pre> +</body> +</html> |