Files
sousa-gecko/browser/components/customizableui/test/browser_share_tab_button_linux.js
T

58 lines
1.6 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* https://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
const BASE = getRootDirectory(gTestPath).replace(
"chrome://mochitests/content",
"https://example.com"
);
const TEST_URL = BASE + "browser_shareurl.html";
async function openShareTabPopup() {
await waitForOverflowButtonShown();
await document.getElementById("nav-bar").overflowable.show();
let shareTabButton = document.getElementById("share-tab-button");
ok(shareTabButton, "Share tab button appears in Panel Menu");
shareTabButton.click();
let popupElement = document.getElementById("share-tab-popup");
await BrowserTestUtils.waitForPopupEvent(popupElement, "shown");
return { shareTabButton, popupElement };
}
add_setup(async function () {
CustomizableUI.addWidgetToArea(
"share-tab-button",
CustomizableUI.AREA_FIXED_OVERFLOW_PANEL
);
registerCleanupFunction(() => CustomizableUI.reset());
});
add_task(async function test_button() {
await BrowserTestUtils.withNewTab(TEST_URL, async () => {
let { popupElement } = await openShareTabPopup();
let copyLinkItem = popupElement.querySelector(".share-copy-link");
ok(copyLinkItem, "Copy Link item exists in submenu");
let menuPopupClosedPromise = BrowserTestUtils.waitForPopupEvent(
popupElement,
"hidden"
);
await SimpleTest.promiseClipboardChange(TEST_URL, () =>
popupElement.activateItem(copyLinkItem)
);
await menuPopupClosedPromise;
ok(true, "Copy works on linux");
if (isOverflowOpen()) {
await hideOverflow();
}
});
});