Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Errors

/* Any copyright is dedicated to the Public Domain.
"use strict";
// This test will:
//
// * Confirm that currently selected button to access tools will not hide due to overflow.
// In this case, a button which is located on the left of a currently selected will hide.
// * Confirm that a button to access tool will hide when registering a new panel.
//
// Note that this test is based on the tab ordinal is fixed.
// i.e. After changed by Bug 1226272, this test might fail.
const { Toolbox } = require("resource://devtools/client/framework/toolbox.js");
add_task(async function () {
const tab = await addTab("about:blank");
info("Open devtools on the Storage in a sidebar.");
const toolbox = await openToolboxForTab(
tab,
"storage",
Toolbox.HostType.BOTTOM
);
const win = getWindow(toolbox);
const { outerWidth: originalWindowWidth, outerHeight: originalWindowHeight } =
win;
registerCleanupFunction(() => {
win.resizeTo(originalWindowWidth, originalWindowHeight);
});
info("Waiting for the window to be resized");
await resizeWindow(toolbox, 800);
info("Wait until the tools menu button is available");
await waitUntil(() => toolbox.doc.querySelector(".tools-chevron-menu"));
const toolsMenuButton = toolbox.doc.querySelector(".tools-chevron-menu");
ok(toolsMenuButton, "The tools menu button is displayed");
info("Confirm that selected tab is not hidden.");
const storageButton = toolbox.doc.querySelector("#toolbox-tab-storage");
ok(storageButton, "The storage tab is on toolbox.");
// Reset window size for 2nd test.
await resizeWindow(toolbox, originalWindowWidth);
});
add_task(async function () {
const tab = await addTab("about:blank");
info("Open devtools on the Storage in a sidebar.");
const toolbox = await openToolboxForTab(
tab,
"storage",
Toolbox.HostType.BOTTOM
);
info("Resize devtools window to a width that should trigger an overflow");
await resizeWindow(toolbox, 800);
info("Regist a new tab");
const onRegistered = toolbox.once("tool-registered");
gDevTools.registerTool({
id: "test-tools",
label: "Test Tools",
isMenu: true,
isToolSupported: () => true,
build() {},
});
await onRegistered;
info("Open the tools menu button.");
await openChevronMenu(toolbox);
info("The registered new tool tab should be in the tools menu.");
let testToolsButton = toolbox.doc.querySelector(
"#tools-chevron-menupopup-test-tools"
);
ok(testToolsButton, "The tools menu has a registered new tool button.");
await closeChevronMenu(toolbox);
info("Unregistering test-tools");
const onUnregistered = toolbox.once("tool-unregistered");
gDevTools.unregisterTool("test-tools");
await onUnregistered;
info("Open the tools menu button.");
await openChevronMenu(toolbox);
info("An unregistered new tool tab should not be in the tools menu.");
testToolsButton = toolbox.doc.querySelector(
"#tools-chevron-menupopup-test-tools"
);
ok(
!testToolsButton,
"The tools menu doesn't have a unregistered new tool button."
);
await closeChevronMenu(toolbox);
});