Bug 1392189 - Fix deleting bookmark tags from the Library view with Places Transactions enabled. r=mak

MozReview-Commit-ID: unNGjPpTX6

--HG--
extra : rebase_source : 21fee324ede6d516b0ae4dccc093644c2f738b8b
This commit is contained in:
Mark Banner 2017-08-23 13:40:44 +01:00
Родитель e3d5db5c9a
Коммит e83b03bdda
3 изменённых файлов: 59 добавлений и 1 удалений

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

@ -881,7 +881,7 @@ PlacesController.prototype = {
let tag = node.title;
let URIs = PlacesUtils.tagging.getURIsForTag(tag);
if (PlacesUIUtils.useAsyncTransactions) {
transactions.push(PlacesTransactions.Untag({ tag, uris: URIs }));
transactions.push(PlacesTransactions.Untag({ tag, urls: URIs }));
} else {
for (var j = 0; j < URIs.length; j++) {
let txn = new PlacesUntagURITransaction(URIs[j], [tag]);

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

@ -38,6 +38,7 @@ support-files =
[browser_history_sidebar_search.js]
[browser_library_batch_delete.js]
[browser_library_commands.js]
[browser_library_delete_tags.js]
[browser_library_downloads.js]
[browser_library_infoBox.js]
[browser_library_left_pane_fixnames.js]

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

@ -0,0 +1,57 @@
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/**
* Test enabled commands in the left pane folder of the Library.
*/
registerCleanupFunction(async function() {
await PlacesUtils.bookmarks.eraseEverything();
await PlacesTestUtils.clearHistory();
});
add_task(async function test_tags() {
const TEST_URI = Services.io.newURI("http://example.com/");
await PlacesUtils.bookmarks.insert({ type: PlacesUtils.bookmarks.TYPE_BOOKMARK,
url: TEST_URI,
title: "example page",
parentGuid: PlacesUtils.bookmarks.unfiledGuid,
index: 0 });
PlacesUtils.tagging.tagURI(TEST_URI, ["test"]);
let library = await promiseLibrary();
// Select and open the left pane "Bookmarks Toolbar" folder.
let PO = library.PlacesOrganizer;
PO.selectLeftPaneQuery("Tags");
let tagsNode = PO._places.selectedNode;
Assert.notEqual(tagsNode, null, "Should have a valid selection");
let tagsTitle = PlacesUtils.getString("TagsFolderTitle");
Assert.equal(tagsNode.title, tagsTitle,
"Should have selected the Tags node");
// Now select the tag.
PlacesUtils.asContainer(tagsNode).containerOpen = true;
let tag = tagsNode.getChild(0);
PO._places.selectNode(tag);
Assert.equal(PO._places.selectedNode.title, "test",
"Should have selected the created tag");
PO._places.controller.doCommand("cmd_delete");
await PlacesTestUtils.promiseAsyncUpdates();
let tags = PlacesUtils.tagging.getTagsForURI(TEST_URI);
Assert.equal(tags.length, 0,
"There should be no tags for the URI");
tagsNode.containerOpen = false;
library.close();
});