mirror of
https://github.com/roytam1/UXP.git
synced 2026-06-10 10:28:34 +00:00
226 lines
5.9 KiB
JavaScript
226 lines
5.9 KiB
JavaScript
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
|
|
/* vim: set ft=javascript ts=2 et sw=2 tw=80: */
|
|
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
/**
|
|
* Tests that the break commands works as they should.
|
|
*/
|
|
|
|
const TAB_URL = EXAMPLE_URL + "doc_cmd-break.html";
|
|
var TAB_URL_ACTOR;
|
|
|
|
function test() {
|
|
let gPanel, gDebugger, gThreadClient, gSources;
|
|
let gLineNumber;
|
|
|
|
let expectedActorObj = {
|
|
value: null,
|
|
message: ""
|
|
};
|
|
|
|
helpers.addTabWithToolbar(TAB_URL, aOptions => {
|
|
return Task.spawn(function* () {
|
|
yield helpers.audit(aOptions, [{
|
|
setup: "break",
|
|
check: {
|
|
input: "break",
|
|
hints: " add line",
|
|
markup: "IIIII",
|
|
status: "ERROR",
|
|
}
|
|
}]);
|
|
|
|
yield helpers.audit(aOptions, [{
|
|
setup: "break add",
|
|
check: {
|
|
input: "break add",
|
|
hints: " line",
|
|
markup: "IIIIIVIII",
|
|
status: "ERROR"
|
|
}
|
|
}]);
|
|
|
|
yield helpers.audit(aOptions, [{
|
|
setup: "break add line",
|
|
check: {
|
|
input: "break add line",
|
|
hints: " <file> <line>",
|
|
markup: "VVVVVVVVVVVVVV",
|
|
status: "ERROR"
|
|
}
|
|
}]);
|
|
|
|
yield helpers.audit(aOptions, [{
|
|
name: "open toolbox",
|
|
setup: Task.async(function* () {
|
|
let [aTab, aDebuggee, aPanel] = yield initDebugger(gBrowser.selectedTab);
|
|
|
|
// Spin the event loop before causing the debuggee to pause, to allow this
|
|
// function to return first.
|
|
executeSoon(() => aDebuggee.firstCall());
|
|
|
|
yield waitForSourceAndCaretAndScopes(aPanel, ".html", 1);
|
|
|
|
gPanel = aPanel;
|
|
gDebugger = gPanel.panelWin;
|
|
gThreadClient = gPanel.panelWin.gThreadClient;
|
|
gLineNumber = yield ContentTask.spawn(aOptions.browser, {}, function* () {
|
|
return "" + content.wrappedJSObject.gLineNumber;
|
|
});
|
|
gSources = gDebugger.DebuggerView.Sources;
|
|
|
|
expectedActorObj.value = getSourceActor(gSources, TAB_URL);
|
|
}),
|
|
post: function () {
|
|
ok(gThreadClient, "Debugger client exists.");
|
|
is(gLineNumber, 14, "gLineNumber is correct.");
|
|
},
|
|
}]);
|
|
|
|
yield helpers.audit(aOptions, [{
|
|
name: "break add line .../doc_cmd-break.html 14",
|
|
setup: function () {
|
|
// We have to setup in a function to allow gLineNumber to be initialized.
|
|
let line = "break add line " + TAB_URL + " " + gLineNumber;
|
|
return helpers.setInput(aOptions, line);
|
|
},
|
|
check: {
|
|
hints: "",
|
|
status: "VALID",
|
|
message: "",
|
|
args: {
|
|
file: expectedActorObj,
|
|
line: { value: 14 }
|
|
}
|
|
},
|
|
exec: {
|
|
output: "Added breakpoint"
|
|
}
|
|
}]);
|
|
|
|
yield helpers.audit(aOptions, [{
|
|
setup: "break add line " + TAB_URL + " 17",
|
|
check: {
|
|
hints: "",
|
|
status: "VALID",
|
|
message: "",
|
|
args: {
|
|
file: expectedActorObj,
|
|
line: { value: 17 }
|
|
}
|
|
},
|
|
exec: {
|
|
output: "Added breakpoint"
|
|
}
|
|
}]);
|
|
|
|
yield helpers.audit(aOptions, [{
|
|
setup: "break list",
|
|
check: {
|
|
input: "break list",
|
|
hints: "",
|
|
markup: "VVVVVVVVVV",
|
|
status: "VALID"
|
|
},
|
|
exec: {
|
|
output: [
|
|
/Source/, /Remove/,
|
|
/doc_cmd-break\.html:14/,
|
|
/doc_cmd-break\.html:17/
|
|
]
|
|
}
|
|
}]);
|
|
|
|
yield helpers.audit(aOptions, [{
|
|
name: "cleanup",
|
|
setup: function () {
|
|
let deferred = promise.defer();
|
|
gThreadClient.resume(deferred.resolve);
|
|
return deferred.promise;
|
|
}
|
|
}]);
|
|
|
|
yield helpers.audit(aOptions, [{
|
|
setup: "break del 14",
|
|
check: {
|
|
input: "break del 14",
|
|
hints: " -> doc_cmd-break.html:14",
|
|
markup: "VVVVVVVVVVII",
|
|
status: "ERROR",
|
|
args: {
|
|
breakpoint: {
|
|
status: "INCOMPLETE",
|
|
message: "Value required for \u2018breakpoint\u2019."
|
|
}
|
|
}
|
|
}
|
|
}]);
|
|
|
|
yield helpers.audit(aOptions, [{
|
|
setup: "break del doc_cmd-break.html:14",
|
|
check: {
|
|
input: "break del doc_cmd-break.html:14",
|
|
hints: "",
|
|
markup: "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
|
|
status: "VALID",
|
|
args: {
|
|
breakpoint: { arg: " doc_cmd-break.html:14" },
|
|
}
|
|
},
|
|
exec: {
|
|
output: "Breakpoint removed"
|
|
}
|
|
}]);
|
|
|
|
yield helpers.audit(aOptions, [{
|
|
setup: "break list",
|
|
check: {
|
|
input: "break list",
|
|
hints: "",
|
|
markup: "VVVVVVVVVV",
|
|
status: "VALID"
|
|
},
|
|
exec: {
|
|
output: [
|
|
/Source/, /Remove/,
|
|
/doc_cmd-break\.html:17/
|
|
]
|
|
}
|
|
}]);
|
|
|
|
yield helpers.audit(aOptions, [{
|
|
setup: "break del doc_cmd-break.html:17",
|
|
check: {
|
|
input: "break del doc_cmd-break.html:17",
|
|
hints: "",
|
|
markup: "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV",
|
|
status: "VALID",
|
|
args: {
|
|
breakpoint: { arg: " doc_cmd-break.html:17" },
|
|
}
|
|
},
|
|
exec: {
|
|
output: "Breakpoint removed"
|
|
}
|
|
}]);
|
|
|
|
yield helpers.audit(aOptions, [{
|
|
setup: "break list",
|
|
check: {
|
|
input: "break list",
|
|
hints: "",
|
|
markup: "VVVVVVVVVV",
|
|
status: "VALID"
|
|
},
|
|
exec: {
|
|
output: "No breakpoints set"
|
|
},
|
|
post: function () {
|
|
return teardown(gPanel, { noTabRemoval: true });
|
|
}
|
|
}]);
|
|
});
|
|
}).then(finish);
|
|
}
|