browser/devtools/webconsole/test/browser_webconsole_scratchpad_panel_link.js

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:7138e8d58988
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/ */
4
5 const TEST_URI = "data:text/html;charset=utf8,<p>test Scratchpad panel linking</p>";
6
7 let { Task } = Cu.import("resource://gre/modules/Task.jsm", {});
8 let { Tools } = require("main");
9 let { isTargetSupported } = Tools.scratchpad;
10
11 Tools.scratchpad.isTargetSupported = () => true;
12
13
14 function test()
15 {
16 waitForExplicitFinish();
17
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");
22
23 let target = TargetFactory.forTab(gBrowser.selectedTab);
24 gDevTools.showToolbox(target, "scratchpad", "window").then(runTests);
25 }, true);
26 }
27
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");
35
36 info("Switching to webconsole panel");
37
38 let webconsolePanel = yield aToolbox.selectTool("webconsole");
39 let { hud } = webconsolePanel;
40 is(aToolbox.getCurrentPanel(), webconsolePanel,
41 "Webconsole is currently selected panel");
42
43 info("console.log()ing from Scratchpad");
44
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 });
51
52 info("Clicking link to switch to and focus Scratchpad");
53
54 let [matched] = [...messages[0].matched];
55 ok(matched, "Found logged message from Scratchpad");
56 let anchor = matched.querySelector("a.message-location");
57
58 aToolbox.on("scratchpad-selected", function selected() {
59 aToolbox.off("scratchpad-selected", selected);
60
61 is(aToolbox.getCurrentPanel(), scratchpadPanel,
62 "Clicking link switches to Scratchpad panel");
63
64 is(Services.ww.activeWindow, aToolbox.frame.ownerGlobal,
65 "Scratchpad's toolbox is focused");
66
67 Tools.scratchpad.isTargetSupported = isTargetSupported;
68 finish();
69 });
70
71 EventUtils.synthesizeMouse(anchor, 2, 2, {}, hud.iframeWindow);
72 });
73 }

mercurial