fune/browser/components/newtab/tests/browser/browser_packaged_as_locales.js
Ed Lee 792cf16a1f Bug 1412930 - Package localized prerendered files. r=k88hudson
MozReview-Commit-ID: JUPAkCBhvPc

--HG--
extra : rebase_source : a8b3aa042009ae26d0e82b3d512f4c4458f46cb9
2017-10-30 13:13:35 -07:00

52 lines
1.7 KiB
JavaScript

const LOCALE_PREF = "general.useragent.locale";
XPCOMUtils.defineLazyServiceGetter(this, "aboutNewTabService",
"@mozilla.org/browser/aboutnewtab-service;1",
"nsIAboutNewTabService");
const DEFAULT_URL = "resource://activity-stream/prerendered/en-US/activity-stream-prerendered.html";
async function getUrlForLocale(locale) {
await SpecialPowers.pushPrefEnv({set: [[LOCALE_PREF, locale]]});
return aboutNewTabService.defaultURL;
}
/**
* Test that an unknown locale defaults to en-US
*/
add_task(async function test_unknown_locale() {
const url = await getUrlForLocale("foo-BAR");
Assert.equal(url, DEFAULT_URL);
});
/**
* Test that we at least have en-US
*/
add_task(async function test_default_locale() {
const url = await getUrlForLocale("en-US");
Assert.equal(url, DEFAULT_URL);
});
/**
* Test that we use a shared language before en-US
*/
add_task(async function test_default_locale() {
const url = await getUrlForLocale("de-UNKNOWN");
Assert.equal(url, DEFAULT_URL.replace("en-US", "de"));
});
/**
* Tests that all activity stream packaged locales can be referenced / accessed
*/
add_task(async function test_all_packaged_locales() {
const listing = await (await fetch("resource://activity-stream/prerendered/")).text();
for (const line of listing.split("\n").slice(2)) {
const [file, , , type] = line.split(" ").slice(1);
if (type === "DIRECTORY") {
const locale = file.replace("/", "");
if (locale !== "static") {
const url = await getUrlForLocale(locale);
Assert[locale === "en-US" ? "equal" : "notEqual"](url, DEFAULT_URL);
}
}
}
});