<?xml version="1.0"?> <?xml-stylesheet href="chrome://global/skin" type="text/css"?> <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" type="text/css"?> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=415498 --> <window title="Mozilla Bug 415498" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="init()"> <script type="application/javascript" src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> <script type="application/javascript" src="chrome://mochikit/content/chrome-harness.js"></script> <body xmlns="http://www.w3.org/1999/xhtml"> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=415498">Mozilla Bug 415498</a> <p id="display"></p> <pre id="test"> <script class="testbody" type="application/javascript"><![CDATA[ /** Test for Bug 415498 **/ if (Cc === undefined) { var Cc = Components.classes; var Ci = Components.interfaces; } var Cr = Components.results; SimpleTest.waitForExplicitFinish(); var gTestsIterator; var gConsole; var gConsoleListener; var gMessages = []; function init() { gTestsIterator = testsIterator(); gConsole = Cc["@mozilla.org/consoleservice;1"]. getService(Ci.nsIConsoleService); gConsoleListener = { observe: function(aObject) { gMessages.push(aObject); } }; gConsole.registerListener(gConsoleListener); nextTest(); } function nextTest() { try { gTestsIterator.next(); } catch (err) { ok(err instanceof StopIteration, "Some other exception was thrown than what we expected!"); if (gConsole && gConsoleListener) { gConsole.unregisterListener(gConsoleListener); } SimpleTest.finish(); } } function testsIterator() { var browser = $("browser"); browser.addEventListener("load", function() { setTimeout(nextTest, 0) }, false); // 1) This document uses addEventListener to register a method throwing an exception var chromeDir = getRootDirectory(window.location.href); browser.loadURI(chromeDir + "bug415498-doc1.html"); yield undefined; ok(verifyErrorReceived("HierarchyRequestError"), "Error message not reported in event listener callback!"); gMessages = []; // 2) This document sets window.onload to register a method throwing an exception var chromeDir = getRootDirectory(window.location.href); browser.loadURI(chromeDir + "bug415498-doc2.html"); yield undefined; ok(verifyErrorReceived("HierarchyRequestError"), "Error message not reported in window.onload!"); } function verifyErrorReceived(errorString) { for (var i = 0; i < gMessages.length; i++) { if (gMessages[i].message.indexOf(errorString) != -1) return true; } return false; } ]]></script> </pre> </body> <browser id="browser" type="content" flex="1" src="about:blank"/> </window>