summaryrefslogtreecommitdiffstats
path: root/toolkit/components/search/tests/xpcshell/test_nocache.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/search/tests/xpcshell/test_nocache.js')
-rw-r--r--toolkit/components/search/tests/xpcshell/test_nocache.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/toolkit/components/search/tests/xpcshell/test_nocache.js b/toolkit/components/search/tests/xpcshell/test_nocache.js
new file mode 100644
index 000000000..42776aef0
--- /dev/null
+++ b/toolkit/components/search/tests/xpcshell/test_nocache.js
@@ -0,0 +1,60 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/*
+ * test_nocache: Start search engine
+ * - without search.json.mozlz4
+ *
+ * Ensure that :
+ * - nothing explodes;
+ * - search.json.mozlz4 is created.
+ */
+
+function run_test()
+{
+ removeCacheFile();
+ updateAppInfo();
+ do_load_manifest("data/chrome.manifest");
+ useHttpServer();
+
+ run_next_test();
+}
+
+add_task(function* test_nocache() {
+ let search = Services.search;
+
+ let afterCachePromise = promiseAfterCache();
+
+ yield new Promise((resolve, reject) => search.init(rv => {
+ Components.isSuccessCode(rv) ? resolve() : reject();
+ }));
+
+ // Check that the cache is created at startup
+ yield afterCachePromise;
+
+ // Check that search.json has been created.
+ let cacheFile = gProfD.clone();
+ cacheFile.append(CACHE_FILENAME);
+ do_check_true(cacheFile.exists());
+
+ // Add engine and wait for cache update
+ yield addTestEngines([
+ { name: "Test search engine", xmlFileName: "engine.xml" },
+ ]);
+
+ do_print("Engine has been added, let's wait for the cache to be built");
+ yield promiseAfterCache();
+
+ do_print("Searching test engine in cache");
+ let cache = yield promiseCacheData();
+ let found = false;
+ for (let engine of cache.engines) {
+ if (engine._shortName == "test-search-engine") {
+ found = true;
+ break;
+ }
+ }
+ do_check_true(found);
+
+ removeCacheFile();
+});