Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* This test case tests a specific situation described in Bug 1893776
* where the Translations panels were not initializing correctly after
* dragging a tab to become its own new window after opening the panel
* in the previous window.
*/
add_task(async function test_browser_translations_full_page_multiple_windows() {
const window1 = window;
const testPage = await loadTestPage({
page: SPANISH_PAGE_URL,
languagePairs: LANGUAGE_PAIRS,
});
await FullPageTranslationsTestUtils.assertTranslationsButton(
{ button: true, circleArrows: false, locale: false, icon: true },
"The translations button is visible.",
window1
);
info("Opening FullPageTranslationsPanel in window1");
await FullPageTranslationsTestUtils.openPanel({
onOpenPanel: FullPageTranslationsTestUtils.assertPanelViewDefault,
});
await FullPageTranslationsTestUtils.clickCancelButton();
info("Moving the tab to a new window of its own");
const window2 = await window1.gBrowser.replaceTabWithWindow(testPage.tab);
const swapDocShellPromise = BrowserTestUtils.waitForEvent(
testPage.tab.linkedBrowser,
"SwapDocShells"
);
await swapDocShellPromise;
await FullPageTranslationsTestUtils.assertTranslationsButton(
{ button: true, circleArrows: false, locale: false, icon: true },
"The translations button is visible.",
window2
);
info("Opening FullPageTranslationsPanel in window2");
await FullPageTranslationsTestUtils.openPanel({
win: window2,
});
info("Translating the same page in window2");
await FullPageTranslationsTestUtils.clickTranslateButton({
win: window2,
downloadHandler: testPage.resolveDownloads,
});
await FullPageTranslationsTestUtils.assertLangTagIsShownOnTranslationsButton(
"es",
"en",
window2
);
await testPage.cleanup();
await BrowserTestUtils.closeWindow(window2);
});