summaryrefslogtreecommitdiffstats
path: root/browser/components/search/test/browser/browser_search_nimbus_reload.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/search/test/browser/browser_search_nimbus_reload.js')
-rw-r--r--browser/components/search/test/browser/browser_search_nimbus_reload.js55
1 files changed, 55 insertions, 0 deletions
diff --git a/browser/components/search/test/browser/browser_search_nimbus_reload.js b/browser/components/search/test/browser/browser_search_nimbus_reload.js
new file mode 100644
index 0000000000..19247c9a02
--- /dev/null
+++ b/browser/components/search/test/browser/browser_search_nimbus_reload.js
@@ -0,0 +1,55 @@
+/* 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"
+);
+
+const { SearchService } = ChromeUtils.importESModule(
+ "resource://gre/modules/SearchService.sys.mjs"
+);
+const { sinon } = ChromeUtils.importESModule(
+ "resource://testing-common/Sinon.sys.mjs"
+);
+
+add_task(async function test_engines_reloaded_nimbus() {
+ let reloadSpy = sinon.spy(SearchService.prototype, "_maybeReloadEngines");
+ let getVariableSpy = sinon.spy(
+ NimbusFeatures.searchConfiguration,
+ "getVariable"
+ );
+
+ let doExperimentCleanup = await ExperimentFakes.enrollWithFeatureConfig({
+ featureId: "searchConfiguration",
+ value: { experiment: "nimbus-search-mochitest" },
+ });
+
+ Assert.equal(reloadSpy.callCount, 1, "Called by experiment enrollment");
+ await BrowserTestUtils.waitForCondition(
+ () => getVariableSpy.calledWith("experiment"),
+ "Wait for SearchService update to run"
+ );
+ Assert.equal(
+ getVariableSpy.callCount,
+ 3,
+ "Called by update function to fetch engines"
+ );
+ Assert.ok(
+ getVariableSpy.calledWith("experiment"),
+ "Called by search service observer"
+ );
+ Assert.equal(
+ NimbusFeatures.searchConfiguration.getVariable("experiment"),
+ "nimbus-search-mochitest",
+ "Should have expected value"
+ );
+
+ await doExperimentCleanup();
+
+ Assert.equal(reloadSpy.callCount, 2, "Called by experiment unenrollment");
+
+ reloadSpy.restore();
+ getVariableSpy.restore();
+});