browser/devtools/webconsole/test/browser_console_error_source_click.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 /*
     2  * Any copyright is dedicated to the Public Domain.
     3  * http://creativecommons.org/publicdomain/zero/1.0/
     4  */
     6 // Check that JS errors and CSS warnings open view source when their source link
     7 // is clicked in the Browser Console. See bug 877778.
     9 const TEST_URI = "data:text/html;charset=utf8,<p>hello world from bug 877778 " +
    10                  "<button onclick='foobar.explode()' " +
    11                  "style='test-color: green-please'>click!</button>";
    12 function test()
    13 {
    14   let hud;
    16   addTab(TEST_URI);
    17   browser.addEventListener("load", function onLoad() {
    18     browser.removeEventListener("load", onLoad, true);
    19     HUDService.toggleBrowserConsole().then(browserConsoleOpened);
    20   }, true);
    22   function browserConsoleOpened(aHud)
    23   {
    24     hud = aHud;
    25     ok(hud, "browser console opened");
    27     let button = content.document.querySelector("button");
    28     ok(button, "button element found");
    30     info("generate exception and wait for the message");
    31     executeSoon(() => {
    32       expectUncaughtException();
    33       button.click();
    34     });
    36     waitForMessages({
    37       webconsole: hud,
    38       messages: [
    39         {
    40           text: "ReferenceError: foobar is not defined",
    41           category: CATEGORY_JS,
    42           severity: SEVERITY_ERROR,
    43         },
    44         {
    45           text: "Unknown property 'test-color'",
    46           category: CATEGORY_CSS,
    47           severity: SEVERITY_WARNING,
    48         },
    49       ],
    50     }).then(onMessageFound);
    51   }
    53   function onMessageFound(results)
    54   {
    55     let viewSource = hud.viewSource;
    56     let viewSourceCalled = false;
    57     hud.viewSource = () => viewSourceCalled = true;
    59     for (let result of results) {
    60       viewSourceCalled = false;
    62       let msg = [...results[0].matched][0];
    63       ok(msg, "message element found for: " + result.text);
    64       let locationNode = msg.querySelector(".message-location");
    65       ok(locationNode, "message location element found");
    67       EventUtils.synthesizeMouse(locationNode, 2, 2, {}, hud.iframeWindow);
    69       ok(viewSourceCalled, "view source opened");
    70     }
    72     hud.viewSource = viewSource;
    73     finishTest();
    74   }
    75 }

mercurial