tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>