summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/test/mochitest/browser_dbg_break-unselected.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/debugger/test/mochitest/browser_dbg_break-unselected.js')
-rw-r--r--devtools/client/debugger/test/mochitest/browser_dbg_break-unselected.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg_break-unselected.js b/devtools/client/debugger/test/mochitest/browser_dbg_break-unselected.js
new file mode 100644
index 000000000..b76a7606a
--- /dev/null
+++ b/devtools/client/debugger/test/mochitest/browser_dbg_break-unselected.js
@@ -0,0 +1,48 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Test breaking in code and jumping to the debugger before
+ * the debugger UI has been initialized.
+ */
+
+const TAB_URL = EXAMPLE_URL + "doc_inline-debugger-statement.html";
+
+function test() {
+ Task.spawn(function* () {
+ const tab = yield getTab(TAB_URL);
+ const target = TargetFactory.forTab(tab);
+ const toolbox = yield gDevTools.showToolbox(target, "webconsole");
+
+ is(toolbox.currentToolId, "webconsole", "Console is the current panel");
+
+ toolbox.target.on("thread-paused", Task.async(function* () {
+ // Wait for the toolbox to handle the event and switch tools
+ yield waitForTick();
+
+ is(toolbox.currentToolId, "jsdebugger", "Debugger is the current panel");
+
+ // Wait until it's actually fully loaded
+ yield toolbox.loadTool("jsdebugger");
+
+ const panel = toolbox.getCurrentPanel();
+ const queries = panel.panelWin.require("./content/queries");
+ const getState = panel.panelWin.DebuggerController.getState;
+
+ is(panel.panelWin.gThreadClient.state, "paused",
+ "Thread is still paused");
+
+ yield waitForSourceAndCaret(panel, "debugger-statement.html", 16);
+ is(queries.getSelectedSource(getState()).url, TAB_URL,
+ "Selected source is the current tab url");
+ is(queries.getSelectedSourceOpts(getState()).line, 16,
+ "Line 16 is highlighted in the editor");
+
+ resumeDebuggerThenCloseAndFinish(panel);
+ }));
+
+ callInTab(tab, "runDebuggerStatement");
+ });
+}