Bug 715308 - Part 0: Add tests for image onload/onerror. r=joe

--HG--
extra : rebase_source : 2f1f152975bfa4c7c5fa3ef6d05d7e0c02640f6e
This commit is contained in:
Justin Lebar 2012-01-26 15:54:04 -05:00
parent e9d052483e
commit 96a68be29f
4 changed files with 79 additions and 0 deletions

View File

@ -86,6 +86,9 @@ _TEST_FILES = imgutils.js \
bug671906-iframe.html \
bug671906.sjs \
test_bug671906.html \
test_error_events.html \
error-early.png \
error-late.png \
$(NULL)
# Tests disabled due to intermittent orange

View File

@ -0,0 +1 @@
ERROR

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View File

@ -0,0 +1,75 @@
<!DOCTYPE HTML>
<html>
<!--
https://bugzilla.mozilla.org/show_bug.cgi?id=715308
-->
<head>
<title>Test for Bug 715308 comment 93</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>
<!-- Test for Bug 715308 comment 93:
- For a valid image, onload is fired and onerror is never fired.
- For an image with errors (either early or late in the image data), onerror
is fired, but onload is never fired.
- For any image, either onload or onerror is fired, but never both.
-->
<script type="text/javascript;version=1.8">
"use strict";
SimpleTest.waitForExplicitFinish();
var numCallbacks = 0;
function image_error(name)
{
numCallbacks++;
ok(name == 'error-early' || name == 'error-late', "Got onerror for " + name);
}
function image_load(name)
{
numCallbacks++;
ok(name == 'shaver', "Got onload for " + name);
}
function page_load()
{
ok(numCallbacks == 3, 'Got page load before all onload/onerror callbacks?');
// Spin the event loop a few times to let image_error run if it's going to,
// then finish the test.
SimpleTest.executeSoon(function() {
SimpleTest.executeSoon(function() {
SimpleTest.executeSoon(function() {
SimpleTest.finish();
});
});
});
}
addEventListener('load', page_load);
</script>
<div id="content">
<img src='shaver.png' onerror='image_error("shaver")' onload='image_load("shaver")'>
<img src='error-early.png' onerror='image_error("error-early")' onload='image_load("error-early")'>
<!-- This image has invalid data (hopefully triggering a decode error)
relatively late in the bitstream. Compare to shaver.png with a binary
diff tool. -->
<img src='error-late.png' onerror='image_error("error-late")' onload='image_load("error-late")'>
</div>
</pre>
</body>
</html>