Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
// Test that a button to access tools hidden by toolbar overflow is displayed when the
// toolbar starts to present an overflow.
const { Toolbox } = require("resource://devtools/client/framework/toolbox.js");
add_task(async function () {
const tab = await addTab("about:blank");
info("Open devtools on the Inspector in a bottom dock");
const toolbox = await openToolboxForTab(
tab,
"inspector",
Toolbox.HostType.BOTTOM
);
const hostWindow = toolbox.topWindow;
const originalWidth = hostWindow.outerWidth;
const originalHeight = hostWindow.outerHeight;
info(
"Resize devtools window to a width that should not trigger any overflow"
);
let onResize = once(hostWindow, "resize");
hostWindow.resizeTo(1350, 300);
await onResize;
info("Wait for all buttons to be displayed");
await waitUntil(() => {
return (
toolbox.panelDefinitions.length ===
toolbox.doc.querySelectorAll(".devtools-tab").length
);
});
let chevronMenuButton = toolbox.doc.querySelector(".tools-chevron-menu");
ok(!chevronMenuButton, "The chevron menu button is not displayed");
info("Resize devtools window to a width that should trigger an overflow");
onResize = once(hostWindow, "resize");
hostWindow.resizeTo(800, 300);
await onResize;
await waitUntil(() => !toolbox.doc.querySelector(".tools-chevron-menu"));
info("Wait until the chevron menu button is available");
await waitUntil(() => toolbox.doc.querySelector(".tools-chevron-menu"));
chevronMenuButton = toolbox.doc.querySelector(".tools-chevron-menu");
ok(chevronMenuButton, "The chevron menu button is displayed");
info(
"Open the tools-chevron-menupopup and verify that the inspector button is checked"
);
await openChevronMenu(toolbox);
const inspectorButton = toolbox.doc.querySelector(
"#tools-chevron-menupopup-inspector"
);
ok(!inspectorButton, "The chevron menu doesn't have the inspector button.");
const consoleButton = toolbox.doc.querySelector(
"#tools-chevron-menupopup-webconsole"
);
ok(!consoleButton, "The chevron menu doesn't have the console button.");
const storageButton = toolbox.doc.querySelector(
"#tools-chevron-menupopup-storage"
);
ok(storageButton, "The chevron menu has the storage button.");
info("Switch to the performance using the tools-chevron-menupopup popup");
const onSelected = toolbox.once("storage-selected");
storageButton.click();
await onSelected;
info("Restore the original window size");
onResize = once(hostWindow, "resize");
hostWindow.resizeTo(originalWidth, originalHeight);
await onResize;
});