mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
91 lines
2.4 KiB
HTML
91 lines
2.4 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=713381
|
|
-->
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Test for Bug 713381</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=713381">Mozilla Bug 713381</a>
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none">
|
|
</div>
|
|
|
|
<p>Received loadeddata event for <span id="result">0</span> <span id="expected"></span>audio elements.</p>
|
|
<pre id="test">
|
|
<script type="application/javascript">
|
|
|
|
/** Test for Bug 713381 **/
|
|
|
|
const num = 500;
|
|
var loadeddata = 0;
|
|
var testName = "?";
|
|
|
|
var result = document.getElementById("result");
|
|
document.getElementById("expected").innerHTML = " of " + num + " ";
|
|
|
|
var finish = function(testNum) {
|
|
return function() {
|
|
ok(true, testName + ": received loadeddata event for instance " + testNum );
|
|
loadeddata++;
|
|
if (loadeddata == num) {
|
|
ok(true, testName + ": should receive loadeddata events for all " + num + " elements.");
|
|
nextTest();
|
|
}
|
|
}
|
|
};
|
|
|
|
var testNum = 0;
|
|
|
|
function nextTest() {
|
|
if (testNum >= gTooManyElementAudioTests.length) {
|
|
SimpleTest.finish();
|
|
return;
|
|
}
|
|
var test = gTooManyElementAudioTests[testNum];
|
|
testNum++;
|
|
|
|
if (!document.createElement("audio").canPlayType(test.type)) {
|
|
setTimeout(nextTest, 0);
|
|
return;
|
|
}
|
|
var name = test.name;
|
|
|
|
loadeddata = 0;
|
|
testName = name;
|
|
|
|
// Load the resource, and play it to ensure it's entirely downloaded.
|
|
// Once it's played through, create a large number of audio elements which
|
|
// are the same resource. These will share data with the other resource, and
|
|
// so be really cheap to create.
|
|
var res = new Audio(name);
|
|
res.addEventListener("ended",
|
|
function() {
|
|
for (var i=0; i<num; ++i) {
|
|
var a = new Audio(name);
|
|
a.addEventListener("loadeddata", finish(i), false);
|
|
}
|
|
}, false);
|
|
res.play();
|
|
|
|
}
|
|
|
|
if (getPlayableAudio(gTooManyElementAudioTests) == null) {
|
|
todo(false, "No types supported");
|
|
} else {
|
|
SimpleTest.waitForExplicitFinish();
|
|
nextTest();
|
|
}
|
|
|
|
setInterval(function() { result.innerHTML = testName + ": " + loadeddata; }, 1000);
|
|
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|