diff options
Diffstat (limited to 'toolkit/components/search/tests/xpcshell/test_engine_old_selector_remote_override.js')
-rw-r--r-- | toolkit/components/search/tests/xpcshell/test_engine_old_selector_remote_override.js | 135 |
1 files changed, 135 insertions, 0 deletions
diff --git a/toolkit/components/search/tests/xpcshell/test_engine_old_selector_remote_override.js b/toolkit/components/search/tests/xpcshell/test_engine_old_selector_remote_override.js new file mode 100644 index 0000000000..9535adfb28 --- /dev/null +++ b/toolkit/components/search/tests/xpcshell/test_engine_old_selector_remote_override.js @@ -0,0 +1,135 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +ChromeUtils.defineESModuleGetters(this, { + SearchEngineSelectorOld: + "resource://gre/modules/SearchEngineSelectorOld.sys.mjs", + SearchEngineSelector: "resource://gre/modules/SearchEngineSelector.sys.mjs", +}); + +const TEST_CONFIG_OLD = [ + { + engineName: "aol", + telemetryId: "aol", + appliesTo: [ + { + included: { everywhere: true }, + }, + ], + params: { + searchUrlGetParams: [ + { + name: "original_param", + value: "original_value", + }, + ], + }, + }, +]; + +const TEST_CONFIG_OVERRIDE_OLD = [ + { + telemetryId: "aol", + telemetrySuffix: "tsfx", + params: { + searchUrlGetParams: [ + { + name: "new_param", + value: "new_value", + }, + ], + }, + }, +]; + +const TEST_CONFIG = [ + { + base: { + urls: { + search: { + base: "https://www.bing.com/search", + params: [ + { + name: "old_param", + value: "old_value", + }, + ], + searchTermParamName: "q", + }, + }, + }, + variants: [ + { + environment: { + locales: ["en-US"], + }, + }, + ], + identifier: "aol", + recordType: "engine", + }, + { + recordType: "defaultEngines", + globalDefault: "aol", + specificDefaults: [], + }, + { + orders: [], + recordType: "engineOrders", + }, +]; + +const TEST_CONFIG_OVERRIDE = [ + { + identifier: "aol", + urls: { + search: { + params: [{ name: "new_param", value: "new_value" }], + }, + }, + telemetrySuffix: "tsfx", + clickUrl: "https://aol.url", + }, +]; + +const engineSelectorOld = new SearchEngineSelectorOld(); +const engineSelector = new SearchEngineSelector(); + +add_setup(async function () { + const settingsOld = await RemoteSettings(SearchUtils.OLD_SETTINGS_KEY); + sinon.stub(settingsOld, "get").returns(TEST_CONFIG_OLD); + const overridesOld = await RemoteSettings( + SearchUtils.OLD_SETTINGS_OVERRIDES_KEY + ); + sinon.stub(overridesOld, "get").returns(TEST_CONFIG_OVERRIDE_OLD); + + const settings = await RemoteSettings(SearchUtils.NEW_SETTINGS_KEY); + sinon.stub(settings, "get").returns(TEST_CONFIG); + const overrides = await RemoteSettings( + SearchUtils.NEW_SETTINGS_OVERRIDES_KEY + ); + sinon.stub(overrides, "get").returns(TEST_CONFIG_OVERRIDE); +}); + +add_task(async function test_engine_selector_old() { + let { engines } = await engineSelectorOld.fetchEngineConfiguration({ + locale: "en-US", + region: "us", + }); + Assert.equal(engines[0].telemetryId, "aol-tsfx"); + Assert.equal(engines[0].params.searchUrlGetParams[0].name, "new_param"); + Assert.equal(engines[0].params.searchUrlGetParams[0].value, "new_value"); +}); + +add_task(async function test_engine_selector() { + let { engines } = await engineSelector.fetchEngineConfiguration({ + locale: "en-US", + region: "us", + }); + Assert.equal(engines[0].telemetrySuffix, "tsfx"); + Assert.equal(engines[0].clickUrl, "https://aol.url"); + Assert.equal(engines[0].urls.search.params[0].name, "new_param"); + Assert.equal(engines[0].urls.search.params[0].value, "new_value"); +}); |