browser/devtools/webconsole/test/browser_webconsole_scratchpad_panel_link.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 /* vim: set ts=2 et sw=2 tw=80: */
     2 /* Any copyright is dedicated to the Public Domain.
     3    http://creativecommons.org/publicdomain/zero/1.0/ */
     5 const TEST_URI = "data:text/html;charset=utf8,<p>test Scratchpad panel linking</p>";
     7 let { Task } = Cu.import("resource://gre/modules/Task.jsm", {});
     8 let { Tools } = require("main");
     9 let { isTargetSupported } = Tools.scratchpad;
    11 Tools.scratchpad.isTargetSupported = () => true;
    14 function test()
    15 {
    16   waitForExplicitFinish();
    18   addTab(TEST_URI);
    19   gBrowser.selectedBrowser.addEventListener("load", function onTabLoad() {
    20     gBrowser.selectedBrowser.removeEventListener("load", onTabLoad, true);
    21     info("Opening toolbox with Scratchpad panel");
    23     let target = TargetFactory.forTab(gBrowser.selectedTab);
    24     gDevTools.showToolbox(target, "scratchpad", "window").then(runTests);
    25   }, true);
    26 }
    28 function runTests(aToolbox)
    29 {
    30   Task.spawn(function*() {
    31     let scratchpadPanel = aToolbox.getPanel("scratchpad");
    32     let { scratchpad } = scratchpadPanel;
    33     is(aToolbox.getCurrentPanel(), scratchpadPanel,
    34       "Scratchpad is currently selected panel");
    36     info("Switching to webconsole panel");
    38     let webconsolePanel = yield aToolbox.selectTool("webconsole");
    39     let { hud } = webconsolePanel;
    40     is(aToolbox.getCurrentPanel(), webconsolePanel,
    41       "Webconsole is currently selected panel");
    43     info("console.log()ing from Scratchpad");
    45     scratchpad.setText("console.log('foobar-from-scratchpad')");
    46     scratchpad.run();
    47     let messages = yield waitForMessages({
    48       webconsole: hud,
    49       messages: [{ text: "foobar-from-scratchpad" }]
    50     });
    52     info("Clicking link to switch to and focus Scratchpad");
    54     let [matched] = [...messages[0].matched];
    55     ok(matched, "Found logged message from Scratchpad");
    56     let anchor = matched.querySelector("a.message-location");
    58     aToolbox.on("scratchpad-selected", function selected() {
    59       aToolbox.off("scratchpad-selected", selected);
    61       is(aToolbox.getCurrentPanel(), scratchpadPanel,
    62         "Clicking link switches to Scratchpad panel");
    64       is(Services.ww.activeWindow, aToolbox.frame.ownerGlobal,
    65          "Scratchpad's toolbox is focused");
    67       Tools.scratchpad.isTargetSupported = isTargetSupported;
    68       finish();
    69     });
    71     EventUtils.synthesizeMouse(anchor, 2, 2, {}, hud.iframeWindow);
    72   });
    73 }

mercurial