summaryrefslogtreecommitdiffstats
path: root/browser/components/places/tests/browser/browser_library_batch_delete.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/places/tests/browser/browser_library_batch_delete.js')
-rw-r--r--browser/components/places/tests/browser/browser_library_batch_delete.js114
1 files changed, 114 insertions, 0 deletions
diff --git a/browser/components/places/tests/browser/browser_library_batch_delete.js b/browser/components/places/tests/browser/browser_library_batch_delete.js
new file mode 100644
index 000000000..6a907c70f
--- /dev/null
+++ b/browser/components/places/tests/browser/browser_library_batch_delete.js
@@ -0,0 +1,114 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+/**
+ * Tests that Library handles correctly batch deletes.
+ */
+
+const TEST_URL = "http://www.batch.delete.me/";
+
+var gTests = [];
+var gLibrary;
+
+// ------------------------------------------------------------------------------
+
+gTests.push({
+ desc: "Create and batch remove bookmarks",
+ run: function() {
+ let testURI = makeURI(TEST_URL);
+ PlacesUtils.history.runInBatchMode({
+ runBatched: function (aUserData) {
+ // Create a folder in unserted and populate it with bookmarks.
+ let folder = PlacesUtils.bookmarks.createFolder(
+ PlacesUtils.unfiledBookmarksFolderId, "deleteme",
+ PlacesUtils.bookmarks.DEFAULT_INDEX
+ );
+ PlacesUtils.bookmarks.createFolder(
+ PlacesUtils.unfiledBookmarksFolderId, "keepme",
+ PlacesUtils.bookmarks.DEFAULT_INDEX
+ );
+ for (let i = 0; i < 10; i++) {
+ PlacesUtils.bookmarks.insertBookmark(folder,
+ testURI,
+ PlacesUtils.bookmarks.DEFAULT_INDEX,
+ "bm" + i);
+ }
+ }
+ }, null);
+
+ // Select and open the left pane "History" query.
+ let PO = gLibrary.PlacesOrganizer;
+ PO.selectLeftPaneQuery("UnfiledBookmarks");
+ isnot(PO._places.selectedNode, null, "Selected unsorted bookmarks");
+
+ let unsortedNode = PlacesUtils.asContainer(PO._places.selectedNode);
+ unsortedNode.containerOpen = true;
+ is(unsortedNode.childCount, 2, "Unsorted node has 2 children");
+ let folderNode = unsortedNode.getChild(0);
+ is(folderNode.title, "deleteme", "Folder found in unsorted bookmarks");
+ // Check delete command is available.
+ PO._places.selectNode(folderNode);
+ is(PO._places.selectedNode.title, "deleteme", "Folder node selected");
+ ok(PO._places.controller.isCommandEnabled("cmd_delete"),
+ "Delete command is enabled");
+ // Execute the delete command and check bookmark has been removed.
+ PO._places.controller.doCommand("cmd_delete");
+ ok(!PlacesUtils.bookmarks.isBookmarked(testURI),
+ "Bookmark has been correctly removed");
+ // Test live update.
+ is(unsortedNode.childCount, 1, "Unsorted node has 1 child");
+ is(PO._places.selectedNode.title, "keepme", "Folder node selected");
+ unsortedNode.containerOpen = false;
+ nextTest();
+ }
+});
+
+// ------------------------------------------------------------------------------
+
+gTests.push({
+ desc: "Ensure correct selection and functionality in Library",
+ run: function() {
+ let PO = gLibrary.PlacesOrganizer;
+ let ContentTree = gLibrary.ContentTree;
+ // Move selection forth and back.
+ PO.selectLeftPaneQuery("History");
+ PO.selectLeftPaneQuery("UnfiledBookmarks");
+ // Now select the "keepme" folder in the right pane and delete it.
+ ContentTree.view.selectNode(ContentTree.view.result.root.getChild(0));
+ is(ContentTree.view.selectedNode.title, "keepme",
+ "Found folder in content pane");
+ // Test live update.
+ PlacesUtils.bookmarks.insertBookmark(PlacesUtils.unfiledBookmarksFolderId,
+ makeURI(TEST_URL),
+ PlacesUtils.bookmarks.DEFAULT_INDEX,
+ "bm");
+ is(ContentTree.view.result.root.childCount, 2,
+ "Right pane was correctly updated");
+ nextTest();
+ }
+});
+
+// ------------------------------------------------------------------------------
+
+function test() {
+ waitForExplicitFinish();
+ registerCleanupFunction(function () {
+ PlacesUtils.bookmarks
+ .removeFolderChildren(PlacesUtils.unfiledBookmarksFolderId);
+ });
+
+ gLibrary = openLibrary(nextTest);
+}
+
+function nextTest() {
+ if (gTests.length) {
+ var test = gTests.shift();
+ info("Start of test: " + test.desc);
+ test.run();
+ }
+ else {
+ // Close Library window.
+ gLibrary.close();
+ finish();
+ }
+}