Source code
Revision control
Copy as Markdown
Other Tools
Test Info:
/* Any copyright is dedicated to the Public Domain.
"use strict";
add_task(async function test_about_translations_dropdown_initialization() {
const { aboutTranslationsTestUtils, cleanup } = await openAboutTranslations({
languagePairs: [
{ fromLang: "en", toLang: "es" },
{ fromLang: "es", toLang: "en" },
// Only translations from "is" are available.
{ fromLang: "is", toLang: "en" },
// Only translations into "fi" are available.
{ fromLang: "en", toLang: "fi" },
// The following languages utilize script tags.
{ fromLang: "en", toLang: "zh-Hans" },
{ fromLang: "zh-Hans", toLang: "en" },
{ fromLang: "en", toLang: "zh-Hant" },
{ fromLang: "zh-Hant", toLang: "en" },
// The following languages utilize variant tags.
{ fromLang: "en", toLang: "es,base-memory" },
{ fromLang: "es,base-memory", toLang: "en" },
{ fromLang: "en", toLang: "zh-Hans,base" },
{ fromLang: "zh-Hans,base", toLang: "en" },
],
});
await aboutTranslationsTestUtils.assertSourceLanguageSelector({
value: "detect",
options: [
"detect",
"zh-Hans",
"zh-Hans,base",
"zh-Hant",
"en",
"is",
"es",
"es,base-memory",
],
});
await aboutTranslationsTestUtils.assertTargetLanguageSelector({
value: "",
options: [
"",
"zh-Hans",
"zh-Hans,base",
"zh-Hant",
"en",
"fi",
"es",
"es,base-memory",
],
});
await cleanup();
});
add_task(
async function test_about_translations_dropdown_initialization_failure() {
// Simulate a getSupportedLanguages error only for the next call.
const realGetSupportedLanguages = TranslationsParent.getSupportedLanguages;
TranslationsParent.getSupportedLanguages = () => {
TranslationsParent.getSupportedLanguages = realGetSupportedLanguages;
throw new Error("Simulating getSupportedLanguagesError()");
};
const { aboutTranslationsTestUtils, cleanup } = await openAboutTranslations(
{
languagePairs: [
{ fromLang: "en", toLang: "es" },
{ fromLang: "es", toLang: "en" },
],
}
);
await aboutTranslationsTestUtils.assertIsVisible({
pageHeader: true,
languageLoadErrorMessage: true,
mainUserInterface: false,
sourceLanguageSelector: false,
targetLanguageSelector: false,
swapLanguagesButton: false,
sourceTextArea: false,
targetTextArea: false,
unsupportedInfoMessage: false,
});
await cleanup();
}
);
add_task(
async function test_about_translations_source_dropdown_detect_language_option() {
const { aboutTranslationsTestUtils, cleanup } = await openAboutTranslations(
{
languagePairs: [
{ fromLang: "en", toLang: "es" },
{ fromLang: "es", toLang: "en" },
// Only translations from "is" are available.
{ fromLang: "is", toLang: "en" },
// Only translations into "fi" are available.
{ fromLang: "en", toLang: "fi" },
// The following languages utilize script tags.
{ fromLang: "en", toLang: "zh-Hans" },
{ fromLang: "zh-Hans", toLang: "en" },
{ fromLang: "en", toLang: "zh-Hant" },
{ fromLang: "zh-Hant", toLang: "en" },
// The following languages utilize variant tags.
{ fromLang: "en", toLang: "es,base-memory" },
{ fromLang: "es,base-memory", toLang: "en" },
{ fromLang: "en", toLang: "zh-Hans,base" },
{ fromLang: "zh-Hans,base", toLang: "en" },
],
}
);
await aboutTranslationsTestUtils.assertSourceLanguageSelector({
value: "detect",
options: [
"detect",
"zh-Hans",
"zh-Hans,base",
"zh-Hant",
"en",
"is",
"es",
"es,base-memory",
],
});
await aboutTranslationsTestUtils.assertDetectLanguageOption({
isSelected: true,
defaultValue: true,
});
await aboutTranslationsTestUtils.assertEvents(
{
expected: [
[
AboutTranslationsTestUtils.Events.DetectedLanguageUpdated,
{ language: "es" },
],
],
},
async () => {
await aboutTranslationsTestUtils.setSourceTextAreaValue(
"Hola mundo, ¿cómo estás?"
);
}
);
await aboutTranslationsTestUtils.assertSourceLanguageSelector({
detectedLanguage: "es",
});
await aboutTranslationsTestUtils.assertDetectLanguageOption({
isSelected: true,
defaultValue: false,
language: "es",
});
await aboutTranslationsTestUtils.setSourceLanguageSelectorValue("is");
await aboutTranslationsTestUtils.assertSourceLanguageSelector({
value: "is",
});
await aboutTranslationsTestUtils.assertDetectLanguageOption({
isSelected: false,
defaultValue: true,
});
await aboutTranslationsTestUtils.assertEvents(
{
expected: [
[
AboutTranslationsTestUtils.Events.DetectedLanguageUpdated,
{ language: "es" },
],
],
},
async () => {
await aboutTranslationsTestUtils.setSourceLanguageSelectorValue(
"detect"
);
}
);
await aboutTranslationsTestUtils.assertSourceLanguageSelector({
detectedLanguage: "es",
});
await aboutTranslationsTestUtils.assertDetectLanguageOption({
isSelected: true,
defaultValue: false,
language: "es",
});
await cleanup();
}
);