diff --git a/content/html/content/test/test_bug561636.html b/content/html/content/test/test_bug561636.html index 37f29bc5b69..a281ca8e628 100644 --- a/content/html/content/test/test_bug561636.html +++ b/content/html/content/test/test_bug561636.html @@ -40,74 +40,76 @@ https://bugzilla.mozilla.org/show_bug.cgi?id=561636 /** Test for Bug 561636 **/ -var formSubmitted = [ false, false ]; -var invalidHandled = false; - -netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); -var os = Components.classes['@mozilla.org/observer-service;1'] - .getService(Components.interfaces.nsIObserverService); -var observers = os.enumerateObservers("invalidformsubmit"); +SimpleTest.waitForExplicitFinish(); function runTest() { + var formSubmitted = [ false, false ]; + var invalidHandled = false; + + netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); + var os = Components.classes['@mozilla.org/observer-service;1'] + .getService(Components.interfaces.nsIObserverService); + var observers = os.enumerateObservers("invalidformsubmit"); + // The following test should not be done if there is no observer for // "invalidformsubmit" because the form submission will not be canceled in that // case. - netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); - if (observers.hasMoreElements()) { - SimpleTest.waitForExplicitFinish(); - - // Initialize - document.forms[0].addEventListener('submit', function(aEvent) { - aEvent.target.removeEventListener('submit', arguments.callee, false); - formSubmitted[0] = true; - }, false); - - document.forms[1].addEventListener('submit', function(aEvent) { - aEvent.target.removeEventListener('submit', arguments.callee, false); - formSubmitted[1] = true; - }, false); - - document.forms[2].addEventListener('submit', function(aEvent) { - aEvent.target.removeEventListener('submit', arguments.callee, false); - formSubmitted[2] = true; - }, false); - - document.forms[3].addEventListener('submit', function(aEvent) { - aEvent.target.removeEventListener('submit', arguments.callee, false); - formSubmitted[3] = true; - - ok(!formSubmitted[0], "Form 1 should not have been submitted because invalid"); - ok(!formSubmitted[1], "Form 2 should not have been submitted because invalid"); - ok(!formSubmitted[2], "Form 3 should not have been submitted because invalid"); - ok(formSubmitted[3], "Form 4 should have been submitted because valid"); - - // Next test. - document.forms[4].submit(); - }, false); - - document.forms[4].elements[0].addEventListener('invalid', function(aEvent) { - aEvent.target.removeEventListener('invalid', arguments.callee, false); - invalidHandled = true; - }, false); - - document.getElementById('i').addEventListener('load', function(aEvent) { - aEvent.target.removeEventListener('load', arguments.callee, false); - - SimpleTest.executeSoon(function () { - ok(true, "Form 5 should have been submitted because submit() has been used even if invalid"); - ok(!invalidHandled, "Invalid event should not have been sent"); - - SimpleTest.finish(); - }); - }, false); - - document.getElementById('a').click(); - document.getElementById('b').click(); - var c = document.getElementById('c'); - c.focus(); synthesizeKey("VK_RETURN", {type: "keypress"}); - document.getElementById('s2').click(); + if (!observers.hasMoreElements()) { + SimpleTest.finish(); + return; } + + // Initialize + document.forms[0].addEventListener('submit', function(aEvent) { + aEvent.target.removeEventListener('submit', arguments.callee, false); + formSubmitted[0] = true; + }, false); + + document.forms[1].addEventListener('submit', function(aEvent) { + aEvent.target.removeEventListener('submit', arguments.callee, false); + formSubmitted[1] = true; + }, false); + + document.forms[2].addEventListener('submit', function(aEvent) { + aEvent.target.removeEventListener('submit', arguments.callee, false); + formSubmitted[2] = true; + }, false); + + document.forms[3].addEventListener('submit', function(aEvent) { + aEvent.target.removeEventListener('submit', arguments.callee, false); + formSubmitted[3] = true; + + ok(!formSubmitted[0], "Form 1 should not have been submitted because invalid"); + ok(!formSubmitted[1], "Form 2 should not have been submitted because invalid"); + ok(!formSubmitted[2], "Form 3 should not have been submitted because invalid"); + ok(formSubmitted[3], "Form 4 should have been submitted because valid"); + + // Next test. + document.forms[4].submit(); + }, false); + + document.forms[4].elements[0].addEventListener('invalid', function(aEvent) { + aEvent.target.removeEventListener('invalid', arguments.callee, false); + invalidHandled = true; + }, false); + + document.getElementById('i').addEventListener('load', function(aEvent) { + aEvent.target.removeEventListener('load', arguments.callee, false); + + SimpleTest.executeSoon(function () { + ok(true, "Form 5 should have been submitted because submit() has been used even if invalid"); + ok(!invalidHandled, "Invalid event should not have been sent"); + + SimpleTest.finish(); + }); + }, false); + + document.getElementById('a').click(); + document.getElementById('b').click(); + var c = document.getElementById('c'); + c.focus(); synthesizeKey("VK_RETURN", {type: "keypress"}); + document.getElementById('s2').click(); }