123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
- /* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
- "use strict";
- // Test that when the toolbox is displayed in a bottom host, that host can be
- // minimized to just the tabbar height, and maximized again.
- // Also test that while minimized, switching to a tool, clicking on the
- // settings, or clicking on the selected tool's tab maximizes the toolbox again.
- // Finally test that the minimize button doesn't exist in other host types.
- const URL = "data:text/html;charset=utf8,test page";
- const {Toolbox} = require("devtools/client/framework/toolbox");
- add_task(function* () {
- info("Create a test tab and open the toolbox");
- let tab = yield addTab(URL);
- let target = TargetFactory.forTab(tab);
- let toolbox = yield gDevTools.showToolbox(target, "webconsole");
- let button = toolbox.doc.querySelector("#toolbox-dock-bottom-minimize");
- ok(button, "The minimize button exists in the default bottom host");
- info("Try to minimize the toolbox");
- yield minimize(toolbox);
- ok(parseInt(toolbox._host.frame.style.marginBottom, 10) < 0,
- "The toolbox host has been hidden away with a negative-margin");
- info("Try to maximize again the toolbox");
- yield maximize(toolbox);
- ok(parseInt(toolbox._host.frame.style.marginBottom, 10) == 0,
- "The toolbox host is shown again");
- info("Try to minimize again using the keyboard shortcut");
- yield minimizeWithShortcut(toolbox);
- ok(parseInt(toolbox._host.frame.style.marginBottom, 10) < 0,
- "The toolbox host has been hidden away with a negative-margin");
- info("Try to maximize again using the keyboard shortcut");
- yield maximizeWithShortcut(toolbox);
- ok(parseInt(toolbox._host.frame.style.marginBottom, 10) == 0,
- "The toolbox host is shown again");
- info("Minimize again and switch to another tool");
- yield minimize(toolbox);
- let onMaximized = toolbox._host.once("maximized");
- yield toolbox.selectTool("inspector");
- yield onMaximized;
- info("Minimize again and click on the tab of the current tool");
- yield minimize(toolbox);
- onMaximized = toolbox._host.once("maximized");
- let tabButton = toolbox.doc.querySelector("#toolbox-tab-inspector");
- EventUtils.synthesizeMouseAtCenter(tabButton, {}, toolbox.win);
- yield onMaximized;
- info("Minimize again and click on the settings tab");
- yield minimize(toolbox);
- onMaximized = toolbox._host.once("maximized");
- let settingsButton = toolbox.doc.querySelector("#toolbox-tab-options");
- EventUtils.synthesizeMouseAtCenter(settingsButton, {}, toolbox.win);
- yield onMaximized;
- info("Switch to a different host");
- yield toolbox.switchHost(Toolbox.HostType.SIDE);
- button = toolbox.doc.querySelector("#toolbox-dock-bottom-minimize");
- ok(!button, "The minimize button doesn't exist in the side host");
- Services.prefs.clearUserPref("devtools.toolbox.host");
- yield toolbox.destroy();
- gBrowser.removeCurrentTab();
- });
- function* minimize(toolbox) {
- let button = toolbox.doc.querySelector("#toolbox-dock-bottom-minimize");
- let onMinimized = toolbox._host.once("minimized");
- EventUtils.synthesizeMouseAtCenter(button, {}, toolbox.win);
- yield onMinimized;
- }
- function* minimizeWithShortcut(toolbox) {
- let key = toolbox.doc.getElementById("toolbox-minimize-key")
- .getAttribute("key");
- let onMinimized = toolbox._host.once("minimized");
- EventUtils.synthesizeKey(key, {accelKey: true, shiftKey: true},
- toolbox.win);
- yield onMinimized;
- }
- function* maximize(toolbox) {
- let button = toolbox.doc.querySelector("#toolbox-dock-bottom-minimize");
- let onMaximized = toolbox._host.once("maximized");
- EventUtils.synthesizeMouseAtCenter(button, {}, toolbox.win);
- yield onMaximized;
- }
- function* maximizeWithShortcut(toolbox) {
- let key = toolbox.doc.getElementById("toolbox-minimize-key")
- .getAttribute("key");
- let onMaximized = toolbox._host.once("maximized");
- EventUtils.synthesizeKey(key, {accelKey: true, shiftKey: true},
- toolbox.win);
- yield onMaximized;
- }
|