123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- /* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
- /* Any copyright is dedicated to the Public Domain.
- * http://creativecommons.org/publicdomain/zero/1.0/ */
- const TEST_URL = "data:text/html,test for opening toolbox in different hosts";
- var {Toolbox} = require("devtools/client/framework/toolbox");
- var toolbox, tab1, tab2;
- function test() {
- addTab(TEST_URL).then(tab => {
- tab2 = gBrowser.addTab();
- let target = TargetFactory.forTab(tab);
- gDevTools.showToolbox(target)
- .then(testBottomHost, console.error)
- .then(null, console.error);
- });
- }
- function testBottomHost(aToolbox) {
- toolbox = aToolbox;
- // switch to another tab and test toolbox.raise()
- gBrowser.selectedTab = tab2;
- executeSoon(function () {
- is(gBrowser.selectedTab, tab2, "Correct tab is selected before calling raise");
- toolbox.raise();
- executeSoon(function () {
- is(gBrowser.selectedTab, tab1, "Correct tab was selected after calling raise");
- toolbox.switchHost(Toolbox.HostType.WINDOW).then(testWindowHost).then(null, console.error);
- });
- });
- }
- function testWindowHost() {
- // Make sure toolbox is not focused.
- window.addEventListener("focus", onFocus, true);
- // Need to wait for focus as otherwise window.focus() is overridden by
- // toolbox window getting focused first on Linux and Mac.
- let onToolboxFocus = () => {
- toolbox.win.parent.removeEventListener("focus", onToolboxFocus, true);
- info("focusing main window.");
- window.focus();
- };
- // Need to wait for toolbox window to get focus.
- toolbox.win.parent.addEventListener("focus", onToolboxFocus, true);
- }
- function onFocus() {
- info("Main window is focused before calling toolbox.raise()");
- window.removeEventListener("focus", onFocus, true);
- // Check if toolbox window got focus.
- let onToolboxFocusAgain = () => {
- toolbox.win.parent.removeEventListener("focus", onToolboxFocusAgain, false);
- ok(true, "Toolbox window is the focused window after calling toolbox.raise()");
- cleanup();
- };
- toolbox.win.parent.addEventListener("focus", onToolboxFocusAgain, false);
- // Now raise toolbox.
- toolbox.raise();
- }
- function cleanup() {
- Services.prefs.setCharPref("devtools.toolbox.host", Toolbox.HostType.BOTTOM);
- toolbox.destroy().then(function () {
- toolbox = null;
- gBrowser.removeCurrentTab();
- gBrowser.removeCurrentTab();
- finish();
- });
- }
|