Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

"use strict";
add_task(async function add_folder_default_button() {
info(
"Bug 475529 - Add is the default button for the new folder dialog + " +
"Bug 1206376 - Changing properties of a new bookmark while adding it " +
"acts on the last bookmark in the current container"
);
// Add a new bookmark at index 0 in the unfiled folder.
let insertionIndex = 0;
let newBookmark = await PlacesUtils.bookmarks.insert({
index: insertionIndex,
type: PlacesUtils.bookmarks.TYPE_BOOKMARK,
parentGuid: PlacesUtils.bookmarks.unfiledGuid,
});
await withSidebarTree("bookmarks", async function (tree) {
// Select the new bookmark in the sidebar.
tree.selectItems([newBookmark.guid]);
Assert.ok(
tree.controller.isCommandEnabled("placesCmd_new:folder"),
"'placesCmd_new:folder' on current selected node is enabled"
);
// Create a new folder. Since the new bookmark is selected, and new items
// are inserted at the index of the currently selected item, the new folder
// will be inserted at index 0.
await withBookmarksDialog(
false,
function openDialog() {
tree.controller.doCommand("placesCmd_new:folder");
},
async function test(dialogWin) {
const notifications = [
PlacesTestUtils.waitForNotification("bookmark-added", events =>
events.some(e => e.title === "n")
),
PlacesTestUtils.waitForNotification("bookmark-moved", null),
];
fillBookmarkTextField("editBMPanel_namePicker", "n", dialogWin, false);
// Confirm and close the dialog.
EventUtils.synthesizeKey("VK_RETURN", {}, dialogWin);
await Promise.all(notifications);
let newFolder = await PlacesUtils.bookmarks.fetch({
parentGuid: PlacesUtils.bookmarks.unfiledGuid,
index: insertionIndex,
});
is(newFolder.title, "n", "folder name has been edited");
let bm = await PlacesUtils.bookmarks.fetch(newBookmark.guid);
Assert.equal(
bm.index,
insertionIndex + 1,
"Bookmark should have been shifted to the next index"
);
await PlacesUtils.bookmarks.remove(newFolder);
await PlacesUtils.bookmarks.remove(newBookmark);
}
);
});
});