gecko/image/test/mochitest/test_bug733553.html
2012-12-10 15:13:42 -06:00

87 lines
2.6 KiB
HTML

<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=733553
-->
<head>
<title>Test for Bug 733553</title>
<script type="application/javascript" src="/MochiKit/MochiKit.js"></script>
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
</head>
<body onload="initializeOnload()">
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=733553">Mozilla Bug 733553</a>
<p id="display"></p>
<pre id="test">
<script type="application/javascript">
SimpleTest.waitForExplicitFinish();
var testIndex = -1;
var testParts = [
[1, "red.png"],
[40, "animated-gif2.gif"],
[1, "red.png"],
[100, "lime100x100.svg"],
[100, "lime100x100.svg"],
[40, "animated-gif2.gif"],
[1, "red.png"],
[80, "damon.jpg"],
[80, "damon.jpg"],
[80, "damon.jpg"],
// An invalid image (from bug 787899) that is further delivered with a
// "special" bad MIME type that indicates that the necko
// multipart/x-mixed-replace parser wasn't able to parse it.
[0, "rillybad.jpg"],
// Bad.jpg is bad such that it sniffs as a JPEG, and therefore doesn't change
// what's been decoded (since the RasterImage isn't deleted), so its width
// needs to be the same as the previous image.
[80, "damon.jpg"],
[80, "bad.jpg"],
[1, "red.png"],
[0, "invalid.jpg"],
[40, "animated-gif2.gif"]
];
// We'll append the part number to this, and tell the informant
const BASE_URL = "bug733553-informant.sjs?";
function initializeOnload() {
var firstimg = document.createElement('img');
firstimg.addEventListener("load", imageLoad, false);
firstimg.addEventListener("error", imageLoad, false);
firstimg.src = "bug733553.sjs";
document.getElementById('content').appendChild(firstimg);
// Really ready for first, but who's counting
readyForNext();
}
function readyForNext() {
var loader = document.getElementById("loader");
loader.src = BASE_URL + ++testIndex;
}
function imageLoad(aEvent) {
var [width, fileName] = testParts[testIndex];
is(aEvent.target.width, width,
"Test " + testIndex + " " + fileName + " width correct");
// Always call readyForNext here, as it's the closest we have to a cleanup
readyForNext();
if (testParts.length == testIndex) {
var firstimg = document.getElementsByTagName('img')[0];
firstimg.removeEventListener("load", imageLoad, false);
firstimg.removeEventListener("error", imageLoad, false);
SimpleTest.finish();
}
}
</script>
</pre>
<div id="content"> <!-- style="display: none" -->
<iframe id="loader"></iframe>
</div>
</body>
</html>