summaryrefslogtreecommitdiffstats
path: root/devtools/client/debugger/test/mochitest/browser_dbg-breakpoints-duplicate-functions.js
blob: bb1fa3d64be2a256d0bcdaf1b2601387f8db6555 (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
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at <http://mozilla.org/MPL/2.0/>. */

// Tests to make sure we do not accidentally slide the breakpoint up to the first
// function with the same name in the file.
// TODO: Likely to remove this test when removing the breakpoint sliding functionality

"use strict";

add_task(async function () {
  const dbg = await initDebugger(
    "doc-duplicate-functions.html",
    "doc-duplicate-functions.html"
  );
  let source = findSource(dbg, "doc-duplicate-functions.html");

  await selectSource(dbg, source);
  await addBreakpoint(dbg, source, 21);

  await reload(dbg, "doc-duplicate-functions.html");

  await waitForState(dbg, state => dbg.selectors.getBreakpointCount() == 1);

  const firstBreakpoint = dbg.selectors.getBreakpointsList()[0];
  is(firstBreakpoint.location.line, 21, "Breakpoint is on line 21");

  // Make sure the breakpoint set on line 19 gets hit
  await invokeInTab("b");
  invokeInTab("func");
  await waitForPaused(dbg);

  source = findSource(dbg, "doc-duplicate-functions.html");
  assertPausedAtSourceAndLine(dbg, source.id, 21);
  await assertBreakpoint(dbg, 21);

  await resume(dbg);
});