Bug 1429964 - Re-enable browser_packaged_as_locales.js with dynamically testing app locales. r=gandalf
MozReview-Commit-ID: FDyzUg0sq3W
--- a/browser/components/newtab/aboutNewTabService.js
+++ b/browser/components/newtab/aboutNewTabService.js
@@ -12,17 +12,17 @@ ChromeUtils.import("resource://gre/modul
ChromeUtils.defineModuleGetter(this, "AboutNewTab",
"resource:///modules/AboutNewTab.jsm");
// Dummy references to the files that this service no longer allows loading.
// Bug 1409054 to remove "chrome://browser/content/abouthome/aboutHome.xhtml"
const TOPIC_APP_QUIT = "quit-application-granted";
-const TOPIC_LOCALES_CHANGE = "intl:requested-locales-changed";
+const TOPIC_LOCALES_CHANGE = "intl:app-locales-changed";
// Automated tests ensure packaged locales are in this list. Copied output of:
// https://github.com/mozilla/activity-stream/blob/master/bin/render-activity-stream-html.js
const ACTIVITY_STREAM_LOCALES = "en-US ach an ar ast az be bg bn-BD bn-IN br bs ca cak cs cy da de dsb el en-GB eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE gd gl gn gu-IN he hi-IN hr hsb hu hy-AM ia id it ja ka kab kk km kn ko lij lo lt ltg lv mk ml mr ms my nb-NO ne-NP nl nn-NO pa-IN pl pt-BR pt-PT rm ro ru si sk sl sq sr sv-SE ta te th tl tr uk ur uz vi zh-CN zh-TW".split(" ");
const ABOUT_URL = "about:newtab";
const IS_MAIN_PROCESS = Services.appinfo.processType === Services.appinfo.PROCESS_TYPE_DEFAULT;
--- a/browser/components/newtab/tests/browser/browser.ini
+++ b/browser/components/newtab/tests/browser/browser.ini
@@ -1,7 +1,8 @@
[DEFAULT]
+prefs =
+ browser.newtabpage.activity-stream.debug=false
[browser_activity_stream_strings.js]
[browser_enabled_newtabpage.js]
+[browser_newtab_overrides.js]
[browser_packaged_as_locales.js]
-skip-if=true # bug 1423703 comment 20
-[browser_newtab_overrides.js]
--- a/browser/components/newtab/tests/browser/browser_packaged_as_locales.js
+++ b/browser/components/newtab/tests/browser/browser_packaged_as_locales.js
@@ -1,17 +1,31 @@
ChromeUtils.import("resource://gre/modules/Services.jsm");
XPCOMUtils.defineLazyServiceGetter(this, "aboutNewTabService",
"@mozilla.org/browser/aboutnewtab-service;1",
"nsIAboutNewTabService");
+// Tests are by default run with non-debug en-US configuration
const DEFAULT_URL = "resource://activity-stream/prerendered/en-US/activity-stream-prerendered.html";
+
+/**
+ * Temporarily change the app locale to get the localized activity stream url
+ */
async function getUrlForLocale(locale) {
- Services.locale.setRequestedLocales([locale]);
- return aboutNewTabService.defaultURL;
+ const origAvailable = Services.locale.getAvailableLocales();
+ const origRequested = Services.locale.getRequestedLocales();
+ try {
+ Services.locale.setAvailableLocales([locale]);
+ Services.locale.setRequestedLocales([locale]);
+ return aboutNewTabService.defaultURL;
+ } finally {
+ // Always clean up after returning the url
+ Services.locale.setAvailableLocales(origAvailable);
+ Services.locale.setRequestedLocales(origRequested);
+ }
}
/**
* Test that an unknown locale defaults to en-US
*/
add_task(async function test_unknown_locale() {
const url = await getUrlForLocale("und");
Assert.equal(url, DEFAULT_URL);