mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-12 14:37:50 +00:00
42ceb02f64
--HG-- rename : browser/themes/linux/devtools/blackBoxMessageEye.png => browser/themes/linux/devtools/debugger-blackboxMessageEye.png rename : browser/themes/osx/devtools/blackBoxMessageEye.png => browser/themes/osx/devtools/debugger-blackboxMessageEye.png rename : browser/themes/windows/devtools/blackBoxMessageEye.png => browser/themes/windows/devtools/debugger-blackboxMessageEye.png
71 lines
2.4 KiB
JavaScript
71 lines
2.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
/**
|
|
* Test if the breakpoints toggle button works as advertised when there are
|
|
* some breakpoints already disabled.
|
|
*/
|
|
|
|
const TAB_URL = EXAMPLE_URL + "doc_script-switching-01.html";
|
|
|
|
function test() {
|
|
let gTab, gDebuggee, gPanel, gDebugger;
|
|
let gSources, gBreakpoints;
|
|
|
|
initDebugger(TAB_URL).then(([aTab, aDebuggee, aPanel]) => {
|
|
gTab = aTab;
|
|
gDebuggee = aDebuggee;
|
|
gPanel = aPanel;
|
|
gDebugger = gPanel.panelWin;
|
|
gSources = gDebugger.DebuggerView.Sources;
|
|
gBreakpoints = gDebugger.DebuggerController.Breakpoints;
|
|
|
|
waitForSourceShown(gPanel, "-01.js")
|
|
.then(addBreakpoints)
|
|
.then(disableSomeBreakpoints)
|
|
.then(testToggleBreakpoints)
|
|
.then(testEnableBreakpoints)
|
|
.then(() => ensureThreadClientState(gPanel, "resumed"))
|
|
.then(() => closeDebuggerAndFinish(gPanel))
|
|
.then(null, aError => {
|
|
ok(false, "Got an error: " + aError.message + "\n" + aError.stack);
|
|
});
|
|
});
|
|
|
|
function addBreakpoints() {
|
|
return promise.resolve(null)
|
|
.then(() => gPanel.addBreakpoint({ url: gSources.values[0], line: 5 }))
|
|
.then(() => gPanel.addBreakpoint({ url: gSources.values[1], line: 6 }))
|
|
.then(() => gPanel.addBreakpoint({ url: gSources.values[1], line: 7 }))
|
|
.then(() => ensureThreadClientState(gPanel, "resumed"));
|
|
}
|
|
|
|
function disableSomeBreakpoints() {
|
|
return promise.all([
|
|
gSources.disableBreakpoint({ url: gSources.values[0], line: 5 }),
|
|
gSources.disableBreakpoint({ url: gSources.values[1], line: 6 })
|
|
]);
|
|
}
|
|
|
|
function testToggleBreakpoints() {
|
|
let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.BREAKPOINT_REMOVED, 1);
|
|
gSources.toggleBreakpoints();
|
|
return finished.then(() => checkBreakpointsDisabled(true));
|
|
}
|
|
|
|
function testEnableBreakpoints() {
|
|
let finished = waitForDebuggerEvents(gPanel, gDebugger.EVENTS.BREAKPOINT_ADDED, 3);
|
|
gSources.toggleBreakpoints();
|
|
return finished.then(() => checkBreakpointsDisabled(false));
|
|
}
|
|
|
|
function checkBreakpointsDisabled(aState, aTotal = 3) {
|
|
let breakpoints = gSources.getAllBreakpoints();
|
|
|
|
is(breakpoints.length, aTotal,
|
|
"Breakpoints should still be set.");
|
|
is(breakpoints.filter(e => e.attachment.disabled == aState).length, aTotal,
|
|
"Breakpoints should be " + (aState ? "disabled" : "enabled") + ".");
|
|
}
|
|
}
|