gecko-dev/dom/media/test/test_invalid_reject.html
Jean-Yves Avenard 4387906eae Bug 1302632: P5. Update mochitests. r=gerald
The tests expected that the error code would be MEDIA_ERR_DECODE whenever we fail to open a video. However, MEDIA_ERR_DECODE is to be used only when "An error of some description occurred while decoding the media resource, after the resource was established to be usable."

All those files have errors in their metadata. Which makes the resource unusable to start with.

Similarly, networkState would be set to  NETWORK_NO_SOURCE if the metadata couldn't be read.

MozReview-Commit-ID: KXVJmD3ZQlT

--HG--
extra : rebase_source : 1ec3d7e764d832702e662f0b650363498e0b0761
2016-09-16 11:14:07 +10:00

59 lines
1.6 KiB
HTML

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<title>Test rejection of invalid files</title>
<script type="text/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>
<pre id="test">
<script class="testbody" type="text/javascript">
var manager = new MediaTestManager;
function startTest(test, token) {
var v = document.createElement('video');
manager.started(token);
// Set up event handlers. Seeing any of these is a failure.
function badEvent(type) { return function(e) {
ok(false, test.name + " should not fire '" + type + "' event");
}};
var events = [
'loadeddata', 'load',
'canplay', 'canplaythrough',
'playing'
];
events.forEach( function(e) {
v.addEventListener(e, badEvent(e));
});
// Seeing a decoder error is a success.
v.addEventListener("error", function onerror(e) {
if (v.readyState == v.HAVE_NOTHING) {
is(v.error.code, v.error.MEDIA_ERR_SRC_NOT_SUPPORTED,
"decoder should reject " + test.name);
} else {
is(v.error.code, v.error.MEDIA_ERR_DECODE,
"decoder should reject " + test.name);
}
v.removeEventListener('error', onerror, false);
manager.finished(token);
});
// Now try to load and play the file, which should result in the
// error event handler above being called, terminating the test.
document.body.appendChild(v);
v.src = test.name;
v.play();
}
manager.runTests(gInvalidTests, startTest);
</script>
</pre>
</body>
</html>