summaryrefslogtreecommitdiffstats
path: root/toolkit/components/search/tests/xpcshell/test_settings_persist_diff_locale_same_name.js
diff options
context:
space:
mode:
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.js68
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"
+ );
+});