зеркало из https://github.com/mozilla/pjs.git
65 строки
2.0 KiB
JavaScript
65 строки
2.0 KiB
JavaScript
var localeList = serverRoot + "locales_list.sjs";
|
|
var PREF_LOCALE_LIST = "extensions.getLocales.get.url";
|
|
|
|
Components.utils.import("resource://gre/modules/Services.jsm");
|
|
Components.utils.import("resource://gre/modules/LocaleRepository.jsm");
|
|
Components.utils.import("resource://gre/modules/AddonManager.jsm");
|
|
|
|
function test() {
|
|
waitForExplicitFinish();
|
|
runNextTest();
|
|
}
|
|
|
|
function end_test() {
|
|
Services.prefs.clearUserPref(PREF_LOCALE_LIST);
|
|
}
|
|
|
|
registerCleanupFunction(end_test);
|
|
|
|
gTests.push({
|
|
addon: null,
|
|
desc: "Test the values returned from _getLocalesInAddon",
|
|
run: function() {
|
|
Services.prefs.setCharPref(PREF_LOCALE_LIST, localeList);
|
|
LocaleRepository.getLocales(this.listLoaded.bind(this));
|
|
},
|
|
|
|
listLoaded: function(aLocales) {
|
|
is(aLocales.length, 1, "Correct number of locales were found");
|
|
aLocales[0].addon.install.addListener(this);
|
|
aLocales[0].addon.install.install();
|
|
},
|
|
|
|
onInstallEnded: function(aInstall, aAddon) {
|
|
aInstall.removeListener(this);
|
|
this.addon = aAddon;
|
|
info("Installed " + aAddon.id);
|
|
|
|
try {
|
|
ExtensionsView._getLocalesInAddon(aAddon, null);
|
|
ok(false, "_getLocalesInAddon should have thrown with a null callback");
|
|
} catch(ex) {
|
|
ok(ex, "_getLocalesInAddon requires a callback")
|
|
}
|
|
|
|
try {
|
|
ExtensionsView._getLocalesInAddon(aAddon, "foo");
|
|
ok(false, "_getLocalesInAddons should have thrown without a non-function callback");
|
|
} catch(ex) {
|
|
ok(ex, "_getLocalesInAddon requires the callback be a function")
|
|
}
|
|
|
|
ExtensionsView._getLocalesInAddon(aAddon, this.gotLocales.bind(this));
|
|
},
|
|
|
|
gotLocales: function(aLocales) {
|
|
is(aLocales.length, 2, "Correct number of locales were found");
|
|
ok(aLocales.indexOf("te-st") > -1, "te-st locale found");
|
|
ok(aLocales.indexOf("te-st-a") > -1, "te-st-a locale found");
|
|
|
|
// locales can't be restartless yet, so we can't really test the uninstall code
|
|
this.addon.install.cancel();
|
|
runNextTest();
|
|
}
|
|
});
|