gecko/browser/devtools/debugger/test/browser_dbg_step-out.js
Victor Porof a6e4e3afb3 Bug 876277 - Cleanup remaining debugger tests, r=past
--HG--
rename : browser/devtools/debugger/test/browser_dbg_createChrome.js => browser/devtools/debugger/test/browser_dbg_chrome-create.js
rename : browser/devtools/debugger/test/browser_dbg_cmd_blackbox.js => browser/devtools/debugger/test/browser_dbg_cmd-blackbox.js
rename : browser/devtools/debugger/test/browser_dbg_cmd_break.js => browser/devtools/debugger/test/browser_dbg_cmd-break.js
rename : browser/devtools/debugger/test/browser_dbg_cmd.js => browser/devtools/debugger/test/browser_dbg_cmd-dbg.js
rename : browser/devtools/debugger/test/browser_dbg_debuggerstatement.js => browser/devtools/debugger/test/browser_dbg_debugger-statement.js
rename : browser/devtools/debugger/test/browser_dbg_bug731394_editor-contextmenu.js => browser/devtools/debugger/test/browser_dbg_editor-contextmenu.js
rename : browser/devtools/debugger/test/browser_dbg_displayName.js => browser/devtools/debugger/test/browser_dbg_function-display-name.js
rename : browser/devtools/debugger/test/browser_dbg_globalactor-01.js => browser/devtools/debugger/test/browser_dbg_globalactor.js
rename : browser/devtools/debugger/test/browser_dbg_pane-collapse.js => browser/devtools/debugger/test/browser_dbg_instruments-pane-collapse.js
rename : browser/devtools/debugger/test/browser_dbg_nav-01.js => browser/devtools/debugger/test/browser_dbg_navigation.js
rename : browser/devtools/debugger/test/browser_dbg_bug868163_highight_on_pause.js => browser/devtools/debugger/test/browser_dbg_on-pause-highlight.js
rename : browser/devtools/debugger/test/browser_dbg_bug883220_raise_on_pause.js => browser/devtools/debugger/test/browser_dbg_on-pause-raise.js
rename : browser/devtools/debugger/test/browser_dbg_panesize-inner.js => browser/devtools/debugger/test/browser_dbg_panel-size.js
rename : browser/devtools/debugger/test/browser_dbg_pause-exceptions.js => browser/devtools/debugger/test/browser_dbg_pause-exceptions-01.js
rename : browser/devtools/debugger/test/browser_dbg_pause-exceptions-reload.js => browser/devtools/debugger/test/browser_dbg_pause-exceptions-02.js
rename : browser/devtools/debugger/test/browser_dbg_reload-preferred-script.js => browser/devtools/debugger/test/browser_dbg_reload-preferred-script-01.js
rename : browser/devtools/debugger/test/browser_dbg_bug727429_watch-expressions-01.js => browser/devtools/debugger/test/browser_dbg_watch-expressions-01.js
rename : browser/devtools/debugger/test/browser_dbg_bug727429_watch-expressions-02.js => browser/devtools/debugger/test/browser_dbg_watch-expressions-02.js
2013-09-13 16:23:19 +03:00

86 lines
2.3 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
http://creativecommons.org/publicdomain/zero/1.0/ */
/**
* Make sure that stepping out of a function displays the right return value.
*/
const TAB_URL = EXAMPLE_URL + "doc_step-out.html";
let gTab, gDebuggee, gPanel, gDebugger;
let gVars;
function test() {
initDebugger(TAB_URL).then(([aTab, aDebuggee, aPanel]) => {
gTab = aTab;
gDebuggee = aDebuggee;
gPanel = aPanel;
gDebugger = gPanel.panelWin;
gVars = gDebugger.DebuggerView.Variables;
testNormalReturn();
});
}
function testNormalReturn() {
waitForSourceAndCaretAndScopes(gPanel, ".html", 17).then(() => {
waitForCaretAndScopes(gPanel, 19).then(() => {
let innerScope = gVars.getScopeAtIndex(0);
let returnVar = innerScope.get("<return>");
is(returnVar.name, "<return>",
"Should have the right property name for the returned value.");
is(returnVar.value, 10,
"Should have the right property value for the returned value.");
resumeDebuggee().then(() => testReturnWithException());
});
EventUtils.sendMouseEvent({ type: "mousedown" },
gDebugger.document.getElementById("step-out"),
gDebugger);
});
EventUtils.sendMouseEvent({ type: "click" },
gDebuggee.document.getElementById("return"),
gDebuggee);
}
function testReturnWithException() {
waitForCaretAndScopes(gPanel, 24).then(() => {
waitForCaretAndScopes(gPanel, 27).then(() => {
let innerScope = gVars.getScopeAtIndex(0);
let exceptionVar = innerScope.get("<exception>");
is(exceptionVar.name, "<exception>",
"Should have the right property name for the returned value.");
is(exceptionVar.value, "boom",
"Should have the right property value for the returned value.");
resumeDebuggee().then(() => closeDebuggerAndFinish(gPanel));
});
EventUtils.sendMouseEvent({ type: "mousedown" },
gDebugger.document.getElementById("step-out"),
gDebugger);
});
EventUtils.sendMouseEvent({ type: "click" },
gDebuggee.document.getElementById("throw"),
gDebuggee);
}
function resumeDebuggee() {
let deferred = promise.defer();
gDebugger.gThreadClient.resume(deferred.resolve);
return deferred.promise;
}
registerCleanupFunction(function() {
gTab = null;
gDebuggee = null;
gPanel = null;
gDebugger = null;
gVars = null;
});