forked from mirrors/gecko-dev
82 lines
2.7 KiB
JavaScript
82 lines
2.7 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
"use strict";
|
|
|
|
const URL =
|
|
"https://example.com/browser/toolkit/components/translations/tests/browser/translations-tester-shadow-dom-es.html";
|
|
|
|
const URL_SLOT =
|
|
"https://example.com/browser/toolkit/components/translations/tests/browser/translations-tester-shadow-dom-slot-es.html";
|
|
|
|
/**
|
|
* Check that the translation feature works with ShadowDOM.
|
|
*/
|
|
add_task(async function test_shadow_dom_translation() {
|
|
await autoTranslatePage({
|
|
page: URL,
|
|
languagePairs: [
|
|
{ fromLang: "es", toLang: "en" },
|
|
{ fromLang: "en", toLang: "es" },
|
|
],
|
|
runInPage: async TranslationsTest => {
|
|
await TranslationsTest.assertTranslationResult(
|
|
"Text outside of the Shadow DOM is translated",
|
|
function () {
|
|
return content.document.querySelector("h1");
|
|
},
|
|
"ESTO SE CONTENTA EN LUZ DOM [es to en, html]"
|
|
);
|
|
|
|
await TranslationsTest.assertTranslationResult(
|
|
"The content in the Shadow DOM is translated.",
|
|
function () {
|
|
const root = content.document.getElementById("host").shadowRoot;
|
|
return root.querySelector("p");
|
|
},
|
|
"ESTO SE CONTENTO EN SHADOW DOM [es to en, html]"
|
|
);
|
|
|
|
await TranslationsTest.assertTranslationResult(
|
|
"Content in the interior root of a Shadow DOM is translated.",
|
|
function () {
|
|
const outerRoot = content.document.getElementById("host").shadowRoot;
|
|
const innerRoot = outerRoot.querySelector("div").shadowRoot;
|
|
return innerRoot.querySelector("p");
|
|
},
|
|
"ESTO SE CONTENTA EN RAÍZ INTERIOR [es to en, html]"
|
|
);
|
|
|
|
await TranslationsTest.assertTranslationResult(
|
|
"Content in the Shaodw DOM where the host element is inside an empty textContent element is translated.",
|
|
function () {
|
|
const root = content.document.getElementById("host2").shadowRoot;
|
|
return root.querySelector("p");
|
|
},
|
|
"ESTO SE CONTENTO EN SHADOW DOM 2 [es to en, html]"
|
|
);
|
|
},
|
|
});
|
|
});
|
|
|
|
/**
|
|
* Check that the translation feature works with ShadowDOM with slotted text node.
|
|
*/
|
|
add_task(async function test_shadow_dom_translation_slotted() {
|
|
await autoTranslatePage({
|
|
page: URL_SLOT,
|
|
languagePairs: [
|
|
{ fromLang: "es", toLang: "en" },
|
|
{ fromLang: "en", toLang: "es" },
|
|
],
|
|
runInPage: async TranslationsTest => {
|
|
await TranslationsTest.assertTranslationResult(
|
|
"Slotted text node is translated",
|
|
function () {
|
|
return content.document.getElementById("host");
|
|
},
|
|
"ESTO SE CONTENTA EN LUZ DOM [es to en]"
|
|
);
|
|
},
|
|
});
|
|
});
|