/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ "use strict"; const { ExperimentFakes } = ChromeUtils.importESModule( "resource://testing-common/NimbusTestUtils.sys.mjs" ); registerCleanupFunction(async () => { // When the test completes, make sure we cleanup with a populated cache, // since this is the default starting state for these tests. await withFullyLoadedAboutHome(async browser => { await simulateRestart(browser); }); }); /** * Tests that the ExperimentsAPI mechanism can be used to remotely * enable and disable the about:home startup cache. */ add_task(async function test_experiments_api_control() { // First, the disabled case. await withFullyLoadedAboutHome(async browser => { let doEnrollmentCleanup = await ExperimentFakes.enrollWithFeatureConfig({ featureId: "abouthomecache", value: { enabled: false }, }); Assert.ok( !NimbusFeatures.abouthomecache.getVariable("enabled"), "NimbusFeatures should tell us that the about:home startup cache " + "is disabled" ); await simulateRestart(browser); await ensureDynamicAboutHome( browser, AboutHomeStartupCache.CACHE_RESULT_SCALARS.DISABLED ); await doEnrollmentCleanup(); }); // Now the enabled case. await withFullyLoadedAboutHome(async browser => { let doEnrollmentCleanup = await ExperimentFakes.enrollWithFeatureConfig({ featureId: "abouthomecache", value: { enabled: true }, }); Assert.ok( NimbusFeatures.abouthomecache.getVariable("enabled"), "NimbusFeatures should tell us that the about:home startup cache " + "is enabled" ); await simulateRestart(browser); await ensureCachedAboutHome(browser); await doEnrollmentCleanup(); }); });