/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ var MANIFESTS = [ do_get_file("data/test_bug848297.manifest"), ]; // Stub in the locale service so we can control what gets returned as the OS locale setting registerManifests(MANIFESTS); var chromeReg = Cc["@mozilla.org/chrome/chrome-registry;1"] .getService(Ci.nsIXULChromeRegistry) .QueryInterface(Ci.nsIToolkitChromeRegistry); chromeReg.checkForNewChrome(); function enum_to_array(strings) { return Array.from(strings).sort(); } function run_test() { // without override Services.locale.requestedLocales = ["de"]; Assert.equal(chromeReg.getSelectedLocale("basepack"), "en-US"); Assert.equal(chromeReg.getSelectedLocale("overpack"), "de"); Assert.deepEqual(enum_to_array(chromeReg.getLocalesForPackage("basepack")), ["en-US", "fr"]); // with override Services.prefs.setCharPref("chrome.override_package.basepack", "overpack"); Assert.equal(chromeReg.getSelectedLocale("basepack"), "de"); Assert.deepEqual(enum_to_array(chromeReg.getLocalesForPackage("basepack")), ["de", "en-US"]); }