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 });