Bug 1344017 - Fix an issue where the folder picker in the edit bookmark overlay is not always be updated correctly. r=mak

MozReview-Commit-ID: 7AuIyuFWlGF

--HG--
extra : rebase_source : 6edd94299ec77a33d60b9e82be590cd6efb5d49e
This commit is contained in:
Mark Banner 2017-03-07 22:11:38 +00:00
Родитель dc19643b13
Коммит 4c7d99d9ad
4 изменённых файлов: 86 добавлений и 4 удалений

Просмотреть файл

@ -1121,8 +1121,8 @@ var gEditItemOverlay = {
onItemMoved(aItemId, aOldParent, aOldIndex,
aNewParent, aNewIndex, aItemType) {
if (!this._paneInfo.isItem ||
!this._paneInfo.visibleRows.has("folderPicker") ||
this._paneInfo.itemId != aItemOd ||
!this._paneInfo.visibleRows.has("folderRow") ||
this._paneInfo.itemId != aItemId ||
aNewParent == this._getFolderIdFromMenuList()) {
return;
}

Просмотреть файл

@ -22,6 +22,7 @@ subsuite = clipboard
subsuite = clipboard
[browser_475045.js]
[browser_555547.js]
[browser_addBookmarkForFrame.js]
[browser_bookmarklet_windowOpen.js]
support-files =
pageopeningwindow.html

Просмотреть файл

@ -0,0 +1,81 @@
/**
* 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";
function* withAddBookmarkForFrame(taskFn) {
// Open a tab and wait for all the subframes to load.
let tab = yield BrowserTestUtils.openNewForegroundTab(gBrowser, PAGE_URL);
let contentAreaContextMenu = document.getElementById("contentAreaContextMenu");
let popupShownPromise = BrowserTestUtils.waitForEvent(contentAreaContextMenu, "popupshown");
yield BrowserTestUtils.synthesizeMouseAtCenter("#left",
{ type: "contextmenu", button: 2}, gBrowser.selectedBrowser);
yield popupShownPromise;
yield withBookmarksDialog(true, function() {
let frameMenuItem = document.getElementById("frame");
frameMenuItem.click();
let bookmarkFrame = document.getElementById("context-bookmarkframe");
bookmarkFrame.click();
}, taskFn);
yield BrowserTestUtils.removeTab(tab);
}
add_task(function* test_open_add_bookmark_for_frame() {
info("Test basic opening of the add bookmark for frame dialog.");
yield withAddBookmarkForFrame(function* test(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 expectedFolderName =
PlacesUtils.getString("BookmarksMenuFolderTitle");
let folderPicker = dialogWin.document.getElementById("editBMPanel_folderMenuList");
Assert.equal(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(function* test_move_bookmark_whilst_add_bookmark_open() {
info("Test moving a bookmark whilst the add bookmark for frame dialog is open.");
yield withAddBookmarkForFrame(function* test(dialogWin) {
let bookmarksMenuFolderName = PlacesUtils.getString("BookmarksMenuFolderTitle");
let toolbarFolderName = PlacesUtils.getString("BookmarksToolbarFolderTitle");
let url = makeURI(LEFT_URL);
let folderPicker = dialogWin.document.getElementById("editBMPanel_folderMenuList");
// Check the initial state of the folder picker.
Assert.equal(folderPicker.selectedItem.label,
bookmarksMenuFolderName, "The folder is the expected one.");
// Check the bookmark has been created as expected.
let bookmark = yield PlacesUtils.bookmarks.fetch({url});
Assert.equal(bookmark.parentGuid,
PlacesUtils.bookmarks.menuGuid,
"The bookmark should be in the menuGuid folder.");
// Now move the bookmark and check the folder picker is updated correctly.
bookmark.parentGuid = PlacesUtils.bookmarks.toolbarGuid;
bookmark.index = PlacesUtils.bookmarks.DEFAULT_INDEX;
yield PlacesUtils.bookmarks.update(bookmark);
Assert.equal(folderPicker.selectedItem.label,
toolbarFolderName, "The folder picker has changed to the new folder");
});
});

Просмотреть файл

@ -3,7 +3,7 @@
<title>Framed page</title>
</head>
<frameset cols="*,*">
<frame name="left" src="frameLeft.html">
<frame name="right" src="about:mozilla">
<frame id="left" name="left" src="frameLeft.html">
<frame id="right" name="right" src="about:mozilla">
</frameset>
</html>