summaryrefslogtreecommitdiffstats
path: root/browser/components/urlbar/tests/unit/test_history_bookmark_results_on_search_service_failure.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/urlbar/tests/unit/test_history_bookmark_results_on_search_service_failure.js')
-rw-r--r--browser/components/urlbar/tests/unit/test_history_bookmark_results_on_search_service_failure.js116
1 files changed, 116 insertions, 0 deletions
diff --git a/browser/components/urlbar/tests/unit/test_history_bookmark_results_on_search_service_failure.js b/browser/components/urlbar/tests/unit/test_history_bookmark_results_on_search_service_failure.js
new file mode 100644
index 0000000000..32b3441f5e
--- /dev/null
+++ b/browser/components/urlbar/tests/unit/test_history_bookmark_results_on_search_service_failure.js
@@ -0,0 +1,116 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Tests history and bookmark results show up when search service
+ * initialization has failed.
+ */
+
+const { PromiseTestUtils } = ChromeUtils.importESModule(
+ "resource://testing-common/PromiseTestUtils.sys.mjs"
+);
+
+const searchService = Services.search.wrappedJSObject;
+
+add_setup(async function setup() {
+ searchService.errorToThrowInTest = "Settings";
+
+ // When search service fails, we want the promise rejection to be uncaught
+ // so we can continue running the test.
+ PromiseTestUtils.expectUncaughtRejection(
+ /Fake Settings error during search service initialization./
+ );
+
+ registerCleanupFunction(async () => {
+ searchService.errorToThrowInTest = null;
+ await cleanupPlaces();
+ });
+});
+
+add_task(
+ async function test_bookmark_results_are_shown_when_search_service_failed() {
+ Assert.equal(
+ searchService.isInitialized,
+ false,
+ "Search Service should not be initialized."
+ );
+
+ info("Add a bookmark");
+ await PlacesUtils.bookmarks.insert({
+ parentGuid: PlacesUtils.bookmarks.unfiledGuid,
+ url: "http://cat.com/",
+ title: "cat",
+ });
+
+ let context = createContext("cat", {
+ isPrivate: false,
+ allowAutofill: false,
+ });
+
+ await check_results({
+ context,
+ matches: [
+ makeVisitResult(context, {
+ uri: "http://cat/",
+ heuristic: true,
+ source: UrlbarUtils.RESULT_SOURCE.OTHER_LOCAL,
+ fallbackTitle: "http://cat/",
+ }),
+ makeBookmarkResult(context, {
+ title: "cat",
+ uri: "http://cat.com/",
+ source: UrlbarUtils.RESULT_SOURCE.BOOKMARKS,
+ }),
+ ],
+ });
+
+ Assert.equal(
+ searchService.isInitialized,
+ true,
+ "Search Service should have finished its attempt to initialize."
+ );
+
+ Assert.equal(
+ searchService.hasSuccessfullyInitialized,
+ false,
+ "Search Service should have failed to initialize."
+ );
+ await cleanupPlaces();
+ }
+);
+
+add_task(
+ async function test_history_results_are_shown_when_search_service_failed() {
+ Assert.equal(
+ searchService.isInitialized,
+ true,
+ "Search Service should have finished its attempt to initialize in the previous test."
+ );
+
+ Assert.equal(
+ searchService.hasSuccessfullyInitialized,
+ false,
+ "Search Service should have failed to initialize."
+ );
+
+ info("visit a url in history");
+ await PlacesTestUtils.addVisits({
+ uri: "http://example.com/",
+ title: "example",
+ });
+
+ let context = createContext("example", { isPrivate: false });
+ await check_results({
+ context,
+ matches: [
+ makeVisitResult(context, {
+ type: 3,
+ title: "example",
+ uri: "http://example.com/",
+ heuristic: true,
+ source: UrlbarUtils.RESULT_SOURCE.HISTORY,
+ }),
+ ],
+ });
+ }
+);