123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- /* -*- 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";
- var {Toolbox} = require("devtools/client/framework/toolbox");
- var {SIDE, BOTTOM, WINDOW} = Toolbox.HostType;
- var toolbox, target;
- const URL = "data:text/html;charset=utf8,test for opening toolbox in different hosts";
- add_task(function* runTest() {
- info("Create a test tab and open the toolbox");
- let tab = yield addTab(URL);
- target = TargetFactory.forTab(tab);
- toolbox = yield gDevTools.showToolbox(target, "webconsole");
- yield testBottomHost();
- yield testSidebarHost();
- yield testWindowHost();
- yield testToolSelect();
- yield testDestroy();
- yield testRememberHost();
- yield testPreviousHost();
- yield toolbox.destroy();
- toolbox = target = null;
- gBrowser.removeCurrentTab();
- });
- function* testBottomHost() {
- checkHostType(toolbox, BOTTOM);
- // test UI presence
- let nbox = gBrowser.getNotificationBox();
- let iframe = document.getAnonymousElementByAttribute(nbox, "class", "devtools-toolbox-bottom-iframe");
- ok(iframe, "toolbox bottom iframe exists");
- checkToolboxLoaded(iframe);
- }
- function* testSidebarHost() {
- yield toolbox.switchHost(SIDE);
- checkHostType(toolbox, SIDE);
- // test UI presence
- let nbox = gBrowser.getNotificationBox();
- let bottom = document.getAnonymousElementByAttribute(nbox, "class", "devtools-toolbox-bottom-iframe");
- ok(!bottom, "toolbox bottom iframe doesn't exist");
- let iframe = document.getAnonymousElementByAttribute(nbox, "class", "devtools-toolbox-side-iframe");
- ok(iframe, "toolbox side iframe exists");
- checkToolboxLoaded(iframe);
- }
- function* testWindowHost() {
- yield toolbox.switchHost(WINDOW);
- checkHostType(toolbox, WINDOW);
- let nbox = gBrowser.getNotificationBox();
- let sidebar = document.getAnonymousElementByAttribute(nbox, "class", "devtools-toolbox-side-iframe");
- ok(!sidebar, "toolbox sidebar iframe doesn't exist");
- let win = Services.wm.getMostRecentWindow("devtools:toolbox");
- ok(win, "toolbox separate window exists");
- let iframe = win.document.getElementById("toolbox-iframe");
- checkToolboxLoaded(iframe);
- }
- function* testToolSelect() {
- // make sure we can load a tool after switching hosts
- yield toolbox.selectTool("inspector");
- }
- function* testDestroy() {
- yield toolbox.destroy();
- target = TargetFactory.forTab(gBrowser.selectedTab);
- toolbox = yield gDevTools.showToolbox(target);
- }
- function* testRememberHost() {
- // last host was the window - make sure it's the same when re-opening
- is(toolbox.hostType, WINDOW, "host remembered");
- let win = Services.wm.getMostRecentWindow("devtools:toolbox");
- ok(win, "toolbox separate window exists");
- }
- function* testPreviousHost() {
- // last host was the window - make sure it's the same when re-opening
- is(toolbox.hostType, WINDOW, "host remembered");
- info("Switching to side");
- yield toolbox.switchHost(SIDE);
- checkHostType(toolbox, SIDE, WINDOW);
- info("Switching to bottom");
- yield toolbox.switchHost(BOTTOM);
- checkHostType(toolbox, BOTTOM, SIDE);
- info("Switching from bottom to side");
- yield toolbox.switchToPreviousHost();
- checkHostType(toolbox, SIDE, BOTTOM);
- info("Switching from side to bottom");
- yield toolbox.switchToPreviousHost();
- checkHostType(toolbox, BOTTOM, SIDE);
- info("Switching to window");
- yield toolbox.switchHost(WINDOW);
- checkHostType(toolbox, WINDOW, BOTTOM);
- info("Switching from window to bottom");
- yield toolbox.switchToPreviousHost();
- checkHostType(toolbox, BOTTOM, WINDOW);
- info("Forcing the previous host to match the current (bottom)");
- Services.prefs.setCharPref("devtools.toolbox.previousHost", BOTTOM);
- info("Switching from bottom to side (since previous=current=bottom");
- yield toolbox.switchToPreviousHost();
- checkHostType(toolbox, SIDE, BOTTOM);
- info("Forcing the previous host to match the current (side)");
- Services.prefs.setCharPref("devtools.toolbox.previousHost", SIDE);
- info("Switching from side to bottom (since previous=current=side");
- yield toolbox.switchToPreviousHost();
- checkHostType(toolbox, BOTTOM, SIDE);
- }
- function checkToolboxLoaded(iframe) {
- let tabs = iframe.contentDocument.getElementById("toolbox-tabs");
- ok(tabs, "toolbox UI has been loaded into iframe");
- }
|