Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

"use strict";
const TEST_URLS = ["about:robots", "about:mozilla"];
add_task(async function bookmark_all_tabs() {
let tabs = [];
for (let url of TEST_URLS) {
tabs.push(await BrowserTestUtils.openNewForegroundTab(gBrowser, url));
}
registerCleanupFunction(async function () {
for (let tab of tabs) {
BrowserTestUtils.removeTab(tab);
}
await PlacesUtils.bookmarks.eraseEverything();
});
await withBookmarksDialog(
false,
function open() {
document.getElementById("Browser:BookmarkAllTabs").doCommand();
},
async dialog => {
let acceptBtn = dialog.document
.getElementById("bookmarkpropertiesdialog")
.getButton("accept");
Assert.ok(!acceptBtn.disabled, "Accept button is enabled");
let namepicker = dialog.document.getElementById("editBMPanel_namePicker");
Assert.ok(!namepicker.readOnly, "Name field is writable");
let folderName = dialog.document
.getElementById("stringBundle")
.getString("bookmarkAllTabsDefault");
Assert.equal(namepicker.value, folderName, "Name field is correct.");
let promiseBookmarkAdded =
PlacesTestUtils.waitForNotification("bookmark-added");
fillBookmarkTextField("editBMPanel_namePicker", "folder", dialog);
let folderPicker = dialog.document.getElementById(
"editBMPanel_folderMenuList"
);
let defaultParentGuid = await PlacesUIUtils.defaultParentGuid;
// Check the initial state of the folder picker.
await TestUtils.waitForCondition(
() => folderPicker.getAttribute("selectedGuid") == defaultParentGuid,
"The folder is the expected one."
);
EventUtils.synthesizeKey("VK_RETURN", {}, dialog);
await promiseBookmarkAdded;
for (const url of TEST_URLS) {
const { parentGuid } = await PlacesUtils.bookmarks.fetch({ url });
const folder = await PlacesUtils.bookmarks.fetch({
guid: parentGuid,
});
is(
folder.title,
"folder",
"Should have created the bookmark in the right folder."
);
}
}
);
});