Files
sousa-gecko/devtools/client/framework/test/test_browser_toolbox_debugger.js
T
2018-06-01 12:36:09 +02:00

57 lines
1.7 KiB
JavaScript

/* global toolbox, createDebuggerContext, waitForSources, testUrl,
waitForPaused, addBreakpoint, assertPausedLocation, stepIn,
findSource, removeBreakpoint, resume */
info(`START: ${new Error().lineNumber}`);
(async function() {
Services.prefs.clearUserPref("devtools.debugger.tabs");
Services.prefs.clearUserPref("devtools.debugger.pending-selected-location");
info("Waiting for debugger load");
await toolbox.selectTool("jsdebugger");
const dbg = createDebuggerContext(toolbox);
const window = dbg.win;
const document = window.document;
await waitForSources(dbg, testUrl);
// yield waitForSourceCount(dbg, 6);
info("Loaded, selecting the test script to debug");
// First expand the domain
const domain = [...document.querySelectorAll(".tree-node")].find(node => {
return node.textContent.trim() == "mozilla.org";
});
const arrow = domain.querySelector(".arrow");
arrow.click();
const fileName = testUrl.match(/browser-toolbox-test.*\.js/)[0];
let script = [...document.querySelectorAll(".tree-node")].find(node => {
return node.textContent.includes(fileName);
});
script = script.querySelector(".node");
script.click();
const onPaused = waitForPaused(dbg);
await addBreakpoint(dbg, fileName, 2);
await onPaused;
assertPausedLocation(dbg, fileName, 2);
await stepIn(dbg);
assertPausedLocation(dbg, fileName, 3);
// Remove the breakpoint before resuming in order to prevent hitting the breakpoint
// again during test closing.
const source = findSource(dbg, fileName);
await removeBreakpoint(dbg, source.id, 2);
await resume(dbg);
info("Close the browser toolbox");
toolbox.destroy();
})();