tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

test_autoconfig_no_sandbox.js (1689B)


      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 
      6 function run_test() {
      7  let prefs = Services.prefs.getBranch(null);
      8 
      9  let greD = Services.dirsvc.get("GreD", Ci.nsIFile);
     10  let defaultPrefD = Services.dirsvc.get("PrfDef", Ci.nsIFile);
     11  let testDir = do_get_cwd();
     12 
     13  try {
     14    let autoConfigJS = testDir.clone();
     15    autoConfigJS.append("autoconfig-no-sandbox.js");
     16    autoConfigJS.copyTo(defaultPrefD, "autoconfig.js");
     17 
     18    // Make sure nsReadConfig is initialized.
     19    Cc["@mozilla.org/readconfig;1"].getService(Ci.nsISupports);
     20    Services.prefs.resetPrefs();
     21 
     22    let autoConfigCfg = testDir.clone();
     23    autoConfigCfg.append("autoconfig-no-sandbox-check.cfg");
     24    autoConfigCfg.copyTo(greD, "autoconfig.cfg");
     25 
     26    Services.obs.notifyObservers(
     27      Services.prefs,
     28      "prefservice:before-read-userprefs"
     29    );
     30 
     31    equal("object", prefs.getStringPref("_test.typeof_Components"));
     32    equal("object", prefs.getStringPref("_test.typeof_ChromeUtils"));
     33    equal("object", prefs.getStringPref("_test.typeof_Services"));
     34 
     35    Services.prefs.resetPrefs();
     36  } finally {
     37    try {
     38      let autoConfigJS = defaultPrefD.clone();
     39      autoConfigJS.append("autoconfig.js");
     40      autoConfigJS.remove(false);
     41    } catch (e) {
     42      if (e.result != Cr.NS_ERROR_FILE_NOT_FOUND) {
     43        throw e;
     44      }
     45    }
     46 
     47    try {
     48      let autoConfigCfg = greD.clone();
     49      autoConfigCfg.append("autoconfig.cfg");
     50      autoConfigCfg.remove(false);
     51    } catch (e) {
     52      if (e.result != Cr.NS_ERROR_FILE_NOT_FOUND) {
     53        throw e;
     54      }
     55    }
     56 
     57    Services.prefs.resetPrefs();
     58  }
     59 }