Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Errors

/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* @param {Window} win
*/
function focusWindow(win) {
const promise = BrowserTestUtils.waitForEvent(win, "focus");
win.focus();
return promise;
}
/**
* Test that the full page translation panel works when multiple windows are used.
*/
add_task(async function test_browser_translations_full_page_multiple_windows() {
const window1 = window;
const testPage1 = await loadTestPage({
page: SPANISH_PAGE_URL,
languagePairs: LANGUAGE_PAIRS,
});
const window2 = await BrowserTestUtils.openNewBrowserWindow();
const testPage2 = await loadTestPage({
win: window2,
page: SPANISH_PAGE_URL,
languagePairs: LANGUAGE_PAIRS,
});
// Focus back to the original window first. This ensures coverage for invalid caching
// logic involving multiple windows.
await focusWindow(window1);
info("Testing window 1");
await FullPageTranslationsTestUtils.openPanel({
onOpenPanel: FullPageTranslationsTestUtils.assertPanelViewDefault,
});
await FullPageTranslationsTestUtils.clickTranslateButton({
downloadHandler: testPage1.resolveDownloads,
});
await FullPageTranslationsTestUtils.assertPageIsTranslated(
"es",
"en",
testPage1.runInPage,
"Window 1 gets translated",
window1
);
await focusWindow(window2);
info("Testing window 2");
await FullPageTranslationsTestUtils.openPanel({ win: window2 });
await FullPageTranslationsTestUtils.clickTranslateButton({ win: window2 });
await FullPageTranslationsTestUtils.assertPageIsTranslated(
"es",
"en",
testPage2.runInPage,
"Window 2 gets translated",
window2
);
await testPage2.cleanup();
await BrowserTestUtils.closeWindow(window2);
await testPage1.cleanup();
});