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_full_page_translation_in_iframe() {
const { cleanup, runInPage } = await loadTestPage({
page: SPANISH_IFRAME_PAGE_URL,
autoDownloadFromRemoteSettings: true,
languagePairs: [
{ fromLang: "es", toLang: "en" },
{ fromLang: "en", toLang: "es" },
],
});
try {
await getTranslationsParent().translate(
{
sourceLanguage: "es",
targetLanguage: "en",
},
false
);
await assertTranslationResultInBrowsingContext({
browsingContext: await getIframeBrowsingContext(runInPage, "top-frame"),
selector: "h1",
expectedResult: "DON QUIJOTE DE LA MANCHA [es to en]",
message: "The iframe heading is translated.",
});
} finally {
await cleanup();
}
});
add_task(async function test_full_page_translation_in_cross_origin_iframe() {
const { cleanup, runInPage } = await loadTestPage({
page: SPANISH_IFRAME_PAGE_URL,
autoDownloadFromRemoteSettings: true,
contentEagerMode: true,
languagePairs: [
{ fromLang: "es", toLang: "en" },
{ fromLang: "en", toLang: "es" },
],
});
try {
const preexistingBrowsingContext = await navigateIframeToUrl(runInPage, {
iframeId: "top-frame",
url: `${SPANISH_PAGE_URL_DOT_ORG}?frame=preexisting-cross-origin`,
});
Assert.equal(
await getContentOrigin(preexistingBrowsingContext),
"The existing iframe is loaded from example.org"
);
await getTranslationsParent().translate(
{
sourceLanguage: "es",
targetLanguage: "en",
},
false
);
await assertTranslationResultInBrowsingContext({
browsingContext: preexistingBrowsingContext,
selector: "h1",
expectedResult: "DON QUIJOTE DE LA MANCHA [es to en]",
message: "The existing cross-origin iframe heading is translated.",
});
const dynamicBrowsingContext = await insertIframeIntoPage(runInPage, {
iframeId: "dynamic-cross-origin-frame",
referenceIframeId: "bottom-frame",
position: "afterend",
src: `${SPANISH_PAGE_URL_DOT_ORG}?frame=dynamic-cross-origin`,
});
Assert.equal(
await getContentOrigin(dynamicBrowsingContext),
"The dynamically inserted iframe is loaded from example.org"
);
await assertTranslationResultInBrowsingContext({
browsingContext: dynamicBrowsingContext,
selector: "h1",
expectedResult: "DON QUIJOTE DE LA MANCHA [es to en]",
message: "The dynamic cross-origin iframe heading is translated.",
});
} finally {
await cleanup();
}
});