test_autoconfig_snap.js (2191B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 /* eslint no-unsafe-finally: "off"*/ 5 /* Turning off this rule to allow control flow operations in finally block 6 * http://eslint.org/docs/rules/no-unsafe-finally */ 7 8 const { updateAppInfo } = ChromeUtils.importESModule( 9 "resource://testing-common/AppInfo.sys.mjs" 10 ); 11 12 function ensureRemove(file) { 13 try { 14 file.remove(false); 15 } catch (e) { 16 if (e.result != Cr.NS_ERROR_FILE_NOT_FOUND) { 17 throw e; 18 } 19 } 20 } 21 22 async function run_test() { 23 let prefs = Services.prefs.getBranch(null); 24 25 let testDir = do_get_cwd(); 26 let confDir = testDir.clone(); 27 confDir.append("MozSystemConfigDir"); 28 Services.env.set("MOZ_SYSTEM_CONFIG_DIR", confDir.path); 29 Services.env.set("SNAP_INSTANCE_NAME", "xpcshell"); 30 31 updateAppInfo(); 32 33 let sysConfD = Services.dirsvc.get("SysConfD", Ci.nsIFile); 34 35 let defaultPrefDExtra = sysConfD.clone(); 36 defaultPrefDExtra.append("defaults"); 37 defaultPrefDExtra.append("pref"); 38 39 await IOUtils.makeDirectory(defaultPrefDExtra.path); 40 41 const kAutoConfigFile = defaultPrefDExtra.clone(); 42 kAutoConfigFile.append("autoconfig_snap.js"); 43 const kAutoConfigCfg = sysConfD.clone(); 44 kAutoConfigCfg.append("autoconfig-snap.cfg"); 45 46 let autoConfigJS = testDir.clone(); 47 autoConfigJS.append(kAutoConfigFile.leafName); 48 49 let autoConfigCfg = testDir.clone(); 50 autoConfigCfg.append(kAutoConfigCfg.leafName); 51 52 try { 53 autoConfigJS.copyTo(kAutoConfigFile.parent, kAutoConfigFile.leafName); 54 autoConfigCfg.copyTo(kAutoConfigCfg.parent, kAutoConfigCfg.leafName); 55 56 // Make sure nsReadConfig is initialized. 57 Cc["@mozilla.org/readconfig;1"].getService(Ci.nsISupports); 58 Services.prefs.resetPrefs(); 59 60 Services.obs.notifyObservers( 61 Services.prefs, 62 "prefservice:before-read-userprefs" 63 ); 64 65 ok(prefs.prefHasUserValue("_autoconfig_.test.userpref-snap")); 66 equal( 67 "userpref-snap", 68 prefs.getStringPref("_autoconfig_.test.userpref-snap") 69 ); 70 71 Services.prefs.resetPrefs(); 72 } finally { 73 ensureRemove(kAutoConfigFile); 74 ensureRemove(kAutoConfigCfg); 75 Services.prefs.resetPrefs(); 76 } 77 }