1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
/**
* Tests that the add bookmark for frame dialog functions correctly.
*/
const BASE_URL =
"http://mochi.test:8888/browser/browser/components/places/tests/browser";
const PAGE_URL = BASE_URL + "/framedPage.html";
const LEFT_URL = BASE_URL + "/frameLeft.html";
const RIGHT_URL = BASE_URL + "/frameRight.html";
async function withAddBookmarkForFrame(taskFn) {
// Open a tab and wait for all the subframes to load.
let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser, PAGE_URL);
let contentAreaContextMenu = document.getElementById(
"contentAreaContextMenu"
);
let popupShownPromise = BrowserTestUtils.waitForEvent(
contentAreaContextMenu,
"popupshown"
);
await BrowserTestUtils.synthesizeMouseAtCenter(
"#left",
{ type: "contextmenu", button: 2 },
gBrowser.selectedBrowser
);
await popupShownPromise;
await withBookmarksDialog(
true,
function() {
let frameMenuItem = document.getElementById("frame");
frameMenuItem.click();
let bookmarkFrame = document.getElementById("context-bookmarkframe");
bookmarkFrame.click();
},
taskFn
);
BrowserTestUtils.removeTab(tab);
}
add_task(async function test_open_add_bookmark_for_frame() {
info("Test basic opening of the add bookmark for frame dialog.");
await withAddBookmarkForFrame(async dialogWin => {
let namepicker = dialogWin.document.getElementById(
"editBMPanel_namePicker"
);
Assert.ok(!namepicker.readOnly, "Name field is writable");
Assert.equal(namepicker.value, "Left frame", "Name field is correct.");
let expectedFolder = gBookmarksToolbar2h2020
? "BookmarksToolbarFolderTitle"
: "OtherBookmarksFolderTitle";
let expectedFolderName = PlacesUtils.getString(expectedFolder);
let folderPicker = dialogWin.document.getElementById(
"editBMPanel_folderMenuList"
);
await BrowserTestUtils.waitForCondition(
() => folderPicker.selectedItem.label == expectedFolderName,
"The folder is the expected one."
);
let tagsField = dialogWin.document.getElementById("editBMPanel_tagsField");
Assert.equal(tagsField.value, "", "The tags field should be empty");
});
});
add_task(async function test_move_bookmark_whilst_add_bookmark_open() {
info(
"Test moving a bookmark whilst the add bookmark for frame dialog is open."
);
await withAddBookmarkForFrame(async dialogWin => {
let expectedGuid = await PlacesUIUtils.defaultParentGuid;
let expectedFolder = gBookmarksToolbar2h2020
? "BookmarksToolbarFolderTitle"
: "OtherBookmarksFolderTitle";
let expectedFolderName = PlacesUtils.getString(expectedFolder);
let bookmarksMenuFolderName = PlacesUtils.getString(
"BookmarksMenuFolderTitle"
);
let url = makeURI(LEFT_URL);
let folderPicker = dialogWin.document.getElementById(
"editBMPanel_folderMenuList"
);
// Check the initial state of the folder picker.
await BrowserTestUtils.waitForCondition(
() => folderPicker.selectedItem.label == expectedFolderName,
"The folder is the expected one."
);
// Check the bookmark has been created as expected.
let bookmark = await PlacesUtils.bookmarks.fetch({ url });
Assert.equal(
bookmark.parentGuid,
expectedGuid,
"The bookmark should be in the expected folder."
);
// Now move the bookmark and check the folder picker is updated correctly.
bookmark.parentGuid = PlacesUtils.bookmarks.menuGuid;
bookmark.index = PlacesUtils.bookmarks.DEFAULT_INDEX;
await PlacesUtils.bookmarks.update(bookmark);
await BrowserTestUtils.waitForCondition(
() => folderPicker.selectedItem.label == bookmarksMenuFolderName,
"The folder picker has changed to the new folder"
);
});
});
|