diff options
Diffstat (limited to 'devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_breakpoint.js')
-rw-r--r-- | devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_breakpoint.js | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_breakpoint.js b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_breakpoint.js new file mode 100644 index 0000000000..925d40b643 --- /dev/null +++ b/devtools/client/aboutdebugging/test/browser/browser_aboutdebugging_devtoolstoolbox_breakpoint.js @@ -0,0 +1,74 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +Services.scriptloader.loadSubScript( + "chrome://mochitests/content/browser/devtools/client/debugger/test/mochitest/shared-head.js", + this +); + +const SCRIPT_FILE = "script_aboutdebugging_devtoolstoolbox_breakpoint.js"; +const TAB_URL = + "https://example.com/browser/devtools/client/aboutdebugging/" + + "test/browser/resources/doc_aboutdebugging_devtoolstoolbox_breakpoint.html"; + +/* import-globals-from helper-collapsibilities.js */ +Services.scriptloader.loadSubScript( + CHROME_URL_ROOT + "helper-collapsibilities.js", + this +); + +/** + * Test breakpoints in about:devtools-toolbox tabs (ie non localTab tab target). + */ +add_task(async function () { + const testTab = await addTab(TAB_URL); + + info("Force all debug target panes to be expanded"); + prepareCollapsibilitiesTest(); + + const { document, tab, window } = await openAboutDebugging(); + await selectThisFirefoxPage(document, window.AboutDebugging.store); + const { devtoolsTab, devtoolsWindow } = await openAboutDevtoolsToolbox( + document, + tab, + window, + TAB_URL + ); + info("Select performance panel"); + const toolbox = getToolbox(devtoolsWindow); + await toolbox.selectTool("jsdebugger"); + + info("Add a breakpoint at line 10 in the test script"); + const debuggerContext = createDebuggerContext(toolbox); + await selectSource(debuggerContext, SCRIPT_FILE); + await addBreakpoint(debuggerContext, SCRIPT_FILE, 10); + + info("Invoke testMethod, expect the script to pause on line 10"); + const onContentTaskDone = ContentTask.spawn( + testTab.linkedBrowser, + {}, + function () { + content.wrappedJSObject.testMethod(); + } + ); + + info("Wait for the debugger to pause"); + await waitForPaused(debuggerContext); + const script = findSource(debuggerContext, SCRIPT_FILE); + assertPausedAtSourceAndLine(debuggerContext, script.id, 10); + + info("Resume"); + await resume(debuggerContext); + + info("Wait for the paused content task to also resolve"); + await onContentTaskDone; + + info("Remove breakpoint"); + await removeBreakpoint(debuggerContext, script.id, 10); + + await closeAboutDevtoolsToolbox(document, devtoolsTab, window); + await removeTab(testTab); + await removeTab(tab); +}); |