summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/new/test/mochitest/browser_dbg-navigation.js
blob: 381b6b7fde5b4707b49a7f9c438a674bd2c5253b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/* Any copyright is dedicated to the Public Domain.
 * http://creativecommons.org/publicdomain/zero/1.0/ */

function countSources(dbg) {
  const sources = dbg.selectors.getSources(dbg.getState());
  return sources.size;
}

/**
 * Test navigating
 * navigating while paused will reset the pause state and sources
 */
add_task(function* () {
  const dbg = yield initDebugger("doc-script-switching.html");
  const { selectors: { getSelectedSource, getPause }, getState } = dbg;

  invokeInTab("firstCall");
  yield waitForPaused(dbg);

  yield navigate(dbg, "doc-scripts.html", "simple1.js");
  yield addBreakpoint(dbg, "simple1.js", 4);
  invokeInTab("main");
  yield waitForPaused(dbg);
  assertPausedLocation(dbg, "simple1.js", 4);
  is(countSources(dbg), 4, "4 sources are loaded.");

  yield navigate(dbg, "about:blank");
  yield waitForDispatch(dbg, "NAVIGATE");
  is(countSources(dbg), 0, "0 sources are loaded.");
  ok(!getPause(getState()), "No pause state exists");

  yield navigate(dbg,
    "doc-scripts.html",
    "simple1.js",
    "simple2.js",
    "long.js",
    "scripts.html"
  );

  is(countSources(dbg), 4, "4 sources are loaded.");

  // Test that the current select source persists across reloads
  yield selectSource(dbg, "long.js");
  yield reload(dbg, "long.js");
  ok(getSelectedSource(getState()).get("url").includes("long.js"),
     "Selected source is long.js");
});