mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
a6e4e3afb3
--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
142 lines
4.4 KiB
JavaScript
142 lines
4.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
/**
|
|
* Tests that the toolbox is raised when the debugger gets paused.
|
|
*/
|
|
|
|
const TAB_URL = EXAMPLE_URL + "doc_recursion-stack.html";
|
|
|
|
let gTab, gDebuggee, gPanel, gDebugger;
|
|
let gNewTab, gFocusedWindow, gToolbox, gToolboxTab;
|
|
|
|
function test() {
|
|
initDebugger(TAB_URL).then(([aTab, aDebuggee, aPanel]) => {
|
|
gTab = aTab;
|
|
gDebuggee = aDebuggee;
|
|
gPanel = aPanel;
|
|
gDebugger = gPanel.panelWin;
|
|
gToolbox = gPanel._toolbox;
|
|
gToolboxTab = gToolbox.doc.getElementById("toolbox-tab-jsdebugger");
|
|
|
|
waitForSourceShown(gPanel, ".html").then(performTest);
|
|
});
|
|
}
|
|
|
|
function performTest() {
|
|
addTab(TAB_URL).then(aTab => {
|
|
isnot(aTab, gTab,
|
|
"The newly added tab is different from the debugger's tab.");
|
|
is(gBrowser.selectedTab, aTab,
|
|
"Debugger's tab is not the selected tab.");
|
|
|
|
gNewTab = aTab;
|
|
gFocusedWindow = window;
|
|
testPause();
|
|
});
|
|
}
|
|
|
|
function focusMainWindow() {
|
|
// Make sure toolbox is not focused.
|
|
window.addEventListener("focus", onFocus, true);
|
|
info("Focusing main window.")
|
|
|
|
// Execute soon to avoid any race conditions between toolbox and main window
|
|
// getting focused.
|
|
executeSoon(() => {
|
|
window.focus();
|
|
});
|
|
}
|
|
|
|
function onFocus() {
|
|
window.removeEventListener("focus", onFocus, true);
|
|
info("Main window focused.")
|
|
|
|
gFocusedWindow = window;
|
|
testPause();
|
|
}
|
|
|
|
function testPause() {
|
|
is(gDebugger.gThreadClient.paused, false,
|
|
"Should be running after starting the test.");
|
|
|
|
is(gFocusedWindow, window,
|
|
"Main window is the top level window before pause.");
|
|
|
|
if (gToolbox.hostType == devtools.Toolbox.HostType.WINDOW) {
|
|
gToolbox._host._window.onfocus = () => {
|
|
gFocusedWindow = gToolbox._host._window;
|
|
};
|
|
}
|
|
|
|
gDebugger.gThreadClient.addOneTimeListener("paused", () => {
|
|
if (gToolbox.hostType == devtools.Toolbox.HostType.WINDOW) {
|
|
is(gFocusedWindow, gToolbox._host._window,
|
|
"Toolbox window is the top level window on pause.");
|
|
} else {
|
|
is(gBrowser.selectedTab, gTab,
|
|
"Debugger's tab got selected.");
|
|
}
|
|
gToolbox.selectTool("webconsole").then(() => {
|
|
ok(gToolboxTab.classList.contains("highlighted"),
|
|
"The highlighted class is present");
|
|
ok(!gToolboxTab.hasAttribute("selected") ||
|
|
gToolboxTab.getAttribute("selected") != "true",
|
|
"The tab is not selected");
|
|
}).then(() => gToolbox.selectTool("jsdebugger")).then(() => {
|
|
ok(gToolboxTab.classList.contains("highlighted"),
|
|
"The highlighted class is present");
|
|
ok(gToolboxTab.hasAttribute("selected") &&
|
|
gToolboxTab.getAttribute("selected") == "true",
|
|
"...and the tab is selected, so the glow will not be present.");
|
|
}).then(testResume);
|
|
});
|
|
|
|
EventUtils.sendMouseEvent({ type: "mousedown" },
|
|
gDebugger.document.getElementById("resume"),
|
|
gDebugger);
|
|
}
|
|
|
|
function testResume() {
|
|
gDebugger.gThreadClient.addOneTimeListener("resumed", () => {
|
|
gToolbox.selectTool("webconsole").then(() => {
|
|
ok(!gToolboxTab.classList.contains("highlighted"),
|
|
"The highlighted class is not present now after the resume");
|
|
ok(!gToolboxTab.hasAttribute("selected") ||
|
|
gToolboxTab.getAttribute("selected") != "true",
|
|
"The tab is not selected");
|
|
}).then(maybeEndTest);
|
|
});
|
|
|
|
EventUtils.sendMouseEvent({ type: "mousedown" },
|
|
gDebugger.document.getElementById("resume"),
|
|
gDebugger);
|
|
}
|
|
|
|
function maybeEndTest() {
|
|
if (gToolbox.hostType == devtools.Toolbox.HostType.BOTTOM) {
|
|
info("Switching to a toolbox window host.");
|
|
gToolbox.switchHost(devtools.Toolbox.HostType.WINDOW).then(focusMainWindow);
|
|
} else {
|
|
info("Switching to main window host.");
|
|
gToolbox.switchHost(devtools.Toolbox.HostType.BOTTOM).then(() => closeDebuggerAndFinish(gPanel));
|
|
}
|
|
}
|
|
|
|
registerCleanupFunction(function() {
|
|
// Revert to the default toolbox host, so that the following tests proceed
|
|
// normally and not inside a non-default host.
|
|
Services.prefs.setCharPref("devtools.toolbox.host", devtools.Toolbox.HostType.BOTTOM);
|
|
|
|
gTab = null;
|
|
gDebuggee = null;
|
|
gPanel = null;
|
|
gDebugger = null;
|
|
|
|
removeTab(gNewTab);
|
|
gNewTab = null;
|
|
gFocusedWindow = null;
|
|
gToolbox = null;
|
|
gToolboxTab = null;
|
|
});
|