Bug 589502 - Don't use two images in content/base/test/test_bug421602.html to prevent race conditions. r=bz a=tests

Instead, use one image and finish the test if the load or error event happens.
If none of them happen, that means the test failed and it will properly time
out.
This commit is contained in:
Mounir Lamouri 2011-03-09 19:43:02 +01:00
parent 69c0a8afb5
commit 4f4e2b1dc1

View File

@ -22,9 +22,7 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=421602
SimpleTest.waitForExplicitFinish();
var img1loaded = false;
var img2loaded = false;
var img1errored = false;
var img2errored = false;
function gc() {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
@ -36,10 +34,13 @@ function gc() {
// Our test image
function loadTestImage() {
var img1 = new Image();
img1.onload = function() { img1loaded = true; }
img1.onload = function() {
img1loaded = true;
finishTest();
}
img1.onerror = function() {
is(img2errored, false, "Image 2 should not error before image 1");
img1errored = true;
finishTest();
}
img1.src = window.location.href + "?image1=true";
}
@ -48,17 +49,9 @@ loadTestImage();
// Probably overkill to gc() more than once, but let's be safe
gc(); gc(); gc();
// And now our "wrap the test up" image.
var img2 = new Image();
img2.onload = function() { img2loaded = true; }
img2.onerror = function() { img2errored = true; finishTest(); }
img2.src = window.location.href + "?image2=true";
function finishTest() {
is(img1errored, true, "Image 1 should error");
is(img2errored, true, "Image 2 should error");
is(img1loaded, false, "Image 1 should not load");
is(img2loaded, false, "Image 2 should not load");
SimpleTest.finish();
}
</script>