diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:34:42 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:34:42 +0000 |
commit | da4c7e7ed675c3bf405668739c3012d140856109 (patch) | |
tree | cdd868dba063fecba609a1d819de271f0d51b23e /toolkit/components/search/tests/xpcshell/test_search_config_v2_nimbus.js | |
parent | Adding upstream version 125.0.3. (diff) | |
download | firefox-da4c7e7ed675c3bf405668739c3012d140856109.tar.xz firefox-da4c7e7ed675c3bf405668739c3012d140856109.zip |
Adding upstream version 126.0.upstream/126.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/search/tests/xpcshell/test_search_config_v2_nimbus.js')
-rw-r--r-- | toolkit/components/search/tests/xpcshell/test_search_config_v2_nimbus.js | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/toolkit/components/search/tests/xpcshell/test_search_config_v2_nimbus.js b/toolkit/components/search/tests/xpcshell/test_search_config_v2_nimbus.js new file mode 100644 index 0000000000..56746a614f --- /dev/null +++ b/toolkit/components/search/tests/xpcshell/test_search_config_v2_nimbus.js @@ -0,0 +1,85 @@ +/* Any copyright is dedicated to the Public Domain. +https://creativecommons.org/publicdomain/zero/1.0/ */ + +/* Test to verify search-config-v2 preference is correctly toggled via a Nimbus + variable. */ + +"use strict"; + +ChromeUtils.defineESModuleGetters(this, { + SearchTestUtils: "resource://testing-common/SearchTestUtils.sys.mjs", + ExperimentAPI: "resource://nimbus/ExperimentAPI.sys.mjs", + ExperimentFakes: "resource://testing-common/NimbusTestUtils.sys.mjs", + ExperimentManager: "resource://nimbus/lib/ExperimentManager.sys.mjs", + AppProvidedSearchEngine: + "resource://gre/modules/AppProvidedSearchEngine.sys.mjs", +}); + +add_task(async function test_nimbus_experiment_enabled() { + Assert.equal( + Services.prefs.getBoolPref("browser.search.newSearchConfig.enabled"), + false, + "newSearchConfig.enabled PREF should initially be false." + ); + + await ExperimentManager.onStartup(); + await ExperimentAPI.ready(); + + let doExperimentCleanup = await ExperimentFakes.enrollWithFeatureConfig( + { + featureId: "search", + value: { + newSearchConfigEnabled: true, + }, + }, + { isRollout: true } + ); + + Assert.equal( + Services.prefs.getBoolPref("browser.search.newSearchConfig.enabled"), + true, + "After toggling the Nimbus variable, the current value of newSearchConfig.enabled PREF should be true." + ); + + Assert.equal( + SearchUtils.newSearchConfigEnabled, + true, + "After toggling the Nimbus variable, newSearchConfig.enabled should be cached as true." + ); + + await AddonTestUtils.promiseStartupManager(); + await Services.search.init(); + await SearchTestUtils.useTestEngines(); + + let { engines: engines2 } = + await Services.search.wrappedJSObject._fetchEngineSelectorEngines(); + + Assert.ok( + engines2.some(engine => engine.identifier), + "Engines in the search-config-v2 format should have an identifier." + ); + + let appProvidedEngines = + await Services.search.wrappedJSObject.getAppProvidedEngines(); + + Assert.ok( + appProvidedEngines.every( + engine => engine instanceof AppProvidedSearchEngine + ), + "All application provided engines for search-config-v2 should be instances of AppProvidedSearchEngine." + ); + + await doExperimentCleanup(); + + Assert.equal( + Services.prefs.getBoolPref("browser.search.newSearchConfig.enabled"), + false, + "After experiment unenrollment, the newSearchConfig.enabled should be false." + ); + + Assert.equal( + SearchUtils.newSearchConfigEnabled, + true, + "After experiment unenrollment, newSearchConfig.enabled should be cached as true." + ); +}); |