/* Any copyright is dedicated to the Public Domain. * http://creativecommons.org/publicdomain/zero/1.0/ */ var testURL = "data:text/plain,nothing but plain text"; var testTag = "581253_tag"; add_task(async function test_remove_bookmark_with_tag_via_edit_bookmark() { waitForExplicitFinish(); let tab = await BrowserTestUtils.openNewForegroundTab(gBrowser); registerCleanupFunction(async function() { await PlacesUtils.bookmarks.eraseEverything(); BrowserTestUtils.removeTab(tab); await PlacesUtils.history.clear(); }); await PlacesUtils.bookmarks.insert({ parentGuid: PlacesUtils.bookmarks.unfiledGuid, title: "", url: testURL, }); Assert.ok( await PlacesUtils.bookmarks.fetch({ url: testURL }), "the test url is bookmarked" ); BrowserTestUtils.loadURI(gBrowser, testURL); await TestUtils.waitForCondition( () => BookmarkingUI.status == BookmarkingUI.STATUS_STARRED, "star button indicates that the page is bookmarked" ); PlacesUtils.tagging.tagURI(makeURI(testURL), [testTag]); let popupShownPromise = BrowserTestUtils.waitForEvent( StarUI.panel, "popupshown" ); BookmarkingUI.star.click(); await popupShownPromise; let tagsField = document.getElementById("editBMPanel_tagsField"); Assert.ok(tagsField.value == testTag, "tags field value was set"); tagsField.focus(); let popupHiddenPromise = BrowserTestUtils.waitForEvent( StarUI.panel, "popuphidden" ); let removeNotification = PlacesTestUtils.waitForNotification( "bookmark-removed", events => events.some(event => unescape(event.url) == testURL), "places" ); let removeButton = document.getElementById("editBookmarkPanelRemoveButton"); removeButton.click(); await popupHiddenPromise; await removeNotification; is( BookmarkingUI.status, BookmarkingUI.STATUS_UNSTARRED, "star button indicates that the bookmark has been removed" ); });