mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-01 14:45:29 +00:00
97 lines
2.6 KiB
HTML
97 lines
2.6 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<!--
|
|
https://bugzilla.mozilla.org/show_bug.cgi?id=462957
|
|
-->
|
|
<head>
|
|
<title>Test for Bug 462957</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=462957">Mozilla Bug 462957</a>
|
|
|
|
<p id="display"></p>
|
|
<div id="content" style="display: none">
|
|
|
|
</div>
|
|
<pre id="test">
|
|
<script type="application/javascript">
|
|
|
|
// Test for Bug 462957; HTMLMediaElement.buffered.
|
|
|
|
var manager = new MediaTestManager;
|
|
|
|
function ended(e) {
|
|
var v = e.target;
|
|
|
|
// The whole media should be buffered...
|
|
var b = v.buffered;
|
|
is(b.length, 1, v._name + ": Should be buffered in one range");
|
|
is(b.start(0), 0, v._name + ": First range start should be media start");
|
|
is(b.end(0), v.duration, v._name + ": First range end should be media end");
|
|
|
|
// Ensure INDEX_SIZE_ERR is thrown when we access outside the range
|
|
var caught = false;
|
|
try {
|
|
b.start(-1);
|
|
} catch (e) {
|
|
caught = e.name == "IndexSizeError" && e.code == DOMException.INDEX_SIZE_ERR;
|
|
}
|
|
is(caught, true, v._name + ": Should throw INDEX_SIZE_ERR on under start bounds range");
|
|
|
|
caught = false;
|
|
try {
|
|
b.end(-1);
|
|
} catch (e) {
|
|
caught = e.name == "IndexSizeError" && e.code == DOMException.INDEX_SIZE_ERR;
|
|
}
|
|
is(caught, true, v._name + ": Should throw INDEX_SIZE_ERR on under end bounds range");
|
|
|
|
caught = false;
|
|
try {
|
|
b.start(b.length);
|
|
} catch (e) {
|
|
caught = e.name == "IndexSizeError" && e.code == DOMException.INDEX_SIZE_ERR;
|
|
}
|
|
is(caught, true, v._name + ": Should throw INDEX_SIZE_ERR on over start bounds range");
|
|
|
|
caught = false;
|
|
try {
|
|
b.end(b.length);
|
|
} catch (e) {
|
|
caught = e.name == "IndexSizeError" && e.code == DOMException.INDEX_SIZE_ERR;
|
|
}
|
|
is(caught, true, v._name + ": Should throw INDEX_SIZE_ERR on over end bounds range");
|
|
|
|
v.src = "";
|
|
v.parentNode.removeChild(v);
|
|
manager.finished(v.token);
|
|
}
|
|
|
|
function startTest(test, token) {
|
|
var v = document.createElement('video');
|
|
v.preload = "metadata";
|
|
v.token = token;
|
|
manager.started(token);
|
|
|
|
v.src = test.name;
|
|
v._name = test.name;
|
|
v._test = test;
|
|
v._finished = false;
|
|
v.autoplay = true;
|
|
v.addEventListener("ended", ended, false);
|
|
document.body.appendChild(v);
|
|
}
|
|
|
|
SimpleTest.waitForExplicitFinish();
|
|
SpecialPowers.pushPrefEnv({"set": [["media.cache_size", 40000]]}, beginTest);
|
|
function beginTest() {
|
|
manager.runTests(gSeekTests, startTest);
|
|
}
|
|
</script>
|
|
</pre>
|
|
</body>
|
|
</html>
|