Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

/* Any copyright is dedicated to the Public Domain.
"use strict";
const PREF_LOAD_BOOKMARKS_IN_TABS = "browser.tabs.loadBookmarksInTabs";
var gBms;
add_setup(async function () {
gBms = await PlacesUtils.bookmarks.insertTree({
guid: PlacesUtils.bookmarks.unfiledGuid,
children: [
{
title: "bm1",
url: "about:buildconfig",
},
{
title: "bm2",
url: "about:mozilla",
},
],
});
registerCleanupFunction(async () => {
await PlacesUtils.bookmarks.eraseEverything();
});
});
add_task(async function test_open_bookmark_from_sidebar() {
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
await withSidebarTree("bookmarks", async tree => {
tree.selectItems([gBms[0].guid]);
let loadedPromise = BrowserTestUtils.browserLoaded(
gBrowser.selectedBrowser,
false,
gBms[0].url
);
tree.controller.doCommand("placesCmd_open");
await loadedPromise;
// An assert to make the test happy.
Assert.ok(true, "The bookmark was loaded successfully.");
});
await BrowserTestUtils.removeTab(tab);
});
add_task(async function test_open_bookmark_from_sidebar_keypress() {
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser);
await withSidebarTree("bookmarks", async tree => {
tree.selectItems([gBms[1].guid]);
let loadedPromise = BrowserTestUtils.browserLoaded(
gBrowser.selectedBrowser,
false,
gBms[1].url
);
tree.focus();
EventUtils.sendKey("return");
await loadedPromise;
// An assert to make the test happy.
Assert.ok(true, "The bookmark was loaded successfully.");
});
await BrowserTestUtils.removeTab(tab);
});
add_task(async function test_open_bookmark_in_tab_from_sidebar() {
await SpecialPowers.pushPrefEnv({
set: [[PREF_LOAD_BOOKMARKS_IN_TABS, true]],
});
await BrowserTestUtils.withNewTab({ gBrowser }, async () => {
await withSidebarTree("bookmarks", async tree => {
tree.selectItems([gBms[0].guid]);
let loadedPromise = BrowserTestUtils.browserLoaded(
gBrowser.selectedBrowser,
false,
gBms[0].url
);
tree.focus();
EventUtils.sendKey("return");
await loadedPromise;
Assert.ok(true, "The bookmark reused the empty tab.");
tree.selectItems([gBms[1].guid]);
let newTabPromise = BrowserTestUtils.waitForNewTab(gBrowser, gBms[1].url);
tree.focus();
EventUtils.sendKey("return");
let newTab = await newTabPromise;
Assert.ok(true, "The bookmark was opened in a new tab.");
BrowserTestUtils.removeTab(newTab);
});
});
await SpecialPowers.popPrefEnv();
});
add_task(async function test_open_bookmark_folder_from_sidebar() {
await withSidebarTree("bookmarks", async tree => {
tree.selectItems([PlacesUtils.bookmarks.virtualUnfiledGuid]);
Assert.equal(
tree.view.selection.getRangeCount(),
1,
"Should only have one range selected"
);
let loadedPromises = [];
for (let bm of gBms) {
loadedPromises.push(
BrowserTestUtils.waitForNewTab(gBrowser, bm.url, false, true)
);
}
synthesizeClickOnSelectedTreeCell(tree, { button: 1 });
let tabs = await Promise.all(loadedPromises);
for (let tab of tabs) {
await BrowserTestUtils.removeTab(tab);
}
});
});