зеркало из https://github.com/mozilla/gecko-dev.git
49 строки
1.6 KiB
JavaScript
49 строки
1.6 KiB
JavaScript
/* 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
|
|
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
|
|
|
registerManifests(MANIFESTS);
|
|
|
|
var chromeReg = Cc["@mozilla.org/chrome/chrome-registry;1"]
|
|
.getService(Ci.nsIXULChromeRegistry)
|
|
.QueryInterface(Ci.nsIToolkitChromeRegistry);
|
|
chromeReg.checkForNewChrome();
|
|
|
|
var prefService = Cc["@mozilla.org/preferences-service;1"]
|
|
.getService(Ci.nsIPrefService)
|
|
.QueryInterface(Ci.nsIPrefBranch);
|
|
|
|
function enum_to_array(strings) {
|
|
let rv = [];
|
|
while (strings.hasMore()) {
|
|
rv.push(strings.getNext());
|
|
}
|
|
rv.sort();
|
|
return rv;
|
|
}
|
|
|
|
function run_test() {
|
|
|
|
// without override
|
|
prefService.setCharPref("general.useragent.locale", "de");
|
|
do_check_eq(chromeReg.getSelectedLocale("basepack"), "en-US");
|
|
do_check_eq(chromeReg.getSelectedLocale("overpack"), "de");
|
|
do_check_matches(enum_to_array(chromeReg.getLocalesForPackage("basepack")),
|
|
['en-US', 'fr']);
|
|
|
|
// with override
|
|
prefService.setCharPref("chrome.override_package.basepack", "overpack");
|
|
do_check_eq(chromeReg.getSelectedLocale("basepack"), "de");
|
|
do_check_matches(enum_to_array(chromeReg.getLocalesForPackage("basepack")),
|
|
['de', 'en-US']);
|
|
|
|
}
|