test_bug415498.xhtml (2951B)
1 <?xml version="1.0"?> 2 <?xml-stylesheet href="chrome://global/skin" type="text/css"?> 3 <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css" 4 type="text/css"?> 5 <!-- 6 https://bugzilla.mozilla.org/show_bug.cgi?id=415498 7 --> 8 <window title="Mozilla Bug 415498" 9 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 10 onload="init()"> 11 12 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> 13 <script src="chrome://mochikit/content/chrome-harness.js"></script> 14 <body xmlns="http://www.w3.org/1999/xhtml"> 15 <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=415498">Mozilla Bug 415498</a> 16 17 <p id="display"></p> 18 19 <pre id="test"> 20 <script class="testbody" type="application/javascript"><![CDATA[ 21 const {BrowserTestUtils} = ChromeUtils.importESModule( 22 "resource://testing-common/BrowserTestUtils.sys.mjs" 23 ); 24 25 /** Test for Bug 415498 */ 26 SimpleTest.waitForExplicitFinish(); 27 28 var gTestsIterator; 29 var gConsole; 30 var gConsoleListener; 31 var gMessages = []; 32 33 function init() { 34 gTestsIterator = testsIterator(); 35 36 gConsole = Cc["@mozilla.org/consoleservice;1"]. 37 getService(Ci.nsIConsoleService); 38 39 gConsoleListener = { 40 observe(aObject) { 41 gMessages.push(aObject); 42 } 43 }; 44 gConsole.registerListener(gConsoleListener); 45 46 nextTest(); 47 } 48 49 function nextTest() { 50 let {done} = gTestsIterator.next(); 51 if (done) { 52 if (gConsole && gConsoleListener) { 53 gConsole.unregisterListener(gConsoleListener); 54 } 55 SimpleTest.finish(); 56 } 57 } 58 59 function* testsIterator() { 60 61 var browser = $("browser"); 62 browser.addEventListener("load", function() { 63 setTimeout(nextTest, 0) 64 }); 65 66 // 1) This document uses addEventListener to register a method throwing an exception 67 var chromeDir = getRootDirectory(window.location.href); 68 BrowserTestUtils.startLoadingURIString(browser, chromeDir + "bug415498-doc1.html"); 69 yield undefined; 70 71 ok(verifyErrorReceived("HierarchyRequestError"), 72 "Error message not reported in event listener callback!"); 73 gMessages = []; 74 75 // 2) This document sets window.onload to register a method throwing an exception 76 var chromeDir = getRootDirectory(window.location.href); 77 BrowserTestUtils.startLoadingURIString(browser, chromeDir + "bug415498-doc2.html"); 78 yield undefined; 79 80 ok(verifyErrorReceived("HierarchyRequestError"), 81 "Error message not reported in window.onload!"); 82 } 83 84 function verifyErrorReceived(errorString) { 85 for (var i = 0; i < gMessages.length; i++) { 86 if (gMessages[i].message.includes(errorString)) 87 return true; 88 } 89 return false; 90 } 91 ]]></script> 92 </pre> 93 </body> 94 95 <browser id="browser" type="content" flex="1" src="about:blank"/> 96 97 </window>