Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
const AI_PREFS = [
["browser.translations.enable", false],
["browser.ai.control.default", "blocked"],
["browser.ai.control.translations", "blocked"],
];
const HIDDEN_UI = {
pageHeader: false,
mainUserInterface: false,
sourceLanguageSelector: false,
targetLanguageSelector: false,
copyButton: false,
swapLanguagesButton: false,
sourceSectionTextArea: false,
targetSectionTextArea: false,
unsupportedInfoMessage: false,
languageLoadErrorMessage: false,
};
const VISIBLE_UI = {
pageHeader: true,
mainUserInterface: true,
sourceLanguageSelector: true,
targetLanguageSelector: true,
copyButton: true,
swapLanguagesButton: true,
sourceSectionTextArea: true,
targetSectionTextArea: true,
unsupportedInfoMessage: false,
languageLoadErrorMessage: false,
};
/**
* Checks the about:translations UI updates with AIFeature enable/disable starting from disabled.
*/
add_task(
async function test_about_translations_ai_feature_toggle_from_disabled() {
const { aboutTranslationsTestUtils, cleanup } = await openAboutTranslations(
{
disabled: true,
autoDownloadFromRemoteSettings: true,
prefs: [
["browser.translations.enable", false],
["browser.ai.control.default", "blocked"],
["browser.ai.control.translations", "blocked"],
],
}
);
await aboutTranslationsTestUtils.assertIsVisible(HIDDEN_UI);
await aboutTranslationsTestUtils.assertEvents(
{
expected: [
[
AboutTranslationsTestUtils.Events.EnabledStateChanged,
{ enabled: true },
],
],
},
async () => {
await TranslationsParent.AIFeature.enable();
}
);
await aboutTranslationsTestUtils.assertIsVisible(VISIBLE_UI);
await aboutTranslationsTestUtils.assertEvents(
{
expected: [
[
AboutTranslationsTestUtils.Events.EnabledStateChanged,
{ enabled: false },
],
],
},
async () => {
await TranslationsParent.AIFeature.disable();
}
);
await aboutTranslationsTestUtils.assertIsVisible(HIDDEN_UI);
await cleanup();
}
);
/**
* Checks the about:translations UI updates with AIFeature disable/enable starting from enabled.
*/
add_task(
async function test_about_translations_ai_feature_toggle_from_enabled() {
const { aboutTranslationsTestUtils, cleanup } = await openAboutTranslations(
{
disabled: false,
autoDownloadFromRemoteSettings: true,
prefs: [
["browser.translations.enable", true],
["browser.ai.control.default", "available"],
["browser.ai.control.translations", "default"],
],
}
);
await aboutTranslationsTestUtils.assertIsVisible(VISIBLE_UI);
await aboutTranslationsTestUtils.assertEvents(
{
expected: [
[
AboutTranslationsTestUtils.Events.EnabledStateChanged,
{ enabled: false },
],
],
},
async () => {
await TranslationsParent.AIFeature.disable();
}
);
await aboutTranslationsTestUtils.assertIsVisible(HIDDEN_UI);
await aboutTranslationsTestUtils.assertEvents(
{
expected: [
[
AboutTranslationsTestUtils.Events.EnabledStateChanged,
{ enabled: true },
],
],
},
async () => {
await TranslationsParent.AIFeature.enable();
}
);
await aboutTranslationsTestUtils.assertIsVisible(VISIBLE_UI);
await cleanup();
}
);
/**
* Checks that the page loads correctly when the global Translations pref is enabled.
*/
add_task(async function test_about_translations_engine_unsupported() {
const { aboutTranslationsTestUtils, cleanup } = await openAboutTranslations({
autoDownloadFromRemoteSettings: true,
prefs: [["browser.translations.simulateUnsupportedEngine", true]],
});
await aboutTranslationsTestUtils.assertIsVisible({
pageHeader: true,
unsupportedInfoMessage: true,
mainUserInterface: false,
sourceLanguageSelector: false,
targetLanguageSelector: false,
copyButton: false,
swapLanguagesButton: false,
sourceSectionTextArea: false,
targetSectionTextArea: false,
languageLoadErrorMessage: false,
});
await cleanup();
});