diff --git a/e2e-test/java/org/alfresco/rest/FunctionalCasesTests.java b/e2e-test/java/org/alfresco/rest/FunctionalCasesTests.java index 4af8fc716..918971f2c 100644 --- a/e2e-test/java/org/alfresco/rest/FunctionalCasesTests.java +++ b/e2e-test/java/org/alfresco/rest/FunctionalCasesTests.java @@ -11,6 +11,7 @@ import org.alfresco.utility.model.UserModel; import org.alfresco.utility.testrail.ExecutionType; import org.alfresco.utility.testrail.annotation.TestRail; import org.springframework.http.HttpStatus; +import org.springframework.social.alfresco.api.entities.Site; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -497,4 +498,53 @@ public class FunctionalCasesTests extends RestTest comment.assertThat().field("content").is("new comment"); } + /** + * Scenario: + * 1. Add public site to favorites + * 2. Change site visibility to moderated + * 3. Check favorites + * 4. Change site visibility to private + * 5. Check favorites + */ + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, + executionType = ExecutionType.REGRESSION, + description = "Check favorite sites after a favorite site visibility is changed") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void changeFavoriteSiteVisibilityThenCheckFavorites() throws Exception + { + SiteModel favoriteSite = dataSite.usingUser(manager).createPublicRandomSite(); + UserModel regularUser = dataUser.createRandomTestUser(); + + restClient.authenticateUser(regularUser).withCoreAPI().usingAuthUser().addSiteToFavorites(favoriteSite); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + RestPersonFavoritesModelsCollection userFavoriteSites = restClient.withCoreAPI().usingAuthUser().where().targetSiteExist().getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.OK); + userFavoriteSites.assertThat().entriesListContains("targetGuid", favoriteSite.getGuid()) + .assertThat().entriesListContains("target.site.visibility", favoriteSite.getVisibility().name()) + .assertThat().entriesListContains("target.site.id", favoriteSite.getId()); + + dataSite.usingUser(manager).updateSiteVisibility(favoriteSite, Site.Visibility.MODERATED); + + userFavoriteSites = restClient.authenticateUser(regularUser).withCoreAPI().usingAuthUser().where().targetSiteExist().getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.OK); + userFavoriteSites.assertThat().entriesListContains("targetGuid", favoriteSite.getGuid()) + .assertThat().entriesListContains("target.site.visibility", "MODERATED") + .assertThat().entriesListContains("target.site.id", favoriteSite.getId()); + + dataSite.usingUser(manager).updateSiteVisibility(favoriteSite, Site.Visibility.PRIVATE); + + userFavoriteSites = restClient.authenticateUser(regularUser).withCoreAPI().usingAuthUser().where().targetSiteExist().getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.OK); + userFavoriteSites.assertThat().entriesListIsEmpty(); + + dataSite.usingUser(manager).updateSiteVisibility(favoriteSite, Site.Visibility.PUBLIC); + + userFavoriteSites = restClient.authenticateUser(regularUser).withCoreAPI().usingAuthUser().where().targetSiteExist().getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.OK); + userFavoriteSites.assertThat().entriesListContains("targetGuid", favoriteSite.getGuid()) + .assertThat().entriesListContains("target.site.visibility", favoriteSite.getVisibility().name()) + .assertThat().entriesListContains("target.site.id", favoriteSite.getId()); + } + } \ No newline at end of file