Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
/**
* This test case checks the behavior of the translate-selection menu item in the context menu
* when full-page translations is active or inactive. The menu item should be available under
* the correct selected-text conditions while full-page translations is inactive, and it should
* never be available while full-page translations is active.
*/
add_task(
async function test_translate_selection_menuitem_with_text_selected_and_full_page_translations_active() {
const { cleanup, resolveDownloads, runInPage } = await loadTestPage({
page: SELECT_TEST_PAGE_URL,
languagePairs: LANGUAGE_PAIRS,
prefs: [["browser.translations.select.enable", true]],
});
await FullPageTranslationsTestUtils.assertTranslationsButton(
{ button: true, circleArrows: false, locale: false, icon: true },
"The button is available."
);
await FullPageTranslationsTestUtils.assertPageIsUntranslated(runInPage);
await SelectTranslationsTestUtils.assertContextMenuTranslateSelectionItem(
runInPage,
{
selectSpanishSentence: true,
openAtSpanishSentence: true,
expectMenuItemVisible: true,
expectedTargetLanguage: "en",
},
"The translate-selection context menu item should be available while full-page translations is inactive."
);
await FullPageTranslationsTestUtils.openPanel({
onOpenPanel: FullPageTranslationsTestUtils.assertPanelViewDefault,
});
await FullPageTranslationsTestUtils.clickTranslateButton({
downloadHandler: resolveDownloads,
});
await FullPageTranslationsTestUtils.assertPageIsTranslated(
"es",
"en",
runInPage
);
await SelectTranslationsTestUtils.assertContextMenuTranslateSelectionItem(
runInPage,
{
selectSpanishSentence: true,
openAtSpanishSentence: true,
expectMenuItemVisible: false,
},
"The translate-selection context menu item should be unavailable while full-page translations is active."
);
await FullPageTranslationsTestUtils.openPanel({
onOpenPanel: FullPageTranslationsTestUtils.assertPanelViewRevisit,
});
await FullPageTranslationsTestUtils.clickRestoreButton();
await FullPageTranslationsTestUtils.assertPageIsUntranslated(runInPage);
await SelectTranslationsTestUtils.assertContextMenuTranslateSelectionItem(
runInPage,
{
selectSpanishSentence: true,
openAtSpanishSentence: true,
expectMenuItemVisible: true,
expectedTargetLanguage: "en",
},
"The translate-selection context menu item should be available while full-page translations is inactive."
);
await cleanup();
}
);
/**
* This test case checks the behavior of the translate-selection menu item in the context menu
* when full-page translations is active or inactive. The menu item should be available under
* the correct link-clicked conditions while full-page translations is inactive, and it should
* never be available while full-page translations is active.
*/
add_task(
async function test_translate_selection_menuitem_with_link_clicked_and_full_page_translations_active() {
const { cleanup, resolveDownloads, runInPage } = await loadTestPage({
page: SELECT_TEST_PAGE_URL,
languagePairs: LANGUAGE_PAIRS,
prefs: [["browser.translations.select.enable", true]],
});
await FullPageTranslationsTestUtils.assertTranslationsButton(
{ button: true, circleArrows: false, locale: false, icon: true },
"The button is available."
);
await FullPageTranslationsTestUtils.assertPageIsUntranslated(runInPage);
await SelectTranslationsTestUtils.assertContextMenuTranslateSelectionItem(
runInPage,
{
selectSpanishSentence: false,
openAtSpanishHyperlink: true,
expectMenuItemVisible: true,
expectedTargetLanguage: "en",
},
"The translate-selection context menu item should be available while full-page translations is inactive."
);
await FullPageTranslationsTestUtils.openPanel({
onOpenPanel: FullPageTranslationsTestUtils.assertPanelViewDefault,
});
await FullPageTranslationsTestUtils.clickTranslateButton({
downloadHandler: resolveDownloads,
});
await FullPageTranslationsTestUtils.assertPageIsTranslated(
"es",
"en",
runInPage
);
await SelectTranslationsTestUtils.assertContextMenuTranslateSelectionItem(
runInPage,
{
selectSpanishSentence: false,
openAtSpanishHyperlink: true,
expectMenuItemVisible: false,
},
"The translate-selection context menu item should be unavailable while full-page translations is active."
);
await FullPageTranslationsTestUtils.openPanel({
onOpenPanel: FullPageTranslationsTestUtils.assertPanelViewRevisit,
});
await FullPageTranslationsTestUtils.clickRestoreButton();
await FullPageTranslationsTestUtils.assertPageIsUntranslated(runInPage);
await SelectTranslationsTestUtils.assertContextMenuTranslateSelectionItem(
runInPage,
{
selectSpanishSentence: false,
openAtSpanishHyperlink: true,
expectMenuItemVisible: true,
expectedTargetLanguage: "en",
},
"The translate-selection context menu item should be available while full-page translations is inactive."
);
await cleanup();
}
);