diff options
Diffstat (limited to 'toolkit/components/search/tests/xpcshell/test_settings_persist_diff_locale_same_name.js')
-rw-r--r-- | toolkit/components/search/tests/xpcshell/test_settings_persist_diff_locale_same_name.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/toolkit/components/search/tests/xpcshell/test_settings_persist_diff_locale_same_name.js b/toolkit/components/search/tests/xpcshell/test_settings_persist_diff_locale_same_name.js new file mode 100644 index 0000000000..3c0b930bc8 --- /dev/null +++ b/toolkit/components/search/tests/xpcshell/test_settings_persist_diff_locale_same_name.js @@ -0,0 +1,68 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + +const CONFIG = [ + { + webExtension: { id: "engine@search.mozilla.org" }, + appliesTo: [{ included: { everywhere: true } }], + }, + { + // This engine has the same name, but still should be replaced correctly. + webExtension: { + id: "engine-same-name@search.mozilla.org", + }, + appliesTo: [ + { + included: { everywhere: true }, + excluded: { regions: ["FR"] }, + }, + { + included: { regions: ["FR"] }, + webExtension: { + locales: ["gd"], + }, + }, + ], + }, +]; + +add_task(async function setup() { + await SearchTestUtils.useTestEngines("data", null, CONFIG); + await AddonTestUtils.promiseStartupManager(); + let settingsFileWritten = promiseAfterSettings(); + Region._setHomeRegion("US", false); + await Services.search.init(); + await settingsFileWritten; +}); + +add_task(async function test_settings_persist_diff_locale_same_name() { + let settingsFileWritten = promiseAfterSettings(); + let engine1 = Services.search.getEngineByName("engine-same-name"); + Services.search.moveEngine(engine1, 0); + + let engine2 = Services.search.getEngineByName("Test search engine"); + Services.search.moveEngine(engine2, 1); + // Ensure we have saved the settings before we restart below. + await settingsFileWritten; + + Assert.deepEqual( + (await Services.search.getEngines()).map(e => e.name), + ["engine-same-name", "Test search engine"], + "Should have set the engines to the expected order" + ); + + // Setting the region to FR will change the engine id, but use the same name. + Region._setHomeRegion("FR", false); + + // Pretend we are restarting. + Services.search.wrappedJSObject.reset(); + await Services.search.init(); + + Assert.deepEqual( + (await Services.search.getEngines()).map(e => e.name), + ["engine-same-name", "Test search engine"], + "Should have retained the engines in the expected order" + ); +}); |