<!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>