summaryrefslogtreecommitdiffstats
path: root/toolkit/components/places/tests/bookmarks/test_395593.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/places/tests/bookmarks/test_395593.js')
-rw-r--r--toolkit/components/places/tests/bookmarks/test_395593.js69
1 files changed, 69 insertions, 0 deletions
diff --git a/toolkit/components/places/tests/bookmarks/test_395593.js b/toolkit/components/places/tests/bookmarks/test_395593.js
new file mode 100644
index 000000000..46d8f5b80
--- /dev/null
+++ b/toolkit/components/places/tests/bookmarks/test_395593.js
@@ -0,0 +1,69 @@
+/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
+/* vim:set ts=2 sw=2 sts=2 et: */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+
+var bs = Cc["@mozilla.org/browser/nav-bookmarks-service;1"].
+ getService(Ci.nsINavBookmarksService);
+var hs = Cc["@mozilla.org/browser/nav-history-service;1"].
+ getService(Ci.nsINavHistoryService);
+
+function check_queries_results(aQueries, aOptions, aExpectedItemIds) {
+ var result = hs.executeQueries(aQueries, aQueries.length, aOptions);
+ var root = result.root;
+ root.containerOpen = true;
+
+ // Dump found nodes.
+ for (let i = 0; i < root.childCount; i++) {
+ dump("nodes[" + i + "]: " + root.getChild(0).title + "\n");
+ }
+
+ do_check_eq(root.childCount, aExpectedItemIds.length);
+ for (let i = 0; i < root.childCount; i++) {
+ do_check_eq(root.getChild(i).itemId, aExpectedItemIds[i]);
+ }
+
+ root.containerOpen = false;
+}
+
+// main
+function run_test() {
+ var id1 = bs.insertBookmark(bs.bookmarksMenuFolder, uri("http://foo.tld"),
+ bs.DEFAULT_INDEX, "123 0");
+ var id2 = bs.insertBookmark(bs.bookmarksMenuFolder, uri("http://foo.tld"),
+ bs.DEFAULT_INDEX, "456");
+ var id3 = bs.insertBookmark(bs.bookmarksMenuFolder, uri("http://foo.tld"),
+ bs.DEFAULT_INDEX, "123 456");
+ var id4 = bs.insertBookmark(bs.bookmarksMenuFolder, uri("http://foo.tld"),
+ bs.DEFAULT_INDEX, "789 456");
+
+ /**
+ * All of the query objects are ORed together. Within a query, all the terms
+ * are ANDed together. See nsINavHistory.idl.
+ */
+ var queries = [];
+ queries.push(hs.getNewQuery());
+ queries.push(hs.getNewQuery());
+ var options = hs.getNewQueryOptions();
+ options.queryType = Ci.nsINavHistoryQueryOptions.QUERY_TYPE_BOOKMARKS;
+
+ // Test 1
+ dump("Test searching for 123 OR 789\n");
+ queries[0].searchTerms = "123";
+ queries[1].searchTerms = "789";
+ check_queries_results(queries, options, [id1, id3, id4]);
+
+ // Test 2
+ dump("Test searching for 123 OR 456\n");
+ queries[0].searchTerms = "123";
+ queries[1].searchTerms = "456";
+ check_queries_results(queries, options, [id1, id2, id3, id4]);
+
+ // Test 3
+ dump("Test searching for 00 OR 789\n");
+ queries[0].searchTerms = "00";
+ queries[1].searchTerms = "789";
+ check_queries_results(queries, options, [id4]);
+}