diff --git a/portal/portal-service-impl/impl/src/java/org/sakaiproject/portal/service/PortalServiceImpl.java b/portal/portal-service-impl/impl/src/java/org/sakaiproject/portal/service/PortalServiceImpl.java index 64578bece954..7d74fe2f6644 100644 --- a/portal/portal-service-impl/impl/src/java/org/sakaiproject/portal/service/PortalServiceImpl.java +++ b/portal/portal-service-impl/impl/src/java/org/sakaiproject/portal/service/PortalServiceImpl.java @@ -1061,9 +1061,8 @@ public void syncUserSitesWithPortalNav(final String userId) { sitesToPin.remove(id); }); - // remove unpinned and recent sites as they should not be pinned + // remove unpinned as they should not be pinned sitesToPin.removeAll(unPinnedSites); - sitesToPin.removeAll(recentSites); // any remaining sites should be auto pinned savePinnedSites(userId, new ArrayList<>(sitesToPin)); diff --git a/portal/portal-service-impl/impl/src/test/org/sakaiproject/portal/service/PortalServiceTests.java b/portal/portal-service-impl/impl/src/test/org/sakaiproject/portal/service/PortalServiceTests.java index 943249e6097e..e4b8914598ec 100644 --- a/portal/portal-service-impl/impl/src/test/org/sakaiproject/portal/service/PortalServiceTests.java +++ b/portal/portal-service-impl/impl/src/test/org/sakaiproject/portal/service/PortalServiceTests.java @@ -403,10 +403,24 @@ public void testRecentlyUnpinned() { // simulate another login ((Observer) portalService).update(null, event); - // should be no change to sites pinned, unpinned, or recent + // no change after login, results in 0 pinned, 4 unpinned, 3 recent Assert.assertEquals(0, portalService.getPinnedSites(user1).size()); Assert.assertEquals(4, portalService.getUnpinnedSites(user1).size()); Assert.assertEquals(3, portalService.getRecentSites(user1).size()); + + // re pin site3, results in 1 pinned, 3 unpinned, 3 recent + portalService.addPinnedSite(user1, "site3", true); + Assert.assertEquals(1, portalService.getPinnedSites(user1).size()); + Assert.assertEquals(3, portalService.getUnpinnedSites(user1).size()); + Assert.assertEquals(3, portalService.getRecentSites(user1).size()); + + // simulate another login + ((Observer) portalService).update(null, event); + + // no change after login, results in 1 pinned, 3 unpinned, 3 recent + Assert.assertEquals(1, portalService.getPinnedSites(user1).size()); + Assert.assertEquals(3, portalService.getUnpinnedSites(user1).size()); + Assert.assertEquals(3, portalService.getRecentSites(user1).size()); } @Test