mirror of
https://github.com/HeyPuter/firefox.git
synced 2026-11-13 20:14:57 -10:00
85 lines
2.2 KiB
JavaScript
85 lines
2.2 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
* http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
// Tests that these toolbox split console APIs work:
|
|
// * toolbox.useKeyWithSplitConsole()
|
|
// * toolbox.isSplitConsoleFocused
|
|
|
|
let gToolbox = null;
|
|
let panelWin = null;
|
|
|
|
const URL = "data:text/html;charset=utf8,test split console key delegation";
|
|
|
|
add_task(async function () {
|
|
const tab = await addTab(URL);
|
|
gToolbox = await gDevTools.showToolboxForTab(tab, { toolId: "jsdebugger" });
|
|
panelWin = gToolbox.getPanel("jsdebugger").panelWin;
|
|
|
|
await gToolbox.openSplitConsole();
|
|
await testIsSplitConsoleFocused();
|
|
await testUseKeyWithSplitConsole();
|
|
await testUseKeyWithSplitConsoleWrongTool();
|
|
|
|
await cleanup();
|
|
});
|
|
|
|
async function testIsSplitConsoleFocused() {
|
|
await gToolbox.openSplitConsole();
|
|
// The newly opened split console should have focus
|
|
ok(gToolbox.isSplitConsoleFocused(), "Split console is focused");
|
|
panelWin.focus();
|
|
ok(!gToolbox.isSplitConsoleFocused(), "Split console is no longer focused");
|
|
}
|
|
|
|
// A key bound to the selected tool should trigger it's command
|
|
function testUseKeyWithSplitConsole() {
|
|
let commandCalled = false;
|
|
|
|
info("useKeyWithSplitConsole on debugger while debugger is focused");
|
|
gToolbox.useKeyWithSplitConsole(
|
|
"F3",
|
|
() => {
|
|
commandCalled = true;
|
|
},
|
|
"jsdebugger"
|
|
);
|
|
|
|
info("synthesizeKey with the console focused");
|
|
focusConsoleInput();
|
|
synthesizeKeyShortcut("F3", panelWin);
|
|
|
|
ok(commandCalled, "Shortcut key should trigger the command");
|
|
}
|
|
|
|
// A key bound to a *different* tool should not trigger it's command
|
|
function testUseKeyWithSplitConsoleWrongTool() {
|
|
let commandCalled = false;
|
|
|
|
info("useKeyWithSplitConsole on inspector while debugger is focused");
|
|
gToolbox.useKeyWithSplitConsole(
|
|
"F4",
|
|
() => {
|
|
commandCalled = true;
|
|
},
|
|
"inspector"
|
|
);
|
|
|
|
info("synthesizeKey with the console focused");
|
|
focusConsoleInput();
|
|
synthesizeKeyShortcut("F4", panelWin);
|
|
|
|
ok(!commandCalled, "Shortcut key shouldn't trigger the command");
|
|
}
|
|
|
|
async function cleanup() {
|
|
await gToolbox.destroy();
|
|
gBrowser.removeCurrentTab();
|
|
gToolbox = panelWin = null;
|
|
}
|
|
|
|
function focusConsoleInput() {
|
|
gToolbox.getPanel("webconsole").hud.jsterm.focus();
|
|
}
|