зеркало из https://github.com/mozilla/gecko-dev.git
119 строки
3.0 KiB
HTML
119 строки
3.0 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=479711
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 479711</title>
|
|
<script type="application/javascript" src="/MochiKit/packed.js"></script>
|
|
<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>
|
|
<script>
|
|
|
|
var gRegisteredElements = [];
|
|
var gLog = false;
|
|
var testWindows = [];
|
|
|
|
function log(msg) {
|
|
if (gLog) {
|
|
document.getElementById('log').innerHTML += "<p>"+msg+"</p>";
|
|
dump(msg + "\n");
|
|
}
|
|
}
|
|
|
|
function register(v) {
|
|
gRegisteredElements.push(v);
|
|
}
|
|
|
|
function loaded() {
|
|
log("onload fired!");
|
|
|
|
for (var i = 0; i < gRegisteredElements.length; ++i) {
|
|
var v = gRegisteredElements[i];
|
|
ok(v.readyState >= v.HAVE_CURRENT_DATA,
|
|
v._name + ":" + v.id + " is not ready before onload fired (" + v.readyState + ")");
|
|
}
|
|
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
for (i=0; i<testWindows.length; ++i) {
|
|
testWindows[i].close();
|
|
}
|
|
|
|
mediaTestCleanup();
|
|
|
|
SimpleTest.finish();
|
|
}
|
|
|
|
addLoadEvent(loaded);
|
|
|
|
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=479711">Mozilla Bug 479711</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none">
|
|
|
|
</div>
|
|
|
|
|
|
<div id="log" style="font-size: small;"></div>
|
|
<pre id="test">
|
|
<script type="application/javascript">
|
|
|
|
/** Test for Bug 479711 **/
|
|
|
|
function createVideo(name, type, id) {
|
|
var v = document.createElement("video");
|
|
v.src = name;
|
|
v._name = name;
|
|
v.id = id;
|
|
register(v);
|
|
return v;
|
|
}
|
|
|
|
var test = getPlayableVideo(gSmallTests);
|
|
|
|
// Straightforward add, causing a load.
|
|
var v = createVideo(test.name, test.type, "1");
|
|
document.body.appendChild(v);
|
|
|
|
// Load, add, then remove.
|
|
v = createVideo(test.name, test.type, "1");
|
|
v.load();
|
|
document.body.appendChild(v);
|
|
v.parentNode.removeChild(v);
|
|
|
|
// Load and add.
|
|
v = createVideo(test.name, test.type, "2");
|
|
v.load();
|
|
document.body.appendChild(v);
|
|
|
|
// Load outside of doc.
|
|
v = createVideo(test.name, test.type, "3");
|
|
v.load();
|
|
|
|
// Load and move to another document.
|
|
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
|
|
v = createVideo(test.name, test.type, "4");
|
|
v.load(); // load started while in this document, this doc's load will block until
|
|
// the video's finished loading (in the other document).
|
|
// Opening a new window to do this is a bit annoying, but if we use an iframe here,
|
|
// delaying of the iframe's load event might interfere with the firing of our load event
|
|
// in some confusing way. So it's simpler just to open another window.
|
|
var w = window.open("", "testWindow"+i, "width=400,height=400");
|
|
w.document.body.appendChild(v);
|
|
testWindows.push(w);
|
|
|
|
if (gRegisteredElements.length > 0) {
|
|
SimpleTest.waitForExplicitFinish();
|
|
} else {
|
|
todo(false, "No types supported");
|
|
}
|
|
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|