summaryrefslogtreecommitdiffstats
path: root/browser/components/places/tests/browser/browser_library_openFlatContainer.js
diff options
context:
space:
mode:
Diffstat (limited to 'browser/components/places/tests/browser/browser_library_openFlatContainer.js')
-rw-r--r--browser/components/places/tests/browser/browser_library_openFlatContainer.js125
1 files changed, 125 insertions, 0 deletions
diff --git a/browser/components/places/tests/browser/browser_library_openFlatContainer.js b/browser/components/places/tests/browser/browser_library_openFlatContainer.js
new file mode 100644
index 0000000000..1d9cc61f2f
--- /dev/null
+++ b/browser/components/places/tests/browser/browser_library_openFlatContainer.js
@@ -0,0 +1,125 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+/**
+ * Test opening a flat container in the right pane even if its parent in the
+ * left pane is closed.
+ */
+
+var library;
+
+add_setup(async function () {
+ await PlacesUtils.bookmarks.eraseEverything();
+ await PlacesUtils.history.clear();
+
+ registerCleanupFunction(async function () {
+ await PlacesUtils.bookmarks.eraseEverything();
+ await PlacesUtils.history.clear();
+ await promiseLibraryClosed(library);
+ });
+});
+
+add_task(async function test_open_built_in_folder() {
+ let bm = await PlacesUtils.bookmarks.insert({
+ parentGuid: PlacesUtils.bookmarks.menuGuid,
+ title: "testBM",
+ url: "http://example.com/1",
+ });
+
+ library = await promiseLibrary("AllBookmarks");
+
+ library.ContentTree.view.selectItems([PlacesUtils.bookmarks.menuGuid]);
+
+ synthesizeClickOnSelectedTreeCell(library.ContentTree.view, {
+ clickCount: 2,
+ });
+
+ Assert.equal(
+ library.PlacesOrganizer._places.selectedNode.bookmarkGuid,
+ PlacesUtils.bookmarks.virtualMenuGuid,
+ "Should have the bookmarks menu selected in the left pane."
+ );
+ Assert.equal(
+ library.ContentTree.view.view.nodeForTreeIndex(0).bookmarkGuid,
+ bm.guid,
+ "Should have the expected bookmark selected in the right pane"
+ );
+});
+
+add_task(async function test_open_new_folder_in_unfiled() {
+ let bookmarks = await PlacesUtils.bookmarks.insertTree({
+ guid: PlacesUtils.bookmarks.unfiledGuid,
+ children: [
+ {
+ title: "Folder",
+ type: PlacesUtils.bookmarks.TYPE_FOLDER,
+ children: [
+ {
+ title: "Bookmark",
+ url: "http://example.com",
+ },
+ ],
+ },
+ ],
+ });
+
+ library.PlacesOrganizer.selectLeftPaneBuiltIn("UnfiledBookmarks");
+
+ // Ensure the container is closed.
+ library.PlacesOrganizer._places.selectedNode.containerOpen = false;
+
+ let folderNode = library.ContentTree.view.view.nodeForTreeIndex(0);
+ Assert.equal(
+ folderNode.bookmarkGuid,
+ bookmarks[0].guid,
+ "Found the expected folder in the right pane"
+ );
+ // Select the folder node in the right pane.
+ library.ContentTree.view.selectNode(folderNode);
+
+ synthesizeClickOnSelectedTreeCell(library.ContentTree.view, {
+ clickCount: 2,
+ });
+
+ Assert.equal(
+ library.ContentTree.view.view.nodeForTreeIndex(0).bookmarkGuid,
+ bookmarks[1].guid,
+ "Found the expected bookmark in the right pane"
+ );
+});
+
+add_task(async function test_open_history_query() {
+ const todayTitle = PlacesUtils.getString("finduri-AgeInDays-is-0");
+ await PlacesTestUtils.addVisits([
+ {
+ uri: "http://example.com",
+ title: "Whittingtons",
+ },
+ ]);
+
+ library.PlacesOrganizer.selectLeftPaneBuiltIn("History");
+
+ // Ensure the container is closed.
+ library.PlacesOrganizer._places.selectedNode.containerOpen = false;
+
+ let query = library.ContentTree.view.view.nodeForTreeIndex(0);
+ Assert.equal(query.title, todayTitle, "Should have the today query");
+
+ library.ContentTree.view.selectNode(query);
+
+ synthesizeClickOnSelectedTreeCell(library.ContentTree.view, {
+ clickCount: 2,
+ });
+
+ Assert.equal(
+ library.PlacesOrganizer._places.selectedNode.title,
+ todayTitle,
+ "Should have selected the today query in the left-pane."
+ );
+ Assert.equal(
+ library.ContentTree.view.view.nodeForTreeIndex(0).title,
+ "Whittingtons",
+ "Found the expected history item in the right pane"
+ );
+});