tor-browser

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

browser_doesAppNeedPin.js (1283B)


      1 /* Any copyright is dedicated to the Public Domain.
      2 * http://creativecommons.org/publicdomain/zero/1.0/ */
      3 
      4 ChromeUtils.defineESModuleGetters(this, {
      5  NimbusFeatures: "resource://nimbus/ExperimentAPI.sys.mjs",
      6  NimbusTestUtils: "resource://testing-common/NimbusTestUtils.sys.mjs",
      7 });
      8 
      9 let defaultValue;
     10 add_task(async function default_need() {
     11  defaultValue = await ShellService.doesAppNeedPin();
     12 
     13  Assert.notStrictEqual(
     14    defaultValue,
     15    undefined,
     16    "Got a default app need pin value"
     17  );
     18 });
     19 
     20 add_task(async function remote_disable() {
     21  if (defaultValue === false) {
     22    info("Default pin already false, so nothing to test");
     23    return;
     24  }
     25 
     26  let doCleanup = await NimbusTestUtils.enrollWithFeatureConfig(
     27    {
     28      featureId: NimbusFeatures.shellService.featureId,
     29      value: { disablePin: true, enabled: true },
     30    },
     31    { isRollout: true }
     32  );
     33 
     34  Assert.equal(
     35    await ShellService.doesAppNeedPin(),
     36    false,
     37    "Pinning disabled via nimbus"
     38  );
     39 
     40  await doCleanup();
     41 });
     42 
     43 add_task(async function restore_default() {
     44  if (defaultValue === undefined) {
     45    info("No default pin value set, so nothing to test");
     46    return;
     47  }
     48 
     49  Assert.equal(
     50    await ShellService.doesAppNeedPin(),
     51    defaultValue,
     52    "Pinning restored to original"
     53  );
     54 });