mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-30 05:35:31 +00:00
88e7ca25dc
--HG-- extra : rebase_source : 2e8ea32540aa53661cb6985bbb55f9dfb4e2a30c
118 lines
3.4 KiB
JavaScript
118 lines
3.4 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
// Tests that the keybindings for opening and closing the inspector work as expected
|
|
// Can probably make this a shared test that tests all of the tools global keybindings
|
|
|
|
function test()
|
|
{
|
|
waitForExplicitFinish();
|
|
|
|
let doc;
|
|
let node;
|
|
let inspector;
|
|
let keysetMap = { };
|
|
|
|
gBrowser.selectedTab = gBrowser.addTab();
|
|
gBrowser.selectedBrowser.addEventListener("load", function onload() {
|
|
gBrowser.selectedBrowser.removeEventListener("load", onload, true);
|
|
doc = content.document;
|
|
node = doc.querySelector("h1");
|
|
waitForFocus(setupKeyBindingsTest);
|
|
}, true);
|
|
|
|
content.location = "data:text/html,<html><head><title>Test for the " +
|
|
"highlighter keybindings</title></head><body>" +
|
|
"<h1>Keybindings!</h1></body></html>";
|
|
|
|
function buildDevtoolsKeysetMap(keyset) {
|
|
[].forEach.call(keyset.querySelectorAll("key"), function(key) {
|
|
|
|
if (!key.getAttribute("key")) {
|
|
return;
|
|
}
|
|
|
|
let modifiers = key.getAttribute("modifiers");
|
|
|
|
keysetMap[key.id.split("_")[1]] = {
|
|
key: key.getAttribute("key"),
|
|
modifiers: modifiers,
|
|
modifierOpt: {
|
|
shiftKey: modifiers.match("shift"),
|
|
ctrlKey: modifiers.match("ctrl"),
|
|
altKey: modifiers.match("alt"),
|
|
metaKey: modifiers.match("meta"),
|
|
accelKey: modifiers.match("accel")
|
|
},
|
|
synthesizeKey: function() {
|
|
EventUtils.synthesizeKey(this.key, this.modifierOpt);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function setupKeyBindingsTest()
|
|
{
|
|
for (let win of gDevToolsBrowser._trackedBrowserWindows) {
|
|
buildDevtoolsKeysetMap(win.document.getElementById("devtoolsKeyset"));
|
|
}
|
|
|
|
gDevTools.once("toolbox-ready", (e, toolbox) => {
|
|
inspectorShouldBeOpenAndHighlighting(toolbox.getCurrentPanel(), toolbox);
|
|
});
|
|
|
|
keysetMap.inspector.synthesizeKey();
|
|
}
|
|
|
|
function inspectorShouldBeOpenAndHighlighting(aInspector, aToolbox)
|
|
{
|
|
is (aToolbox.currentToolId, "inspector", "Correct tool has been loaded");
|
|
|
|
aToolbox.once("picker-started", () => {
|
|
ok(true, "picker-started event received, highlighter started");
|
|
keysetMap.inspector.synthesizeKey();
|
|
|
|
aToolbox.once("picker-stopped", () => {
|
|
ok(true, "picker-stopped event received, highlighter stopped");
|
|
gDevTools.once("select-tool-command", () => {
|
|
webconsoleShouldBeSelected(aToolbox);
|
|
});
|
|
keysetMap.webconsole.synthesizeKey();
|
|
});
|
|
});
|
|
}
|
|
|
|
function webconsoleShouldBeSelected(aToolbox)
|
|
{
|
|
is (aToolbox.currentToolId, "webconsole", "webconsole should be selected.");
|
|
|
|
gDevTools.once("select-tool-command", () => {
|
|
jsdebuggerShouldBeSelected(aToolbox);
|
|
});
|
|
keysetMap.jsdebugger.synthesizeKey();
|
|
}
|
|
|
|
function jsdebuggerShouldBeSelected(aToolbox)
|
|
{
|
|
is (aToolbox.currentToolId, "jsdebugger", "jsdebugger should be selected.");
|
|
|
|
gDevTools.once("select-tool-command", () => {
|
|
netmonitorShouldBeSelected(aToolbox);
|
|
});
|
|
|
|
keysetMap.netmonitor.synthesizeKey();
|
|
}
|
|
|
|
function netmonitorShouldBeSelected(aToolbox, panel)
|
|
{
|
|
is (aToolbox.currentToolId, "netmonitor", "netmonitor should be selected.");
|
|
finishUp();
|
|
}
|
|
|
|
function finishUp() {
|
|
doc = node = inspector = keysetMap = null;
|
|
gBrowser.removeCurrentTab();
|
|
finish();
|
|
}
|
|
}
|