From 576b66a194cbd43158362a694261c59d57cbc741 Mon Sep 17 00:00:00 2001 From: Anthony Tseng Date: Thu, 16 Feb 2017 22:04:21 +0800 Subject: [PATCH] Only remove bookmark tag when it's pinned filterOutNonRecents will do the cleanup fix #7283 Auditors: @bbondy Test Plan: Covered by automatic test --- js/state/siteUtil.js | 17 +++++++++-------- test/unit/state/siteUtilTest.js | 34 +++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 8 deletions(-) diff --git a/js/state/siteUtil.js b/js/state/siteUtil.js index 1728938b025..6ce61f951d1 100644 --- a/js/state/siteUtil.js +++ b/js/state/siteUtil.js @@ -299,25 +299,26 @@ module.exports.removeSite = function (sites, siteDetail, tag, reorder = true, sy }) }) } + let site = sites.get(key) + if (!site) { + return sites + } if (isBookmark(tag)) { + if (isPinnedTab(tags)) { + const tags = site.get('tags').filterNot((tag) => tag === siteTags.BOOKMARK) + site = site.set('tags', tags) + return sites.set(key, site) + } if (sites.size && reorder) { const order = sites.getIn([key, 'order']) sites = reorderSite(sites, order) } return sites.delete(key) } else if (isPinnedTab(tag)) { - let site = sites.get(key) - if (!site) { - return sites - } const tags = site.get('tags').filterNot((tag) => tag === siteTags.PINNED) site = site.set('tags', tags) return sites.set(key, site) } else { - let site = sites.get(key) - if (!site) { - return sites - } site = site.set('lastAccessedTime', undefined) return sites.set(key, site) } diff --git a/test/unit/state/siteUtilTest.js b/test/unit/state/siteUtilTest.js index fac41c37197..b184f7fc02b 100644 --- a/test/unit/state/siteUtilTest.js +++ b/test/unit/state/siteUtilTest.js @@ -491,6 +491,40 @@ describe('siteUtil', function () { const expectedSites = new Immutable.Map() assert.deepEqual(processedSites, expectedSites) }) + it('removes the bookmark tag when it is pinned', function () { + const siteDetail = { + tags: [siteTags.BOOKMARK, siteTags.PINNED], + location: testUrl1 + } + const expectedSites = { + 'https://brave.com/|0|0': { + tags: [siteTags.PINNED], + location: testUrl1 + } + } + const siteKey = siteUtil.getSiteKey(Immutable.fromJS(siteDetail)) + let sites = {} + sites[siteKey] = siteDetail + const processedSites = siteUtil.removeSite(Immutable.fromJS(sites), Immutable.fromJS(siteDetail), siteTags.BOOKMARK) + assert.deepEqual(processedSites.toJS(), expectedSites) + }) + it('removes the pinned tag when it is bookmarked', function () { + const siteDetail = { + tags: [siteTags.BOOKMARK, siteTags.PINNED], + location: testUrl1 + } + const expectedSites = { + 'https://brave.com/|0|0': { + tags: [siteTags.BOOKMARK], + location: testUrl1 + } + } + const siteKey = siteUtil.getSiteKey(Immutable.fromJS(siteDetail)) + let sites = {} + sites[siteKey] = siteDetail + const processedSites = siteUtil.removeSite(Immutable.fromJS(sites), Immutable.fromJS(siteDetail), siteTags.PINNED) + assert.deepEqual(processedSites.toJS(), expectedSites) + }) it('removes folder and its children', function () { let sites = {} const site1 = {