summaryrefslogtreecommitdiffstats
path: root/toolkit/components/places/tests/unit/test_broken_folderShortcut_result.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/places/tests/unit/test_broken_folderShortcut_result.js')
-rw-r--r--toolkit/components/places/tests/unit/test_broken_folderShortcut_result.js79
1 files changed, 79 insertions, 0 deletions
diff --git a/toolkit/components/places/tests/unit/test_broken_folderShortcut_result.js b/toolkit/components/places/tests/unit/test_broken_folderShortcut_result.js
new file mode 100644
index 000000000..b67e141e6
--- /dev/null
+++ b/toolkit/components/places/tests/unit/test_broken_folderShortcut_result.js
@@ -0,0 +1,79 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+function run_test()
+{
+ run_next_test();
+}
+
+add_task(function* test_execute()
+{
+ PlacesUtils.bookmarks.insertBookmark(
+ PlacesUtils.unfiledBookmarksFolderId, NetUtil.newURI("http://1.moz.org/"),
+ PlacesUtils.bookmarks.DEFAULT_INDEX, "Bookmark 1"
+ );
+ let id1 = PlacesUtils.bookmarks.insertBookmark(
+ PlacesUtils.unfiledBookmarksFolderId, NetUtil.newURI("place:folder=1234"),
+ PlacesUtils.bookmarks.DEFAULT_INDEX, "Shortcut 1"
+ );
+ let id2 = PlacesUtils.bookmarks.insertBookmark(
+ PlacesUtils.unfiledBookmarksFolderId, NetUtil.newURI("place:folder=-1"),
+ PlacesUtils.bookmarks.DEFAULT_INDEX, "Shortcut 2"
+ );
+ PlacesUtils.bookmarks.insertBookmark(
+ PlacesUtils.unfiledBookmarksFolderId, NetUtil.newURI("http://2.moz.org/"),
+ PlacesUtils.bookmarks.DEFAULT_INDEX, "Bookmark 2"
+ );
+
+ // Add also a simple visit.
+ yield PlacesTestUtils.addVisits(uri(("http://3.moz.org/")));
+
+ // Query containing a broken folder shortcuts among results.
+ let query = PlacesUtils.history.getNewQuery();
+ query.setFolders([PlacesUtils.unfiledBookmarksFolderId], 1);
+ let options = PlacesUtils.history.getNewQueryOptions();
+ let root = PlacesUtils.history.executeQuery(query, options).root;
+ root.containerOpen = true;
+
+ do_check_eq(root.childCount, 4);
+
+ let shortcut = root.getChild(1);
+ do_check_eq(shortcut.uri, "place:folder=1234");
+ PlacesUtils.asContainer(shortcut);
+ shortcut.containerOpen = true;
+ do_check_eq(shortcut.childCount, 0);
+ shortcut.containerOpen = false;
+ // Remove the broken shortcut while the containing result is open.
+ PlacesUtils.bookmarks.removeItem(id1);
+ do_check_eq(root.childCount, 3);
+
+ shortcut = root.getChild(1);
+ do_check_eq(shortcut.uri, "place:folder=-1");
+ PlacesUtils.asContainer(shortcut);
+ shortcut.containerOpen = true;
+ do_check_eq(shortcut.childCount, 0);
+ shortcut.containerOpen = false;
+ // Remove the broken shortcut while the containing result is open.
+ PlacesUtils.bookmarks.removeItem(id2);
+ do_check_eq(root.childCount, 2);
+
+ root.containerOpen = false;
+
+ // Broken folder shortcut as root node.
+ query = PlacesUtils.history.getNewQuery();
+ query.setFolders([1234], 1);
+ options = PlacesUtils.history.getNewQueryOptions();
+ root = PlacesUtils.history.executeQuery(query, options).root;
+ root.containerOpen = true;
+ do_check_eq(root.childCount, 0);
+ root.containerOpen = false;
+
+ // Broken folder shortcut as root node with folder=-1.
+ query = PlacesUtils.history.getNewQuery();
+ query.setFolders([-1], 1);
+ options = PlacesUtils.history.getNewQueryOptions();
+ root = PlacesUtils.history.executeQuery(query, options).root;
+ root.containerOpen = true;
+ do_check_eq(root.childCount, 0);
+ root.containerOpen = false;
+});