summaryrefslogtreecommitdiffstats
path: root/toolkit/components/search/tests/xpcshell/test_settings_none.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--toolkit/components/search/tests/xpcshell/test_settings_none.js50
1 files changed, 50 insertions, 0 deletions
diff --git a/toolkit/components/search/tests/xpcshell/test_settings_none.js b/toolkit/components/search/tests/xpcshell/test_settings_none.js
new file mode 100644
index 0000000000..14d3bb8e51
--- /dev/null
+++ b/toolkit/components/search/tests/xpcshell/test_settings_none.js
@@ -0,0 +1,50 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/*
+ * test_nosettings: Start search engine
+ * - without search.json.mozlz4
+ *
+ * Ensure that :
+ * - nothing explodes;
+ * - search.json.mozlz4 is created.
+ */
+
+add_task(async function setup() {
+ useHttpServer();
+ await AddonTestUtils.promiseStartupManager();
+});
+
+add_task(async function test_nosettings() {
+ let search = Services.search;
+
+ let afterSettingsPromise = promiseAfterSettings();
+
+ await search.init();
+
+ // Check that the settings is created at startup
+ await afterSettingsPromise;
+
+ // Check that search.json.mozlz4 has been created.
+ let settingsFile = do_get_profile().clone();
+ settingsFile.append(SETTINGS_FILENAME);
+ Assert.ok(settingsFile.exists());
+
+ await SearchTestUtils.promiseNewSearchEngine({
+ url: `${gDataUrl}engine.xml`,
+ });
+
+ info("Engine has been added, let's wait for the settings to be built");
+ await promiseAfterSettings();
+
+ info("Searching test engine in settings");
+ let settings = await promiseSettingsData();
+ let found = false;
+ for (let engine of settings.engines) {
+ if (engine._name == "Test search engine") {
+ found = true;
+ break;
+ }
+ }
+ Assert.ok(found);
+});