test_frecency_alternative_nimbus.js (3011B)
1 /* Any copyright is dedicated to the Public Domain. 2 http://creativecommons.org/publicdomain/zero/1.0/ */ 3 4 add_task(async function () { 5 const tests = [ 6 { 7 enableVariable: "originsAlternativeEnable", 8 enablePref: "places.frecency.origins.alternative.featureGate", 9 variables: { 10 originsDaysCutOff: "places.frecency.origins.alternative.daysCutOff", 11 }, 12 }, 13 { 14 enableVariable: "pagesAlternativeEnable", 15 enablePref: "places.frecency.pages.alternative.featureGate", 16 variables: { 17 pagesNumSampledVisits: 18 "places.frecency.pages.alternative.numSampledVisits", 19 pagesMaxVisitGap: 20 "places.frecency.pages.alternative.interactions.maxVisitGapSeconds", 21 pagesViewTimeSeconds: 22 "places.frecency.pages.alternative.interactions.viewTimeSeconds", 23 pageViewTimeIfManyKeypressesSeconds: 24 "places.frecency.pages.alternative.interactions.viewTimeIfManyKeypressesSeconds", 25 manyKeypresses: 26 "places.frecency.pages.alternative.interactions.manyKeypresses", 27 pagesHalfLifeDays: "places.frecency.pages.alternative.halfLifeDays", 28 pagesVeryHighWeight: "places.frecency.pages.alternative.veryHighWeight", 29 pagesHighWeight: "places.frecency.pages.alternative.highWeight", 30 pagesMediumWeight: "places.frecency.pages.alternative.mediumWeight", 31 pagesLowWeight: "places.frecency.pages.alternative.lowWeight", 32 }, 33 }, 34 ]; 35 for (let test of tests) { 36 await doTest(test.enableVariable, test.enablePref, test.variables); 37 } 38 }); 39 40 async function doTest(enableVariable, enablePref, otherVariables) { 41 info(`Testing ${enableVariable}`); 42 let reset = await UrlbarTestUtils.initNimbusFeature( 43 { 44 // Empty for sanity check. 45 }, 46 "urlbar", 47 "config" 48 ); 49 Assert.ok(!Services.prefs.prefHasUserValue(enablePref)); 50 Assert.ok(!Services.prefs.getBoolPref(enablePref, false)); 51 for (let pref of Object.values(otherVariables)) { 52 Assert.ok(!Services.prefs.prefHasUserValue(pref)); 53 } 54 await reset(); 55 56 reset = await UrlbarTestUtils.initNimbusFeature( 57 { 58 [enableVariable]: true, 59 }, 60 "urlbar", 61 "config" 62 ); 63 Assert.ok(Services.prefs.prefHasUserValue(enablePref)); 64 Assert.equal(Services.prefs.getBoolPref(enablePref), true); 65 for (let pref of Object.values(otherVariables)) { 66 Assert.ok(!Services.prefs.prefHasUserValue(pref)); 67 } 68 await reset(); 69 70 const FAKE_VALUE = 777; 71 let config = { 72 [enableVariable]: true, 73 }; 74 for (let variable of Object.keys(otherVariables)) { 75 config[variable] = FAKE_VALUE; 76 } 77 reset = await UrlbarTestUtils.initNimbusFeature(config, "urlbar", "config"); 78 Assert.ok(Services.prefs.prefHasUserValue(enablePref)); 79 Assert.equal(Services.prefs.getBoolPref(enablePref), true); 80 for (let pref of Object.values(otherVariables)) { 81 Assert.ok(Services.prefs.prefHasUserValue(pref)); 82 Assert.equal(Services.prefs.getIntPref(pref, 90), FAKE_VALUE); 83 } 84 85 await reset(); 86 }