diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /devtools/client/debugger/test/mochitest/browser_dbg-features-breakpoints.js | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'devtools/client/debugger/test/mochitest/browser_dbg-features-breakpoints.js')
-rw-r--r-- | devtools/client/debugger/test/mochitest/browser_dbg-features-breakpoints.js | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/devtools/client/debugger/test/mochitest/browser_dbg-features-breakpoints.js b/devtools/client/debugger/test/mochitest/browser_dbg-features-breakpoints.js new file mode 100644 index 0000000000..0f4ad6959a --- /dev/null +++ b/devtools/client/debugger/test/mochitest/browser_dbg-features-breakpoints.js @@ -0,0 +1,73 @@ +/* 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/>. */ + +"use strict"; + +/** + * Assert that breakpoints and stepping works in various conditions + */ + +const testServer = createVersionizedHttpTestServer( + "examples/sourcemaps-reload-uncompressed" +); +const TEST_URL = testServer.urlFor("index.html"); + +add_task( + async function testSteppingFromOriginalToGeneratedAndAnotherOriginal() { + const dbg = await initDebuggerWithAbsoluteURL( + TEST_URL, + "index.html", + "script.js", + "original.js" + ); + + await selectSource(dbg, "original.js"); + await addBreakpoint(dbg, "original.js", 8); + assertBreakpointSnippet(dbg, 1, "await nonSourceMappedFunction();"); + + info("Test pausing on an original source"); + invokeInTab("foo"); + await waitForPausedInOriginalFileAndToggleMapScopes(dbg, "original.js"); + + assertPausedAtSourceAndLine(dbg, findSource(dbg, "original.js").id, 8); + + info("Then stepping into a generated source"); + await stepIn(dbg); + assertPausedAtSourceAndLine(dbg, findSource(dbg, "script.js").id, 5); + + info("Stepping another time within the same generated source"); + await stepIn(dbg); + assertPausedAtSourceAndLine(dbg, findSource(dbg, "script.js").id, 7); + + info("And finally stepping into another original source"); + await stepIn(dbg); + assertPausedAtSourceAndLine( + dbg, + findSource(dbg, "removed-original.js").id, + 4 + ); + + info("Walk up the stack backward, until we resume execution"); + await stepIn(dbg); + assertPausedAtSourceAndLine( + dbg, + findSource(dbg, "removed-original.js").id, + 5 + ); + + await stepIn(dbg); + assertPausedAtSourceAndLine(dbg, findSource(dbg, "script.js").id, 8); + + await stepIn(dbg); + assertPausedAtSourceAndLine(dbg, findSource(dbg, "original.js").id, 9); + + await stepIn(dbg); + assertPausedAtSourceAndLine(dbg, findSource(dbg, "original.js").id, 10); + + // We can't use the `stepIn` helper as this last step will resume + // and the helper is expecting to pause again + await dbg.actions.stepIn(); + await assertNotPaused(dbg); + } +); |