diff options
author | wolfbeast <mcwerewolf@gmail.com> | 2014-05-21 11:38:25 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@gmail.com> | 2014-05-21 11:38:25 +0200 |
commit | d25ba7d760b017b038e5aa6c0a605b4a330eb68d (patch) | |
tree | 16ec27edc7d5f83986f16236d3a36a2682a0f37e /browser/devtools/webconsole/test/browser_console_error_source_click.js | |
parent | a942906574671868daf122284a9c4689e6924f74 (diff) | |
download | palemoon-gre-d25ba7d760b017b038e5aa6c0a605b4a330eb68d.tar.gz |
Recommit working copy to repo with proper line endings.
Diffstat (limited to 'browser/devtools/webconsole/test/browser_console_error_source_click.js')
-rw-r--r-- | browser/devtools/webconsole/test/browser_console_error_source_click.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/browser/devtools/webconsole/test/browser_console_error_source_click.js b/browser/devtools/webconsole/test/browser_console_error_source_click.js new file mode 100644 index 000000000..98fe93dbc --- /dev/null +++ b/browser/devtools/webconsole/test/browser_console_error_source_click.js @@ -0,0 +1,75 @@ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +// Check that JS errors and CSS warnings open view source when their source link +// is clicked in the Browser Console. See bug 877778. + +const TEST_URI = "data:text/html;charset=utf8,<p>hello world from bug 877778 " + + "<button onclick='foobar.explode()' " + + "style='test-color: green-please'>click!</button>"; +function test() +{ + let hud; + + addTab(TEST_URI); + browser.addEventListener("load", function onLoad() { + browser.removeEventListener("load", onLoad, true); + HUDConsoleUI.toggleBrowserConsole().then(browserConsoleOpened); + }, true); + + function browserConsoleOpened(aHud) + { + hud = aHud; + ok(hud, "browser console opened"); + + let button = content.document.querySelector("button"); + ok(button, "button element found"); + + info("generate exception and wait for the message"); + executeSoon(() => { + expectUncaughtException(); + button.click(); + }); + + waitForMessages({ + webconsole: hud, + messages: [ + { + text: "ReferenceError: foobar is not defined", + category: CATEGORY_JS, + severity: SEVERITY_ERROR, + }, + { + text: "Unknown property 'test-color'", + category: CATEGORY_CSS, + severity: SEVERITY_WARNING, + }, + ], + }).then(onMessageFound); + } + + function onMessageFound(results) + { + let viewSource = hud.viewSource; + let viewSourceCalled = false; + hud.viewSource = () => viewSourceCalled = true; + + for (let result of results) { + viewSourceCalled = false; + + let msg = [...results[0].matched][0]; + ok(msg, "message element found for: " + result.text); + let locationNode = msg.querySelector(".webconsole-location"); + ok(locationNode, "message location element found"); + + EventUtils.synthesizeMouse(locationNode, 2, 2, {}, hud.iframeWindow); + + ok(viewSourceCalled, "view source opened"); + } + + hud.viewSource = viewSource; + finishTest(); + } +} |