summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps.js')
-rw-r--r--devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps.js b/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps.js
new file mode 100644
index 000000000..30fd7b70c
--- /dev/null
+++ b/devtools/client/debugger/new/test/mochitest/browser_dbg-sourcemaps.js
@@ -0,0 +1,44 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+// Tests loading sourcemapped sources, setting breakpoints, and
+// stepping in them.
+
+add_task(function* () {
+ const dbg = yield initDebugger("doc-sourcemaps.html");
+ const { selectors: { getBreakpoint, getBreakpoints }, getState } = dbg;
+
+ yield waitForSources(dbg, "entry.js", "output.js", "times2.js", "opts.js");
+ ok(true, "Original sources exist");
+ const entrySrc = findSource(dbg, "entry.js");
+
+ yield selectSource(dbg, entrySrc);
+ ok(dbg.win.cm.getValue().includes("window.keepMeAlive"),
+ "Original source text loaded correctly");
+
+ // Test that breakpoint sliding is not attempted. The breakpoint
+ // should not move anywhere.
+ yield addBreakpoint(dbg, entrySrc, 13);
+ is(getBreakpoints(getState()).size, 1, "One breakpoint exists");
+ ok(getBreakpoint(getState(), { sourceId: entrySrc.id, line: 13 }),
+ "Breakpoint has correct line");
+
+ // Test breaking on a breakpoint
+ yield addBreakpoint(dbg, "entry.js", 15);
+ is(getBreakpoints(getState()).size, 2, "Two breakpoints exist");
+ ok(getBreakpoint(getState(), { sourceId: entrySrc.id, line: 15 }),
+ "Breakpoint has correct line");
+
+ invokeInTab("keepMeAlive");
+ yield waitForPaused(dbg);
+ assertPausedLocation(dbg, entrySrc, 15);
+
+ yield stepIn(dbg);
+ assertPausedLocation(dbg, "times2.js", 2);
+ yield stepOver(dbg);
+ assertPausedLocation(dbg, "times2.js", 3);
+
+ yield stepOut(dbg);
+ yield stepOut(dbg);
+ assertPausedLocation(dbg, "entry.js", 16);
+});