123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
- /* 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
- const TEST_URL = "data:text/html,<html><head><title>Test for the " +
- "highlighter keybindings</title></head><body>" +
- "<h1>Keybindings!</h1></body></html>"
- const {gDevToolsBrowser} = require("devtools/client/framework/devtools-browser");
- function test()
- {
- waitForExplicitFinish();
- let doc;
- let node;
- let inspector;
- let keysetMap = { };
- addTab(TEST_URL).then(function () {
- doc = content.document;
- node = doc.querySelector("h1");
- waitForFocus(setupKeyBindingsTest);
- });
- 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();
- }
- }
|