77 lines
2.1 KiB
JavaScript
77 lines
2.1 KiB
JavaScript
/* Any copyright is dedicated to the Public Domain.
|
|
http://creativecommons.org/publicdomain/zero/1.0/ */
|
|
|
|
/* eslint no-unsafe-finally: "off"*/
|
|
/* Turning off this rule to allow control flow operations in finally block
|
|
* http://eslint.org/docs/rules/no-unsafe-finally */
|
|
|
|
const { updateAppInfo } = ChromeUtils.importESModule(
|
|
"resource://testing-common/AppInfo.sys.mjs"
|
|
);
|
|
|
|
function ensureRemove(file) {
|
|
try {
|
|
file.remove(false);
|
|
} catch (e) {
|
|
if (e.result != Cr.NS_ERROR_FILE_NOT_FOUND) {
|
|
throw e;
|
|
}
|
|
}
|
|
}
|
|
|
|
async function run_test() {
|
|
let prefs = Services.prefs.getBranch(null);
|
|
|
|
let testDir = do_get_cwd();
|
|
let confDir = testDir.clone();
|
|
confDir.append("MozSystemConfigDir");
|
|
Services.env.set("MOZ_SYSTEM_CONFIG_DIR", confDir.path);
|
|
Services.env.set("SNAP_INSTANCE_NAME", "xpcshell");
|
|
|
|
updateAppInfo();
|
|
|
|
let sysConfD = Services.dirsvc.get("SysConfD", Ci.nsIFile);
|
|
|
|
let defaultPrefDExtra = sysConfD.clone();
|
|
defaultPrefDExtra.append("defaults");
|
|
defaultPrefDExtra.append("pref");
|
|
|
|
await IOUtils.makeDirectory(defaultPrefDExtra.path);
|
|
|
|
const kAutoConfigFile = defaultPrefDExtra.clone();
|
|
kAutoConfigFile.append("autoconfig_snap.js");
|
|
const kAutoConfigCfg = sysConfD.clone();
|
|
kAutoConfigCfg.append("autoconfig-snap.cfg");
|
|
|
|
let autoConfigJS = testDir.clone();
|
|
autoConfigJS.append(kAutoConfigFile.leafName);
|
|
|
|
let autoConfigCfg = testDir.clone();
|
|
autoConfigCfg.append(kAutoConfigCfg.leafName);
|
|
|
|
try {
|
|
autoConfigJS.copyTo(kAutoConfigFile.parent, kAutoConfigFile.leafName);
|
|
autoConfigCfg.copyTo(kAutoConfigCfg.parent, kAutoConfigCfg.leafName);
|
|
|
|
// Make sure nsReadConfig is initialized.
|
|
Cc["@mozilla.org/readconfig;1"].getService(Ci.nsISupports);
|
|
Services.prefs.resetPrefs();
|
|
|
|
Services.obs.notifyObservers(
|
|
Services.prefs,
|
|
"prefservice:before-read-userprefs"
|
|
);
|
|
|
|
ok(prefs.prefHasUserValue("_autoconfig_.test.userpref-snap"));
|
|
equal(
|
|
"userpref-snap",
|
|
prefs.getStringPref("_autoconfig_.test.userpref-snap")
|
|
);
|
|
|
|
Services.prefs.resetPrefs();
|
|
} finally {
|
|
ensureRemove(kAutoConfigFile);
|
|
ensureRemove(kAutoConfigCfg);
|
|
Services.prefs.resetPrefs();
|
|
}
|
|
}
|