Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
// Test that textbox context menu elements are still displayed correctly after reopening
add_task(async function () {
await addTab(`data:text/html;charset=utf-8,<div>test</div>`);
info("Testing the textbox context menu a first time");
const { toolbox, inspector } = await openInspector();
await checkContextMenuOnSearchbox(inspector, toolbox);
// Destroy the toolbox and try the context menu again with a new toolbox.
await toolbox.destroy();
info("Testing the textbox context menu after reopening the toolbox");
const { toolbox: newToolbox, inspector: newInspector } =
await openInspector();
await checkContextMenuOnSearchbox(newInspector, newToolbox);
});
async function checkContextMenuOnSearchbox(inspector, toolbox) {
// The same context menu is used for any text input.
// Here we use the inspector searchbox for this test because it is always available.
const searchbox = inspector.panelDoc.getElementById("inspector-searchbox");
info(
"Simulating context click on the textbox and expecting the menu to open"
);
const onContextMenu = toolbox.once("menu-open");
synthesizeContextMenuEvent(searchbox);
await onContextMenu;
const textboxContextMenu = toolbox.getTextBoxContextMenu();
info("Wait until menu items are rendered");
const pasteElement = textboxContextMenu.querySelector("#editmenu-paste");
await waitUntil(() => !!pasteElement.getAttribute("label"));
is(
pasteElement.getAttribute("label"),
"Paste",
"Paste is visible and localized"
);
info("Closing the menu");
const onContextMenuHidden = toolbox.once("menu-close");
textboxContextMenu.hidePopup();
await onContextMenuHidden;
}