diff options
Diffstat (limited to 'browser/base/content/test/general/browser_bug581253.js')
-rw-r--r-- | browser/base/content/test/general/browser_bug581253.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/browser/base/content/test/general/browser_bug581253.js b/browser/base/content/test/general/browser_bug581253.js new file mode 100644 index 0000000000..677c322e15 --- /dev/null +++ b/browser/base/content/test/general/browser_bug581253.js @@ -0,0 +1,75 @@ +/* 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" + ); +}); |