From 4334ee217197eed3890622bbbb1ea1f5daa1c6ab Mon Sep 17 00:00:00 2001 From: Andrei Rusu Date: Thu, 5 Jan 2017 11:40:44 +0200 Subject: [PATCH 01/65] added tests for postComments updated unauthenticatedUserIsNotAbleToAddComments test from AddCommentsSanityTests --- .../rest/comments/AddCommentsCoreTests.java | 156 ++++++++++++++++++ .../rest/comments/AddCommentsSanityTests.java | 3 +- 2 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 e2e-test/java/org/alfresco/rest/comments/AddCommentsCoreTests.java diff --git a/e2e-test/java/org/alfresco/rest/comments/AddCommentsCoreTests.java b/e2e-test/java/org/alfresco/rest/comments/AddCommentsCoreTests.java new file mode 100644 index 000000000..f86866213 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/comments/AddCommentsCoreTests.java @@ -0,0 +1,156 @@ +package org.alfresco.rest.comments; + +import org.alfresco.dataprep.CMISUtil.DocumentType; +import org.alfresco.rest.RestTest; +import org.alfresco.rest.core.JsonBodyGenerator; +import org.alfresco.rest.core.RestRequest; +import org.alfresco.rest.model.RestCommentModel; +import org.alfresco.rest.model.RestCommentModelsCollection; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.data.DataUser; +import org.alfresco.utility.model.FileModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.apache.commons.lang.RandomStringUtils; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +/** + * Created by Andrei Rusu + */ +public class AddCommentsCoreTests extends RestTest +{ + private UserModel adminUserModel; + private FileModel document; + private SiteModel siteModel; + private DataUser.ListUserWithRoles usersWithRoles; + private String comment = "This is a new comment"; + private String comment2 = "This is the second comment"; + private RestCommentModelsCollection comments; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUserModel = dataUser.getAdminUser(); + restClient.authenticateUser(adminUserModel); + siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); + + usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Using Manager user verify that you can provide a large string for one comment") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) + public void addLongCommentWithManagerAndCheckThatCommentIsReturned() throws Exception + { + document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + String longString = RandomStringUtils.randomAlphanumeric(10000); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingResource(document).addComment(longString); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(document).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", longString); + comments.assertThat().paginationField("totalItems").is("1"); + comments.assertThat().paginationField("count").is("1"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Using Contributor user verify that you can provide a short string for one comment") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) + public void addShortCommentWithContributorAndCheckThatCommentIsReturned() throws Exception + { + document = dataContent.usingSite(siteModel).usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).createContent(DocumentType.TEXT_PLAIN); + String shortString = RandomStringUtils.randomAlphanumeric(2); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)) + .withCoreAPI().usingResource(document).addComment(shortString); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(document).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", shortString); + comments.assertThat().paginationField("totalItems").is("1"); + comments.assertThat().paginationField("count").is("1"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Using Collaborator user verify that you can provide a string with special characters for one comment") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) + public void addCommentWithSpecialCharsWithCollaboratorCheckCommentIsReturned() throws Exception + { + document = dataContent.usingSite(siteModel).usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).createContent(DocumentType.TEXT_PLAIN); + String specialCharsString = "!@#$%^&*()_+♂µΓyádo«√<╡┌6£"; + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingResource(document).addComment(specialCharsString); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(document).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", specialCharsString); + comments.assertThat().paginationField("totalItems").is("1"); + comments.assertThat().paginationField("count").is("1"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Using Manager user verify that you can not provide an empty string for one comment") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) + public void addEmptyStringCommentWithManagerCheckCommentIsReturned() throws Exception + { + document = dataContent.usingSite(siteModel).usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).createContent(DocumentType.TEXT_PLAIN); + String emptyString = ""; + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingResource(document).addComment(emptyString); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(RestErrorModel.NON_NULL_COMMENT); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Using Collaborator user verify that you can provide several comments in one request") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) + public void addSeveralCommentsWithCollaboratorCheckCommentsAreReturned() throws Exception + { + document = dataContent.usingSite(siteModel).usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).createContent(DocumentType.TEXT_PLAIN); + String charString = RandomStringUtils.randomAlphanumeric(10); + String charString1 = RandomStringUtils.randomAlphanumeric(10); + String charString2 = RandomStringUtils.randomAlphanumeric(10); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingResource(document).addComments(comment, comment2, charString, charString1, charString2); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(document).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", comment); + comments.assertThat().paginationField("totalItems").is("5"); + comments.assertThat().paginationField("count").is("5"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Provide invalid request body parameter and check default error model schema") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) + public void invalidRequestBodyParamenerCheckErrorModelSchema() throws Exception + { + document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + restClient.authenticateUser(adminUserModel).withCoreAPI(); + String postBody = JsonBodyGenerator.keyValueJson("content2", comment); + RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, postBody, "nodes/{nodeId}/comments", document.getNodeRef()); + restClient.processModel(RestCommentModel.class, request); + + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST); + restClient.assertLastError().getErrorKey().contains("Unrecognized field \"content2\""); + restClient.assertLastError().containsSummary("Unrecognized field \"content2\""); + restClient.assertLastError().getDescriptionURL().contains("https://api-explorer.alfresco.com"); + restClient.assertLastError().getStackTrace().contains("For security reasons the stack trace is no longer displayed, but the property is kept for previous versions"); + } +} diff --git a/e2e-test/java/org/alfresco/rest/comments/AddCommentsSanityTests.java b/e2e-test/java/org/alfresco/rest/comments/AddCommentsSanityTests.java index da6615e43..cc6838009 100644 --- a/e2e-test/java/org/alfresco/rest/comments/AddCommentsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/AddCommentsSanityTests.java @@ -115,10 +115,9 @@ public class AddCommentsSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.COMMENTS }, executionType = ExecutionType.SANITY, description = "Verify unauthenticated user gets status code 401 on post multiple comments call") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.SANITY }) - @Bug(id="MNT-16904") public void unauthenticatedUserIsNotAbleToAddComments() throws JsonToModelConversionException, Exception { - restClient.authenticateUser(new UserModel("random user", "random password")) + restClient.noAuthentication() .withCoreAPI().usingResource(document).addComments(comment1, comment2); restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } From 199604f81ed5dae2fac66fc8de228fdafaa7dc27 Mon Sep 17 00:00:00 2001 From: mionescu Date: Mon, 9 Jan 2017 15:50:17 +0200 Subject: [PATCH 02/65] test - updated tests from class: DeleteFavoriteSanityTests --- ...ts.java => DeleteFavoriteSanityTests.java} | 129 +++++++----------- 1 file changed, 53 insertions(+), 76 deletions(-) rename e2e-test/java/org/alfresco/rest/favorites/{DeleteFavoritesSanityTests.java => DeleteFavoriteSanityTests.java} (67%) diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoritesSanityTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java similarity index 67% rename from e2e-test/java/org/alfresco/rest/favorites/DeleteFavoritesSanityTests.java rename to e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java index 2503d7c7a..dc6e83ae2 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoritesSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java @@ -15,7 +15,7 @@ import org.springframework.http.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -public class DeleteFavoritesSanityTests extends RestTest +public class DeleteFavoriteSanityTests extends RestTest { private UserModel adminUserModel; private SiteModel siteModel; @@ -28,7 +28,7 @@ public class DeleteFavoritesSanityTests extends RestTest siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); siteModel.setGuid(restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(siteModel).getSite().getGuid()); - + usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor); } @@ -36,54 +36,58 @@ public class DeleteFavoritesSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, description = "Verify Admin user deletes site from favorites with Rest API and status code is 204") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) - public void adminIsAbleToDeleteFavorites() throws JsonToModelConversionException, Exception + public void adminIsAbleToDeleteFavorite() throws JsonToModelConversionException, Exception { restClient.withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(siteModel); restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); + } + + @Bug(id="MNT-16557") + @TestRail(section = { TestGroup.REST_API,TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, + description = "Verify user doesn't have permission to delete favorites of admin user with Rest API and status code is 404") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) + public void userIsNotAbleToDeleteFavoriteOfAdminUser() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)) + .withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel) + .assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError() + .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); } + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, + description = "Verify manager user gets status code 401 if authentication call fails") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) + public void managerIsNotAbleToDeleteFavoriteIfAuthenticationFails() throws JsonToModelConversionException, Exception + { + UserModel siteManager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager); + siteManager.setPassword("wrongPassword"); + restClient.authenticateUser(siteManager).withCoreAPI().usingAuthUser() + .deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.UNAUTHORIZED) + .assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); + } + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, description = "Verify Manager user deletes site from favorites with Rest API and status code is 204") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) - public void managerIsAbleToDeleteFavorites() throws JsonToModelConversionException, Exception + public void managerIsAbleToDeleteFavorite() throws JsonToModelConversionException, Exception { UserModel siteManager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager); restClient.authenticateUser(siteManager).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); - } - - @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, - description = "Verify Collaborator user deletes site from favorites with Rest API and status code is 204") - @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) - public void collaboratorIsAbleToDeleteFavorites() throws JsonToModelConversionException, Exception - { - UserModel siteCollaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator); - restClient.authenticateUser(siteCollaborator).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); - - restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); - restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); - } - - @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, - description = "Verify Contributor user deletes site from favorites with Rest API and status code is 204") - @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) - public void contributorIsAbleToDeleteFavorites() throws JsonToModelConversionException, Exception - { - UserModel siteContributor = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor); - restClient.authenticateUser(siteContributor).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); - - restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); - restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); - } - + } + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, description = "Verify Consumer user delets site from favorites with Rest API and status code is 204") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) - public void consumerIsAbleToDeleteFavorites() throws JsonToModelConversionException, Exception + public void consumerIsAbleToDeleteFavorite() throws JsonToModelConversionException, Exception { UserModel siteConsumer = usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer); restClient.authenticateUser(siteConsumer).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); @@ -91,56 +95,29 @@ public class DeleteFavoritesSanityTests extends RestTest restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); } - - @Bug(id="MNT-16557") + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, - description = "Verify user doesn't have permission to delete favorites of another user with Rest API and status code is 404") + description = "Verify Contributor user deletes site from favorites with Rest API and status code is 204") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) - public void userIsNotAbleToDeleteFavoritesOfAnotherUser() throws JsonToModelConversionException, Exception + public void contributorIsAbleToDeleteFavorite() throws JsonToModelConversionException, Exception + { + UserModel siteContributor = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor); + restClient.authenticateUser(siteContributor).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + + restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); + restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, + description = "Verify Collaborator user deletes site from favorites with Rest API and status code is 204") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) + public void collaboratorIsAbleToDeleteFavorite() throws JsonToModelConversionException, Exception { UserModel siteCollaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator); restClient.authenticateUser(siteCollaborator).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI() - .usingAuthUser().deleteSiteFromFavorites(siteModel) - .assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); - } - - @Bug(id="MNT-16557") - @TestRail(section = { TestGroup.REST_API,TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, - description = "Verify user doesn't have permission to delete favorites of admin user with Rest API and status code is 404") - @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) - public void userIsNotAbleToDeleteFavoritesOfAdminUser() throws JsonToModelConversionException, Exception - { - restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)) - .withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel) - .assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); - } - - @Bug(id="MNT-16557") - @TestRail(section = { TestGroup.REST_API,TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, - description = "Verify admin user doesn't have permission to delete favorites of another user with Rest API and status code is 404") - @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) - public void adminIsNotAbleToDeleteFavoritesOfAnotherUser() throws JsonToModelConversionException, Exception - { - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) - .withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); - - restClient.authenticateUser(adminUserModel) - .withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel) - .assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); - } - - @Bug(id = "MNT-16904") - @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, - description = "Verify user gets status code 401 if authentication call fails") - @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) - public void userIsNotAbleToDeleteFavoritesIfAuthenticationFails() throws JsonToModelConversionException, Exception - { - UserModel siteManager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager); - siteManager.setPassword("wrongPassword"); - restClient.authenticateUser(siteManager).withCoreAPI().usingAuthUser() - .deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.UNAUTHORIZED); + restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); + restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); } + } From 35ed0e04afc193ec4f93b6c7b0c08141ad49bd3d Mon Sep 17 00:00:00 2001 From: mionescu Date: Mon, 9 Jan 2017 15:55:43 +0200 Subject: [PATCH 03/65] test- added new test cases - deleteFavorite- CORE --- .../favorites/DeleteFavoriteCoreTests.java | 161 ++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java new file mode 100644 index 000000000..3c61a76a6 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java @@ -0,0 +1,161 @@ +package org.alfresco.rest.favorites; + +import org.alfresco.dataprep.CMISUtil.DocumentType; +import org.alfresco.rest.RestTest; +import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.data.DataUser.ListUserWithRoles; +import org.alfresco.utility.model.FileModel; +import org.alfresco.utility.model.FolderModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class DeleteFavoriteCoreTests extends RestTest +{ + private UserModel adminUserModel; + private SiteModel siteModel; + private ListUserWithRoles usersWithRoles; + private FileModel fileModel; + private FolderModel folderModel; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUserModel = dataUser.getAdminUser(); + + siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); + siteModel.setGuid(restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(siteModel).getSite().getGuid()); + + fileModel = dataContent.usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN); + folderModel = dataContent.usingSite(siteModel).usingUser(adminUserModel).createFolder(); + + usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, + UserRole.SiteContributor); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify that status code is 404 if PersonID is incorrect - favorite file.") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE}) + public void deleteFavoriteIfPersonIdNotExists() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(siteModel); + restClient.withCoreAPI().usingAuthUser().addFileToFavorites(fileModel); + + restClient.withCoreAPI().usingUser(new UserModel("inexistent", "inexistent")) + .deleteFileFromFavorites(fileModel).assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "inexistent")); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify that status code is 404 if FavoriteID is incorrect - favorite file.") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE}) + public void deleteFavoriteFileIfFavoriteIdIsIncorrect() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addFileToFavorites(fileModel); + + fileModel.setNodeRef("wrongFavoriteId"); + restClient.withCoreAPI().usingAuthUser() + .deleteFileFromFavorites(fileModel).assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "wrongFavoriteId")); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify that status code is 404 if FavoriteID is incorrect - favorite file.") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE}) + public void deleteFavoriteFileIfFavoriteIdNotExists() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addFileToFavorites(fileModel); + FileModel inexistentDocument = new FileModel(); + inexistentDocument.setNodeRef("inexistent"); + + restClient.withCoreAPI().usingAuthUser() + .deleteFileFromFavorites(inexistentDocument).assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "inexistent")); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify that status code is 404 if FavoriteID is incorrect - favorite site.") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE}) + public void deleteFavoriteIfFavoriteIdNotExists() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(siteModel); + siteModel.setGuid("wrongFavoriteId"); + + restClient.withCoreAPI().usingAuthUser() + .deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "wrongFavoriteId")); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify that status code is 404 if FavoriteID is incorrect - favorite folder.") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE}) + public void deleteFavoriteFolderIfFavoriteIdNotExists() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(siteModel); + restClient.withCoreAPI().usingAuthUser().addFolderToFavorites(folderModel); + + folderModel.setNodeRef("wrongFavoriteId"); + restClient.withCoreAPI().usingAuthUser() + .deleteFolderFromFavorites(folderModel).assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "wrongFavoriteId")); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify user removes a site from favorites using '-me-' in place of personId with Rest API and response is successful (204)") + public void deleteFavoriteSiteWithSuccessUsingMeAsPersonId() throws Exception + { + siteModel.setGuid(restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(siteModel).getSite().getGuid()); + restClient.withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(siteModel); + + restClient.withCoreAPI().usingMe().deleteSiteFromFavorites(siteModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + } + + @Bug(id="MNT-16557") + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify user doesn't have permission to delete favorites of another user with Rest API and status code is 404") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE }) + public void collaboratorIsNotAbleToDeleteFavoriteOfAnotherUser() throws JsonToModelConversionException, Exception + { + UserModel siteCollaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator); + restClient.authenticateUser(siteCollaborator).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI() + .usingAuthUser().deleteSiteFromFavorites(siteModel) + .assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError() + .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } + + @Bug(id="MNT-16557") + @TestRail(section = { TestGroup.REST_API,TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify admin user doesn't have permission to delete favorites of another user with Rest API and status code is 404") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE }) + public void adminIsNotAbleToDeleteFavoriteOfAnotherUser() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + + restClient.authenticateUser(adminUserModel) + .withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel) + .assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError() + .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } + + + +} From 0444372514987ae8805c9c9db7a4be5f4633f7d2 Mon Sep 17 00:00:00 2001 From: Andrei Rusu Date: Mon, 9 Jan 2017 18:22:18 +0200 Subject: [PATCH 04/65] made changes to AddCommentsFullTests --- ...reTests.java => AddCommentsFullTests.java} | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) rename e2e-test/java/org/alfresco/rest/comments/{AddCommentsCoreTests.java => AddCommentsFullTests.java} (83%) diff --git a/e2e-test/java/org/alfresco/rest/comments/AddCommentsCoreTests.java b/e2e-test/java/org/alfresco/rest/comments/AddCommentsFullTests.java similarity index 83% rename from e2e-test/java/org/alfresco/rest/comments/AddCommentsCoreTests.java rename to e2e-test/java/org/alfresco/rest/comments/AddCommentsFullTests.java index f86866213..c85085850 100644 --- a/e2e-test/java/org/alfresco/rest/comments/AddCommentsCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/AddCommentsFullTests.java @@ -24,7 +24,7 @@ import org.testng.annotations.Test; /** * Created by Andrei Rusu */ -public class AddCommentsCoreTests extends RestTest +public class AddCommentsFullTests extends RestTest { private UserModel adminUserModel; private FileModel document; @@ -39,14 +39,13 @@ public class AddCommentsCoreTests extends RestTest { adminUserModel = dataUser.getAdminUser(); restClient.authenticateUser(adminUserModel); - siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); - + siteModel = dataSite.usingUser(adminUserModel).createPrivateRandomSite(); usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor); } - @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, description= "Using Manager user verify that you can provide a large string for one comment") - @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addLongCommentWithManagerAndCheckThatCommentIsReturned() throws Exception { document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); @@ -63,15 +62,15 @@ public class AddCommentsCoreTests extends RestTest comments.assertThat().paginationField("count").is("1"); } - @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, - description= "Using Contributor user verify that you can provide a short string for one comment") - @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) - public void addShortCommentWithContributorAndCheckThatCommentIsReturned() throws Exception + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Using Manager user verify that you can provide a short string for one comment") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void addShortCommentWithManagerAndCheckThatCommentIsReturned() throws Exception { - document = dataContent.usingSite(siteModel).usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).createContent(DocumentType.TEXT_PLAIN); + document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); String shortString = RandomStringUtils.randomAlphanumeric(2); - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)) + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) .withCoreAPI().usingResource(document).addComment(shortString); restClient.assertStatusCodeIs(HttpStatus.CREATED); @@ -82,12 +81,12 @@ public class AddCommentsCoreTests extends RestTest comments.assertThat().paginationField("count").is("1"); } - @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, description= "Using Collaborator user verify that you can provide a string with special characters for one comment") - @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addCommentWithSpecialCharsWithCollaboratorCheckCommentIsReturned() throws Exception { - document = dataContent.usingSite(siteModel).usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).createContent(DocumentType.TEXT_PLAIN); + document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); String specialCharsString = "!@#$%^&*()_+♂µΓyádo«√<╡┌6£"; restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) @@ -101,12 +100,12 @@ public class AddCommentsCoreTests extends RestTest comments.assertThat().paginationField("count").is("1"); } - @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, description= "Using Manager user verify that you can not provide an empty string for one comment") - @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addEmptyStringCommentWithManagerCheckCommentIsReturned() throws Exception { - document = dataContent.usingSite(siteModel).usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).createContent(DocumentType.TEXT_PLAIN); + document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); String emptyString = ""; restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) @@ -114,12 +113,12 @@ public class AddCommentsCoreTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(RestErrorModel.NON_NULL_COMMENT); } - @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, description= "Using Collaborator user verify that you can provide several comments in one request") - @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addSeveralCommentsWithCollaboratorCheckCommentsAreReturned() throws Exception { - document = dataContent.usingSite(siteModel).usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).createContent(DocumentType.TEXT_PLAIN); + document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); String charString = RandomStringUtils.randomAlphanumeric(10); String charString1 = RandomStringUtils.randomAlphanumeric(10); String charString2 = RandomStringUtils.randomAlphanumeric(10); @@ -135,10 +134,10 @@ public class AddCommentsCoreTests extends RestTest comments.assertThat().paginationField("count").is("5"); } - @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, description= "Provide invalid request body parameter and check default error model schema") - @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) - public void invalidRequestBodyParamenerCheckErrorModelSchema() throws Exception + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void invalidRequestBodyParameterCheckErrorModelSchema() throws Exception { document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); From 91f01d21891548ad5434574143091eaf2da1c6c8 Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Mon, 9 Jan 2017 19:30:47 +0200 Subject: [PATCH 05/65] TAS-2613 TAS-2623 added full tests for GetPeopleActivities --- .../people/GetPeopleActivitiesFullTests.java | 71 +++++++++++++++++++ .../rest/people/GetPeopleCoreTests.java | 1 - 2 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java new file mode 100644 index 000000000..a19c049d1 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java @@ -0,0 +1,71 @@ +package org.alfresco.rest.people; + +import org.alfresco.dataprep.CMISUtil.DocumentType; +import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestActivityModelsCollection; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestSiteModelsCollection; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.data.DataUser; +import org.alfresco.utility.model.FileModel; +import org.alfresco.utility.model.FolderModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +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.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +/** + * + * @author Cristina Axinte + * + */ +public class GetPeopleActivitiesFullTests extends RestTest +{ + UserModel userModel, managerUser; + SiteModel siteModel1, siteModel2; + FileModel fileInSite1, fileInSite2; + FolderModel folderInSite2; + private RestActivityModelsCollection restActivityModelsCollection; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + userModel = dataUser.createRandomTestUser(); + siteModel1 = dataSite.usingUser(userModel).createPublicRandomSite(); + fileInSite1 = dataContent.usingUser(userModel).usingSite(siteModel1).createContent(DocumentType.TEXT_PLAIN); + + siteModel2 = dataSite.usingUser(userModel).createPublicRandomSite(); + folderInSite2 = dataContent.usingUser(userModel).usingSite(siteModel2).createFolder(); + fileInSite2 = dataContent.usingAdmin().usingSite(siteModel2).createContent(DocumentType.TEXT_PLAIN); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets its activities using me with Rest API and response is successful") + public void userShouldGetItsPeopleActivitiesUsingMe() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restActivityModelsCollection.assertThat().paginationField("count").is("3"); + restActivityModelsCollection.assertThat().entriesListContains("title", fileInSite1.getName()) + .and().entriesListContains("title", folderInSite2.getName()) + .and().entriesListContains("title", fileInSite2.getName()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user cannot get activities for empty user with Rest API and response is 404") + public void userCannotGetPeopleActivitiesForEmptyPersonId() throws Exception + { + UserModel emptyUserName = new UserModel("", "password"); + + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(emptyUserName).getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY) + .containsSummary(RestErrorModel.LOCAL_NAME_CONSISTANCE) + .stackTraceIs(RestErrorModel.STACKTRACE) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); + } +} diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleCoreTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleCoreTests.java index c1ef69a85..3d814d594 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleCoreTests.java @@ -2,7 +2,6 @@ package org.alfresco.rest.people; import org.alfresco.rest.RestTest; import org.alfresco.rest.model.RestErrorModel; -import org.alfresco.rest.model.RestPersonModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; From 0ca2203d5f58ca83476a7a8aa6ba8ee97b1875c4 Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Tue, 10 Jan 2017 10:07:10 +0200 Subject: [PATCH 06/65] TAS-2617, TAS-2618, TAS-2620 Added new full tests for GetPeopleActivities --- .../people/GetPeopleActivitiesFullTests.java | 40 ++++++++++++++++--- 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java index a19c049d1..7d2c30ffb 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java @@ -4,9 +4,8 @@ import org.alfresco.dataprep.CMISUtil.DocumentType; import org.alfresco.rest.RestTest; import org.alfresco.rest.model.RestActivityModelsCollection; import org.alfresco.rest.model.RestErrorModel; -import org.alfresco.rest.model.RestSiteModelsCollection; +import org.alfresco.utility.constants.ActivityType; import org.alfresco.utility.constants.UserRole; -import org.alfresco.utility.data.DataUser; import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FolderModel; import org.alfresco.utility.model.SiteModel; @@ -25,7 +24,7 @@ import org.testng.annotations.Test; */ public class GetPeopleActivitiesFullTests extends RestTest { - UserModel userModel, managerUser; + UserModel userModel, adminUser, managerUser; SiteModel siteModel1, siteModel2; FileModel fileInSite1, fileInSite2; FolderModel folderInSite2; @@ -34,6 +33,7 @@ public class GetPeopleActivitiesFullTests extends RestTest @BeforeClass(alwaysRun = true) public void dataPreparation() throws Exception { + adminUser = dataUser.getAdminUser(); userModel = dataUser.createRandomTestUser(); siteModel1 = dataSite.usingUser(userModel).createPublicRandomSite(); fileInSite1 = dataContent.usingUser(userModel).usingSite(siteModel1).createContent(DocumentType.TEXT_PLAIN); @@ -41,18 +41,23 @@ public class GetPeopleActivitiesFullTests extends RestTest siteModel2 = dataSite.usingUser(userModel).createPublicRandomSite(); folderInSite2 = dataContent.usingUser(userModel).usingSite(siteModel2).createFolder(); fileInSite2 = dataContent.usingAdmin().usingSite(siteModel2).createContent(DocumentType.TEXT_PLAIN); + + managerUser = dataUser.createRandomTestUser(); + dataUser.usingUser(userModel).addUserToSite(managerUser, siteModel2, UserRole.SiteManager); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets its activities using me with Rest API and response is successful") - public void userShouldGetItsPeopleActivitiesUsingMe() throws Exception + public void userGetsItsPeopleActivitiesUsingMe() throws Exception { restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getPersonActivities(); restClient.assertStatusCodeIs(HttpStatus.OK); - restActivityModelsCollection.assertThat().paginationField("count").is("3"); + restActivityModelsCollection.assertThat().paginationField("count").is("4"); restActivityModelsCollection.assertThat().entriesListContains("title", fileInSite1.getName()) .and().entriesListContains("title", folderInSite2.getName()) - .and().entriesListContains("title", fileInSite2.getName()); + .and().entriesListContains("title", fileInSite2.getName()) + .and().entriesListContains("title", fileInSite2.getName()) + .and().entriesListContains("activityType", ActivityType.USER_JOINED.toString()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) @@ -68,4 +73,27 @@ public class GetPeopleActivitiesFullTests extends RestTest .stackTraceIs(RestErrorModel.STACKTRACE) .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities successfully using parameter 'who' with 'me'vale with Rest API") + public void userGetsPeopleActivitiesUsingMeForWhoParameter() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(userModel).usingParams("who=me").getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restActivityModelsCollection.assertThat().paginationField("count").is("2"); + restActivityModelsCollection.assertThat().entriesListContains("postPersonId", userModel.getUsername().toLowerCase()) + .and().entriesListDoesNotContain("postPersonId", adminUser.getUsername().toLowerCase()) + .and().entriesListDoesNotContain("postPersonId", managerUser.getUsername().toLowerCase()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets its activities for siteId specified in siteId parameter using me with Rest API and response is successful") + public void userGetItsPeopleActivitiesForASpecificSite() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(userModel).usingParams(String.format("siteId=%s", siteModel1.getId())).getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restActivityModelsCollection.assertThat().paginationField("count").is("1"); + restActivityModelsCollection.assertThat().entriesListContains("siteId", siteModel1.getId()) + .and().entriesListDoesNotContain("siteId", siteModel2.getId()); + } } From 152b99590f53d12ba7f56c59b3df0df7889983f4 Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Tue, 10 Jan 2017 11:06:25 +0200 Subject: [PATCH 07/65] TAS-2621 new full test --- .../people/GetPeopleActivitiesFullTests.java | 47 +++++++++++++++++-- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java index 7d2c30ffb..facd8cfed 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java @@ -1,8 +1,13 @@ package org.alfresco.rest.people; +import java.util.ArrayList; +import java.util.List; + import org.alfresco.dataprep.CMISUtil.DocumentType; import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestActivityModel; import org.alfresco.rest.model.RestActivityModelsCollection; +import org.alfresco.rest.model.RestActivitySummaryModel; import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.ActivityType; import org.alfresco.utility.constants.UserRole; @@ -14,6 +19,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.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -53,11 +59,17 @@ public class GetPeopleActivitiesFullTests extends RestTest restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getPersonActivities(); restClient.assertStatusCodeIs(HttpStatus.OK); restActivityModelsCollection.assertThat().paginationField("count").is("4"); - restActivityModelsCollection.assertThat().entriesListContains("title", fileInSite1.getName()) - .and().entriesListContains("title", folderInSite2.getName()) - .and().entriesListContains("title", fileInSite2.getName()) - .and().entriesListContains("title", fileInSite2.getName()) - .and().entriesListContains("activityType", ActivityType.USER_JOINED.toString()); + + List allActivitySummary = new ArrayList(); + for (RestActivityModel activityModel: restActivityModelsCollection.getEntries()) + { + allActivitySummary.add(activityModel.onModel().getActivitySummary()); + } + + assertActivitySummaryTitleIsPresent(allActivitySummary, fileInSite1.getName()); + assertActivitySummaryTitleIsPresent(allActivitySummary, folderInSite2.getName()); + assertActivitySummaryTitleIsPresent(allActivitySummary, fileInSite2.getName()); + restActivityModelsCollection.assertThat().entriesListContains("activityType", ActivityType.USER_JOINED.toString()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) @@ -96,4 +108,29 @@ public class GetPeopleActivitiesFullTests extends RestTest restActivityModelsCollection.assertThat().entriesListContains("siteId", siteModel1.getId()) .and().entriesListDoesNotContain("siteId", siteModel2.getId()); } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities for user with no activities with Rest API and response is successful") + public void userGetPeopleActivitiesForUserWithNoActivities() throws Exception + { + UserModel userNoActivities = dataUser.createRandomTestUser(); + dataSite.usingUser(userNoActivities).createPublicRandomSite(); + + restActivityModelsCollection = restClient.authenticateUser(adminUser).withCoreAPI().usingUser(userNoActivities).getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restActivityModelsCollection.assertThat().paginationField("count").is("0"); + restActivityModelsCollection.assertThat().entriesListIsEmpty(); + } + + private void assertActivitySummaryTitleIsPresent(List allActivitySummary, String title) + { + for (RestActivitySummaryModel activitySummary: allActivitySummary) + { + if (activitySummary.getTitle().equals(title)) + { + Assert.assertEquals(activitySummary.getTitle(), title, String.format("%s title was not found in Activity Summary", title)); + break; + } + } + } } From b16db5c37ed7c1aa6f1d2149a6403269c80cb04f Mon Sep 17 00:00:00 2001 From: Andrei Rusu Date: Tue, 10 Jan 2017 11:44:50 +0200 Subject: [PATCH 08/65] updated accordingly to addComments --- .../rest/comments/AddCommentsFullTests.java | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/comments/AddCommentsFullTests.java b/e2e-test/java/org/alfresco/rest/comments/AddCommentsFullTests.java index c85085850..23a46bacd 100644 --- a/e2e-test/java/org/alfresco/rest/comments/AddCommentsFullTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/AddCommentsFullTests.java @@ -46,70 +46,77 @@ public class AddCommentsFullTests extends RestTest @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, description= "Using Manager user verify that you can provide a large string for one comment") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) - public void addLongCommentWithManagerAndCheckThatCommentIsReturned() throws Exception + public void addLongCommentsWithManagerAndCheckThatCommentIsReturned() throws Exception { document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); String longString = RandomStringUtils.randomAlphanumeric(10000); + String longString1 = RandomStringUtils.randomAlphanumeric(90000); restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) - .withCoreAPI().usingResource(document).addComment(longString); + .withCoreAPI().usingResource(document).addComments(longString, longString1); restClient.assertStatusCodeIs(HttpStatus.CREATED); comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(document).getNodeComments(); restClient.assertStatusCodeIs(HttpStatus.OK); comments.assertThat().entriesListContains("content", longString); - comments.assertThat().paginationField("totalItems").is("1"); - comments.assertThat().paginationField("count").is("1"); + comments.assertThat().entriesListContains("content", longString1); + comments.assertThat().paginationField("totalItems").is("2"); + comments.assertThat().paginationField("count").is("2"); } @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, description= "Using Manager user verify that you can provide a short string for one comment") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) - public void addShortCommentWithManagerAndCheckThatCommentIsReturned() throws Exception + public void addShortCommentsWithManagerAndCheckThatCommentIsReturned() throws Exception { document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); String shortString = RandomStringUtils.randomAlphanumeric(2); + String shortString1 = RandomStringUtils.randomAlphanumeric(1); restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) - .withCoreAPI().usingResource(document).addComment(shortString); + .withCoreAPI().usingResource(document).addComments(shortString, shortString1); restClient.assertStatusCodeIs(HttpStatus.CREATED); comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(document).getNodeComments(); restClient.assertStatusCodeIs(HttpStatus.OK); comments.assertThat().entriesListContains("content", shortString); - comments.assertThat().paginationField("totalItems").is("1"); - comments.assertThat().paginationField("count").is("1"); + comments.assertThat().entriesListContains("content", shortString1); + comments.assertThat().paginationField("totalItems").is("2"); + comments.assertThat().paginationField("count").is("2"); } @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, description= "Using Collaborator user verify that you can provide a string with special characters for one comment") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) - public void addCommentWithSpecialCharsWithCollaboratorCheckCommentIsReturned() throws Exception + public void addCommentsWithSpecialCharsWithCollaboratorCheckCommentIsReturned() throws Exception { document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); String specialCharsString = "!@#$%^&*()_+♂µΓyádo«√<╡┌6£"; + String shortString = RandomStringUtils.randomAlphanumeric(2); restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) - .withCoreAPI().usingResource(document).addComment(specialCharsString); + .withCoreAPI().usingResource(document).addComments(specialCharsString, shortString); restClient.assertStatusCodeIs(HttpStatus.CREATED); comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(document).getNodeComments(); restClient.assertStatusCodeIs(HttpStatus.OK); - comments.assertThat().entriesListContains("content", specialCharsString); - comments.assertThat().paginationField("totalItems").is("1"); - comments.assertThat().paginationField("count").is("1"); + comments.assertThat().entriesListContains("content", specialCharsString); + comments.assertThat().entriesListContains("content", shortString); + comments.assertThat().paginationField("totalItems").is("2"); + comments.assertThat().paginationField("count").is("2"); } @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, description= "Using Manager user verify that you can not provide an empty string for one comment") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) - public void addEmptyStringCommentWithManagerCheckCommentIsReturned() throws Exception + public void addEmptyStringCommentsWithManagerCheckCommentIsReturned() throws Exception { document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); String emptyString = ""; + String spaceString = " "; restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) - .withCoreAPI().usingResource(document).addComment(emptyString); + .withCoreAPI().usingResource(document).addComments(emptyString, spaceString); restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(RestErrorModel.NON_NULL_COMMENT); } From c752ed817335d6c71fcb42c10c2e017dfd47c1ef Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Tue, 10 Jan 2017 12:12:25 +0200 Subject: [PATCH 09/65] TAS-2623, TAS-2624 added 2 full tests --- .../people/GetPeopleActivitiesFullTests.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java index facd8cfed..5e01bb755 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java @@ -133,4 +133,24 @@ public class GetPeopleActivitiesFullTests extends RestTest } } } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user cannot get activities for siteId that user doesn't have access to with Rest API and response is not found") + public void userGetPeopleActivitiesForASiteWithNoAccess() throws Exception + { + SiteModel siteNoAccess = dataSite.usingUser(managerUser).createPrivateRandomSite(); + + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(userModel).usingParams(String.format("siteId=%s", siteNoAccess.getId())).getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND); + restClient.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, siteNoAccess.getId())); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user cannot get activities for another user with Rest API and response is successful") + public void userGetPeopleActivitiesForAnotherUser() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(managerUser).getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN); + restClient.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } } From 971a913776d4a37a755e6a53f4f28f6328069d82 Mon Sep 17 00:00:00 2001 From: mionescu Date: Tue, 10 Jan 2017 12:12:51 +0200 Subject: [PATCH 10/65] test - added test for DeleteFavoriteFull suite core- added new enum - API_DEFAULT_ERRORKEY --- .../favorites/DeleteFavoriteFullTests.java | 246 ++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java new file mode 100644 index 000000000..f79958390 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java @@ -0,0 +1,246 @@ +package org.alfresco.rest.favorites; + +import org.alfresco.dataprep.CMISUtil.DocumentType; +import org.alfresco.rest.RestTest; +import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.data.DataUser.ListUserWithRoles; +import org.alfresco.utility.model.FileModel; +import org.alfresco.utility.model.FolderModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class DeleteFavoriteFullTests extends RestTest +{ + private UserModel adminUserModel, tenantUser, adminTenantUser; + private SiteModel siteModel; + private ListUserWithRoles usersWithRoles; + private FileModel fileModel; + private FolderModel folderModel; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUserModel = dataUser.getAdminUser(); + + siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); + siteModel.setGuid(restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(siteModel).getSite().getGuid()); + + fileModel = dataContent.usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN); + folderModel = dataContent.usingSite(siteModel).usingUser(adminUserModel).createFolder(); + + usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, + UserRole.SiteContributor); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify admin deletes files from favorites with Rest API and status code is (204)") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void adminIsAbleToDeleteFavoriteFile() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addFileToFavorites(fileModel); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + restClient.withCoreAPI().usingAuthUser().deleteFileFromFavorites(fileModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", fileModel.getNodeRefWithoutVersion()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify admin deletes folder from favorites with Rest API and status code is (204)") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void adminIsAbleToDeleteFavoriteFolder() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addFolderToFavorites(folderModel); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + restClient.withCoreAPI().usingAuthUser().deleteFolderFromFavorites(folderModel) + .assertStatusCodeIs(HttpStatus.NO_CONTENT); + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", fileModel.getNodeRefWithoutVersion()); + } + + @Bug(id="MNT-16557") + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify consumer user doesn't have permission to delete favorites of another user with Rest API and status code is 404") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void consumerIsNotAbleToDeleteFavoriteOfAnotherUser() throws JsonToModelConversionException, Exception + { + UserModel siteConsumer = usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer); + restClient.authenticateUser(siteConsumer).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI() + .usingAuthUser().deleteSiteFromFavorites(siteModel) + .assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError() + .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } + + @Bug(id="MNT-16557") + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify contributor user doesn't have permission to delete favorites of another user with Rest API and status code is 404") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void contributorIsNotAbleToDeleteFavoriteOfAnotherUser() throws JsonToModelConversionException, Exception + { + UserModel siteContributor = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor); + restClient.authenticateUser(siteContributor).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI() + .usingAuthUser().deleteSiteFromFavorites(siteModel) + .assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError() + .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } + + @Bug(id="MNT-16557") + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify contributor user doesn't have permission to delete favorites of another user with Rest API and status code is 404") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void adminIsNotAbleToDeleteFavoriteOfAnotherUser() throws JsonToModelConversionException, Exception + { + UserModel user = dataUser.createRandomTestUser(); + restClient.authenticateUser(user).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + + restClient.authenticateUser(adminUserModel).withCoreAPI() + .usingAuthUser().deleteSiteFromFavorites(siteModel) + .assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError() + .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify admin is not able to deletes files from favorites that were already deleted with Rest API and status code is (404)") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void adminIsNotAbleToDeletesADeletedFavoriteFile() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addFileToFavorites(fileModel); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + restClient.withCoreAPI().usingAuthUser().deleteFileFromFavorites(fileModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", fileModel.getNodeRefWithoutVersion()); + + restClient.withCoreAPI().usingAuthUser().deleteFileFromFavorites(fileModel) + .assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, + adminUserModel.getUsername(), fileModel.getNodeRef())); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify user can't delete favorites using an invalid network ID.") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void userIsNotAbleToDeleteFavoriteSiteWithInvalidNetworkID() throws JsonToModelConversionException, Exception + { + UserModel networkUserModel = dataUser.createRandomTestUser(); + restClient.authenticateUser(networkUserModel).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + networkUserModel.setDomain("invalidNetwork"); + + restClient.withCoreAPI() + .usingAuthUser().deleteSiteFromFavorites(siteModel) + .assertStatusCodeIs(HttpStatus.UNAUTHORIZED) + .assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED) + .containsErrorKey(RestErrorModel.API_DEFAULT_ERRORKEY) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify contributor user doesn't have permission to delete favorites of another user with Rest API and status code is 404") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void adminDeletesFavoriteForNotFavouriteFile() throws JsonToModelConversionException, Exception + { + fileModel = dataContent.usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN); + + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser() + .deleteFileFromFavorites(fileModel) + .assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, + adminUserModel.getUsername(), fileModel.getNodeRef())) + .containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @Bug(id="MNT-16904") + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify tenant user is not able to delete favorites using an invalid network ID") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES,TestGroup.NETWORKS, TestGroup.FULL }) + public void tenantIsNotAbleToDeleteFavoriteSiteWithInvalidNetworkID() throws JsonToModelConversionException, Exception + { + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUserModel).usingTenant().createTenant(adminTenantUser); + tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + siteModel = dataSite.usingUser(tenantUser).createPublicRandomSite(); + siteModel.setGuid(restClient.authenticateUser(tenantUser).withCoreAPI().usingSite(siteModel).getSite().getGuid()); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + tenantUser.setDomain("invalidNetwork"); + + restClient.withCoreAPI() + .usingAuthUser().deleteSiteFromFavorites(siteModel) + .assertStatusCodeIs(HttpStatus.UNAUTHORIZED) + .assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED) + .containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify tenant user deletes favorites site and status code is (204)") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES,TestGroup.NETWORKS, TestGroup.FULL }) + public void tenantDeleteFavoriteSiteValidNetwork() throws JsonToModelConversionException, Exception + { + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUserModel).usingTenant().createTenant(adminTenantUser); + tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + siteModel = dataSite.usingUser(tenantUser).createPublicRandomSite(); + siteModel.setGuid(restClient.authenticateUser(tenantUser).withCoreAPI().usingSite(siteModel).getSite().getGuid()); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + tenantUser.setDomain(tenantUser.getDomain()); + + restClient.withCoreAPI() + .usingAuthUser().deleteSiteFromFavorites(siteModel) + .assertStatusCodeIs(HttpStatus.NO_CONTENT); + + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", fileModel.getNodeRefWithoutVersion()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify tenant user deletes favorites site created by admin tenant - same network and status code is (204)") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES,TestGroup.NETWORKS, TestGroup.FULL }) + public void tenantUserIsAbleToDeleteFavoriteSiteAddedByAdminSameNetwork() throws JsonToModelConversionException, Exception + { + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUserModel).usingTenant().createTenant(adminTenantUser); + tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + siteModel = dataSite.usingUser(adminTenantUser).createPublicRandomSite(); + siteModel.setGuid(restClient.authenticateUser(adminTenantUser).withCoreAPI().usingSite(siteModel).getSite().getGuid()); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + tenantUser.setDomain(adminTenantUser.getDomain()); + + restClient.withCoreAPI() + .usingAuthUser().deleteSiteFromFavorites(siteModel) + .assertStatusCodeIs(HttpStatus.NO_CONTENT); + + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", fileModel.getNodeRefWithoutVersion()); + } + +} From 04d5e38f10b7cb786f59cc9d16c4709512afe2cc Mon Sep 17 00:00:00 2001 From: Andrei Rusu Date: Tue, 10 Jan 2017 15:36:31 +0200 Subject: [PATCH 11/65] added tests for getCommentsFullTests added changes to network tests getCommentsCoreTests --- .../rest/comments/GetCommentsCoreTests.java | 8 +- .../rest/comments/GetCommentsFullTests.java | 247 ++++++++++++++++++ 2 files changed, 251 insertions(+), 4 deletions(-) create mode 100644 e2e-test/java/org/alfresco/rest/comments/GetCommentsFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/comments/GetCommentsCoreTests.java b/e2e-test/java/org/alfresco/rest/comments/GetCommentsCoreTests.java index 8345fae21..c018b1f87 100644 --- a/e2e-test/java/org/alfresco/rest/comments/GetCommentsCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/GetCommentsCoreTests.java @@ -112,8 +112,8 @@ public class GetCommentsCoreTests extends RestTest public void getCommentsWithInvalidNetwork() throws Exception { networkUserModel.setDomain("invalidNetwork"); - restClient.authenticateUser(userModel).withCoreAPI().usingResource(document).getNodeComments(); - restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + restClient.authenticateUser(networkUserModel).withCoreAPI().usingResource(document).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, @@ -122,8 +122,8 @@ public class GetCommentsCoreTests extends RestTest public void getCommentsWithEmptyNetwork() throws Exception { networkUserModel.setDomain(""); - restClient.authenticateUser(userModel).withCoreAPI().usingResource(document).getNodeComments(); - restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + restClient.authenticateUser(networkUserModel).withCoreAPI().usingResource(document).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/comments/GetCommentsFullTests.java b/e2e-test/java/org/alfresco/rest/comments/GetCommentsFullTests.java new file mode 100644 index 000000000..6d8425bdb --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/comments/GetCommentsFullTests.java @@ -0,0 +1,247 @@ +package org.alfresco.rest.comments; + +import java.util.List; + +import org.alfresco.dataprep.CMISUtil.DocumentType; +import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestCommentModel; +import org.alfresco.rest.model.RestCommentModelsCollection; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.data.DataUser; +import org.alfresco.utility.model.FileModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class GetCommentsFullTests extends RestTest +{ + private UserModel adminUserModel; + private SiteModel siteModel; + private String comment = "This is a new comment"; + private String comment2 = "This is the second comment"; + private RestCommentModelsCollection comments; + private DataUser.ListUserWithRoles usersWithRoles; + + @BeforeClass(alwaysRun=true) + public void dataPreparation() throws Exception + { + adminUserModel = dataUser.getAdminUser(); + siteModel = dataSite.usingUser(adminUserModel).createPrivateRandomSite(); + usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, + UserRole.SiteContributor, UserRole.SiteConsumer); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Verify that if manager adds one comment, it will be returned in getComments response") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void addCommentWithManagerAndCheckThatCommentIsReturned() throws Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", comment); + comments.assertThat().paginationField("totalItems").is("1"); + comments.assertThat().paginationField("count").is("1"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Verify that if collaborator adds one comment, it will be returned in getComments response") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void addCommentWithCollaboratorAndCheckThatCommentIsReturned() throws Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", comment); + comments.assertThat().paginationField("totalItems").is("1"); + comments.assertThat().paginationField("count").is("1"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Verify that if contributor adds one comment, it will be returned in getComments response") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + @Bug(id = "ACE-4614") + public void addCommentWithContributorAndCheckThatCommentIsReturned() throws Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)) + .withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", comment); + comments.assertThat().paginationField("totalItems").is("1"); + comments.assertThat().paginationField("count").is("1"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Verify that consumer cannot add a comment and no comments will be returned in getComments response") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void addCommentWithConsumerAndCheckThatCommentIsNotReturned() throws Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)) + .withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().paginationField("totalItems").is("0"); + comments.assertThat().paginationField("count").is("0"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Add one comment with Manager and check that returned person is the right one") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void addCommentWithManagerCheckReturnedPersonIsTheRightOne() throws Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + UserModel user1 = dataUser.createRandomTestUser(); + dataUser.addUserToSite(user1, siteModel, UserRole.SiteManager); + + restClient.authenticateUser(user1).withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListIsNotEmpty(); + List commentsList = comments.getEntries(); + commentsList.get(0).onModel().getCreatedBy().assertThat().field("firstName").is(user1.getUsername() + " FirstName") + .assertThat().field("lastName").is("LN-" + user1.getUsername()); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Add one comment with Collaborator and check that returned company details are correct") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void addCommentWithCollaboratorCheckReturnedCompanyDetails() throws Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListIsNotEmpty(); + List commentsList = comments.getEntries(); + commentsList.get(0).onModel().getCreatedBy().getCompany() + .assertThat().field("organization").isNull() + .assertThat().field("address1").isNull() + .assertThat().field("address2").isNull() + .assertThat().field("address3").isNull() + .assertThat().field("postcode").isNull() + .assertThat().field("telephone").isNull() + .assertThat().field("fax").isNull() + .assertThat().field("email").isNull(); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Add 2 comments with Manager and Collaborator users and verify valid request using skipCount. Check that param is applied") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void addTwoCommentsWithManagerCollaboratorVerifySkipCountParamIsApplied() throws Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingResource(file).addComment(comment2); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + comments = restClient.authenticateUser(adminUserModel).withParams("skipCount=1") + .withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", comment) + .and().paginationField("count").is("1"); + comments.assertThat().paginationField("skipCount").is("1"); + comments.assertThat().paginationField("totalItems").is("2"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Add 2 comments with Admin and Collaborator users and verify valid request using maxItems. Check that param is applied") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void addTwoCommentsWithAdminCollaboratorVerifyMaxItemsParamIsApplied() throws Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingResource(file).addComment(comment2); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + comments = restClient.authenticateUser(adminUserModel).withParams("maxItems=1") + .withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", comment2) + .and().paginationField("count").is("1"); + comments.assertThat().paginationField("totalItems").is("2"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Add 2 comments with Manager and Admin users and verify valid request using properties. Check that param is applied") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void addTwoCommentsWithAdminManagerVerifyPropertiesParamIsApplied() throws Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingResource(file).addComment(comment2); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + comments = restClient.authenticateUser(adminUserModel).withParams("properties=createdBy,modifiedBy") + .withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListIsNotEmpty() + .and().paginationField("count").is("2"); + comments.assertThat().paginationField("totalItems").is("2"); + + List commentsList = comments.getEntries(); + + commentsList.get(0).onModel().getCreatedBy() + .assertThat().field("firstName").is(usersWithRoles.getOneUserWithRole(UserRole.SiteManager).getUsername() + " FirstName") + .assertThat().field("lastName").is("LN-" + usersWithRoles.getOneUserWithRole(UserRole.SiteManager).getUsername()); + + commentsList.get(1).onModel().getCreatedBy() + .assertThat().field("firstName").is("Administrator") + .assertThat().field("id").is("admin"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Check default error model schema") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void addTwoCommentsWithManagerCheckDefaultErrorModelSchema() throws Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingResource(file).addComments(comment, comment2); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).usingParams("maxItems=0").getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS); + restClient.assertLastError().getErrorKey().contains("Only positive values supported for maxItems."); + restClient.assertLastError().containsSummary("Only positive values supported for maxItems."); + restClient.assertLastError().getDescriptionURL().contains("https://api-explorer.alfresco.com"); + restClient.assertLastError().getStackTrace().contains("For security reasons the stack trace is no longer displayed, but the property is kept for previous versions"); + } +} \ No newline at end of file From cc84692d3392f4d1d558fc27115ca7c67dbf2c28 Mon Sep 17 00:00:00 2001 From: mionescu Date: Tue, 10 Jan 2017 15:52:38 +0200 Subject: [PATCH 12/65] test - updated tests from Core and Sanity --- .../people/DeleteFavoriteSiteCoreTests.java | 33 ++++++--- .../people/DeleteFavoriteSiteSanityTests.java | 69 ++++++++++++++++--- 2 files changed, 82 insertions(+), 20 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteCoreTests.java b/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteCoreTests.java index d01b95d7c..cb1c898da 100644 --- a/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteCoreTests.java @@ -30,7 +30,8 @@ public class DeleteFavoriteSiteCoreTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user removes a site from favorites using '-me-' in place of personId with Rest API and response is successful (204)") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify user removes a site from favorites using '-me-' in place of personId with Rest API and response is successful (204)") public void removeFavoriteSiteWithSuccessUsingMeAsPersonId() throws Exception { restClient.authenticateUser(adminUserModel); @@ -42,7 +43,8 @@ public class DeleteFavoriteSiteCoreTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) @Bug(id = "REPO-1642", description = "reproduced on 5.2.1 only, it works on 5.2.0") - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify inexistent user is not able to remove a site from favorites and response is 404") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify inexistent user is not able to remove a site from favorites and response is 404") public void inexistentUserIsNotAbleToRemoveFavoriteSite() throws Exception { UserModel inexistentUser = new UserModel("inexistenUser", "password"); @@ -51,17 +53,24 @@ public class DeleteFavoriteSiteCoreTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user is not able to remove from favorites a site with inexistent id and response is 404") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify user is not able to remove from favorites a site with inexistent id and response is 404") public void userIsNotAbleToRemoveFavoriteSiteWithInexistentId() throws Exception { SiteModel inexistentSite = new SiteModel("inexistentSite"); restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).removeFavoriteSite(inexistentSite); - restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() - .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUserModel.getUsername(), inexistentSite.getTitle())); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, + adminUserModel.getUsername(), inexistentSite.getTitle())) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE) + .containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify manager user removes a site from its favorites and adds it again and response is successful (204)") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify manager user removes a site from its favorites and adds it again and response is successful (204)") public void managerUserRemovesFavoriteSiteAndAddItAgain() throws Exception { UserModel managerUser = dataUser.usingAdmin().createRandomTestUser(); @@ -75,7 +84,8 @@ public class DeleteFavoriteSiteCoreTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify manager user removes a site from its favorite sites list with Rest API and response is successful (204)") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify manager user removes a site from its favorite sites list with Rest API and response is successful (204)") public void managerUserRemovesFavoriteSiteWithSuccess() throws Exception { UserModel managerUser = dataUser.usingAdmin().createRandomTestUser(); @@ -88,7 +98,8 @@ public class DeleteFavoriteSiteCoreTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify uninvited user can delete favorite public site and response is 204") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify uninvited user can delete favorite public site and response is 204") public void uninvitedUserCanDeleteFavoritePublicSite() throws Exception { SiteModel publicSiteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); @@ -100,7 +111,8 @@ public class DeleteFavoriteSiteCoreTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify uninvited user can delete favorite moderated site and response is 204") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify uninvited user can delete favorite moderated site and response is 204") public void uninvitedUserCanDeleteFavoriteModeratedSite() throws Exception { SiteModel moderatedSiteModel = dataSite.usingUser(adminUserModel).createModeratedRandomSite(); @@ -112,7 +124,8 @@ public class DeleteFavoriteSiteCoreTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify user can delete favorite private site and response is 204") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify user can delete favorite private site and response is 204") public void userCanDeleteFavoritePrivateSite() throws Exception { SiteModel privateSiteModel = dataSite.usingUser(userModel).createPrivateRandomSite(); diff --git a/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteSanityTests.java b/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteSanityTests.java index ab56d7b8c..2e91ed8e2 100644 --- a/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteSanityTests.java @@ -33,7 +33,8 @@ public class DeleteFavoriteSiteSanityTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify manager user removes a site from its favorite sites list with Rest API and response is successful (204)") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, + description = "Verify manager user removes a site from its favorite sites list with Rest API and response is successful (204)") public void managerUserRemovesFavoriteSiteWithSuccess() throws Exception { UserModel managerUser = dataUser.usingAdmin().createRandomTestUser(); @@ -43,10 +44,19 @@ public class DeleteFavoriteSiteSanityTests extends RestTest restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel1); restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel1.getGuid()) + .and().entriesListDoesNotContain("id", siteModel1.getId()) + .and().entriesListDoesNotContain("description", siteModel1.getDescription()) + .and().entriesListDoesNotContain("visibility", siteModel1.getVisibility().toString()) + .and().entriesListDoesNotContain("title", siteModel1.getTitle()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify collaborator user removes a site from its favorite sites list with Rest API and response is successful (204)") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, + description = "Verify collaborator user removes a site from its favorite sites list with Rest API and response is successful (204)") public void collaboratorUserRemovesFavoriteSiteWithSuccess() throws Exception { UserModel collaboratorUser = dataUser.usingAdmin().createRandomTestUser(); @@ -56,10 +66,19 @@ public class DeleteFavoriteSiteSanityTests extends RestTest restClient.authenticateUser(collaboratorUser).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel1); restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel1.getGuid()) + .and().entriesListDoesNotContain("id", siteModel1.getId()) + .and().entriesListDoesNotContain("description", siteModel1.getDescription()) + .and().entriesListDoesNotContain("visibility", siteModel1.getVisibility().toString()) + .and().entriesListDoesNotContain("title", siteModel1.getTitle()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify contributor user removes a site from its favorite sites list with Rest API and response is successful (204)") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, + description = "Verify contributor user removes a site from its favorite sites list with Rest API and response is successful (204)") public void contributorUserRemovesFavoriteSiteWithSuccess() throws Exception { UserModel contributorUser = dataUser.usingAdmin().createRandomTestUser(); @@ -69,10 +88,19 @@ public class DeleteFavoriteSiteSanityTests extends RestTest restClient.authenticateUser(contributorUser).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel1); restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel1.getGuid()) + .and().entriesListDoesNotContain("id", siteModel1.getId()) + .and().entriesListDoesNotContain("description", siteModel1.getDescription()) + .and().entriesListDoesNotContain("visibility", siteModel1.getVisibility().toString()) + .and().entriesListDoesNotContain("title", siteModel1.getTitle()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify consumer user removes a site from its favorite sites list with Rest API and response is successful (204)") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, + description = "Verify consumer user removes a site from its favorite sites list with Rest API and response is successful (204)") public void consumerUserRemovesFavoriteSiteWithSuccess() throws Exception { UserModel consumerUser = dataUser.usingAdmin().createRandomTestUser(); @@ -82,10 +110,19 @@ public class DeleteFavoriteSiteSanityTests extends RestTest restClient.authenticateUser(consumerUser).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel1); restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel1.getGuid()) + .and().entriesListDoesNotContain("id", siteModel1.getId()) + .and().entriesListDoesNotContain("description", siteModel1.getDescription()) + .and().entriesListDoesNotContain("visibility", siteModel1.getVisibility().toString()) + .and().entriesListDoesNotContain("title", siteModel1.getTitle()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify admin user removes a site from any user's favorite sites list with Rest API and response is successful (204)") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, + description = "Verify admin user removes a site from any user's favorite sites list with Rest API and response is successful (204)") public void adminUserRemovesAnyFavoriteSiteWithSuccess() throws Exception { UserModel adminUser = dataUser.getAdminUser(); @@ -98,8 +135,9 @@ public class DeleteFavoriteSiteSanityTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify a user removes a site from another user's favorite sites list with Rest API and response is permission denied (403)") - public void userUserRemovesAnotherUserFavoriteSiteWithSuccess() throws Exception + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, + description = "Verify a user removes a site from another user's favorite sites list with Rest API and response is permission denied (403)") + public void userRemovesAnotherUserFavoriteSiteWithSuccess() throws Exception { UserModel userAuth = dataUser.usingAdmin().createRandomTestUser(); UserModel anotherUser = dataUser.usingAdmin().createRandomTestUser(); @@ -107,11 +145,17 @@ public class DeleteFavoriteSiteSanityTests extends RestTest dataSite.usingUser(anotherUser).usingSite(siteModel2).addSiteToFavorites(); restClient.authenticateUser(userAuth).withCoreAPI().usingUser(anotherUser).removeFavoriteSite(siteModel1); - restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError() + .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE) + .containsErrorKey(RestErrorModel.PERMISSION_DENIED_ERRORKEY); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify manager user is NOT Authorized to remove a site from its favorite sites list with Rest API when authentication fails (401)") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, + description = "Verify manager user is NOT Authorized to remove a site from its favorite sites list with Rest API when authentication fails (401)") @Bug(id = "MNT-16904") public void managerUserNotAuthorizedFailsToRemoveFavoriteSite() throws Exception { @@ -122,6 +166,11 @@ public class DeleteFavoriteSiteSanityTests extends RestTest managerUser.setPassword("newpassword"); restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel1); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED) + .assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE) + .containsErrorKey(RestErrorModel.API_DEFAULT_ERRORKEY); } } From 1569321c12183e25601920c4a42b560ff0cd187d Mon Sep 17 00:00:00 2001 From: mionescu Date: Tue, 10 Jan 2017 15:54:21 +0200 Subject: [PATCH 13/65] test - added new tests for deleteFavoriteSite - full suite core - added new enums: PERMISSION_DENIED_ERRORKEY, NOT_FAVOURITE_SITE --- .../favorites/DeleteFavoritesSanityTests.java | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoritesSanityTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoritesSanityTests.java index 2503d7c7a..81264ab76 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoritesSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoritesSanityTests.java @@ -53,7 +53,13 @@ public class DeleteFavoritesSanityTests extends RestTest restClient.authenticateUser(siteManager).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); - restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel.getGuid()) + .and().entriesListDoesNotContain("id", siteModel.getId()) + .and().entriesListDoesNotContain("description", siteModel.getDescription()) + .and().entriesListDoesNotContain("visibility", siteModel.getVisibility().toString()) + .and().entriesListDoesNotContain("title", siteModel.getTitle()); } @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, @@ -65,7 +71,13 @@ public class DeleteFavoritesSanityTests extends RestTest restClient.authenticateUser(siteCollaborator).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); - restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel.getGuid()) + .and().entriesListDoesNotContain("id", siteModel.getId()) + .and().entriesListDoesNotContain("description", siteModel.getDescription()) + .and().entriesListDoesNotContain("visibility", siteModel.getVisibility().toString()) + .and().entriesListDoesNotContain("title", siteModel.getTitle()); } @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, @@ -77,7 +89,13 @@ public class DeleteFavoritesSanityTests extends RestTest restClient.authenticateUser(siteContributor).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); - restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel.getGuid()) + .and().entriesListDoesNotContain("id", siteModel.getId()) + .and().entriesListDoesNotContain("description", siteModel.getDescription()) + .and().entriesListDoesNotContain("visibility", siteModel.getVisibility().toString()) + .and().entriesListDoesNotContain("title", siteModel.getTitle()); } @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, @@ -89,7 +107,13 @@ public class DeleteFavoritesSanityTests extends RestTest restClient.authenticateUser(siteConsumer).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); - restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel.getGuid()) + .and().entriesListDoesNotContain("id", siteModel.getId()) + .and().entriesListDoesNotContain("description", siteModel.getDescription()) + .and().entriesListDoesNotContain("visibility", siteModel.getVisibility().toString()) + .and().entriesListDoesNotContain("title", siteModel.getTitle()); } @Bug(id="MNT-16557") @@ -100,6 +124,7 @@ public class DeleteFavoritesSanityTests extends RestTest { UserModel siteCollaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator); restClient.authenticateUser(siteCollaborator).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI() .usingAuthUser().deleteSiteFromFavorites(siteModel) .assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); From fbdda1c6a8029d59960b9477d04903b2d909c76c Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Tue, 10 Jan 2017 15:59:37 +0200 Subject: [PATCH 14/65] TAS-2626, TAS-2627, TAS-2628 added new full tests and method to assed field is not present in entries --- .../people/GetPeopleActivitiesFullTests.java | 46 ++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java index 5e01bb755..8950cd654 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java @@ -146,11 +146,55 @@ public class GetPeopleActivitiesFullTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user cannot get activities for another user with Rest API and response is successful") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user cannot get activities for another user with Rest API and response is permission denied") public void userGetPeopleActivitiesForAnotherUser() throws Exception { restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(managerUser).getPersonActivities(); restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN); restClient.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities with properties parameter applied with Rest API and response is successful") + public void userGetPeopleActivitiesUsingPropertiesParameter() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().usingParams("properties=postPersonId").getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restActivityModelsCollection.assertThat().paginationField("count").is("4"); + restActivityModelsCollection.assertThat().entriesListContains("postPersonId", userModel.getUsername().toLowerCase()) + .and().entriesListContains("postPersonId", adminUser.getUsername().toLowerCase()) + .and().entriesListContains("postPersonId", managerUser.getUsername().toLowerCase()) + .and().entriesListDoesNotContain("postedAt") + .and().entriesListDoesNotContain("feedPersonId") + .and().entriesListDoesNotContain("siteId") + .and().entriesListDoesNotContain("activitySummary") + .and().entriesListDoesNotContain("id") + .and().entriesListDoesNotContain("activityType"); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities with skipCount parameter applied with Rest API and response is successful") + public void userGetPeopleActivitiesUsingSkipCountParameter() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().usingParams("skipCount=2").getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restActivityModelsCollection.assertThat().paginationField("count").is("2"); + restActivityModelsCollection.getEntries().get(0).onModel().assertThat().field("postPersonId").is(userModel.getUsername().toLowerCase()) + .and().field("activityType").is(ActivityType.FOLDER_ADDED.toString()); + restActivityModelsCollection.getEntries().get(1).onModel().assertThat().field("postPersonId").is(userModel.getUsername().toLowerCase()) + .and().field("activityType").is(ActivityType.FILE_ADDED.toString()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities with maxItems parameter applied with Rest API and response is successful") + public void userGetPeopleActivitiesUsingMaxItemsParameter() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().usingParams("maxItems=2").getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restActivityModelsCollection.assertThat().paginationField("count").is("2"); + restActivityModelsCollection.getEntries().get(0).onModel().assertThat().field("postPersonId").is(managerUser.getUsername().toLowerCase()) + .and().field("activityType").is(ActivityType.USER_JOINED.toString()); + restActivityModelsCollection.getEntries().get(1).onModel().assertThat().field("postPersonId").is(adminUser.getUsername().toLowerCase()) + .and().field("activityType").is(ActivityType.FILE_ADDED.toString()); + } } From 8bbe4754db576885fe87364be4718c2a6c775890 Mon Sep 17 00:00:00 2001 From: mionescu Date: Tue, 10 Jan 2017 16:36:59 +0200 Subject: [PATCH 15/65] test - added tenant tests --- .../people/DeleteFavoriteSiteFullTests.java | 185 ++++++++++++++++++ 1 file changed, 185 insertions(+) create mode 100644 e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteFullTests.java b/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteFullTests.java new file mode 100644 index 000000000..16d74659b --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteFullTests.java @@ -0,0 +1,185 @@ +package org.alfresco.rest.people; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestSiteModel; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.data.DataUser.ListUserWithRoles; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class DeleteFavoriteSiteFullTests extends RestTest +{ + UserModel userModel; + SiteModel siteModel, siteModel1; + UserModel adminUserModel, adminTenantUser, tenantUser; + RestSiteModel restSiteModel; + ListUserWithRoles usersWithRoles; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + userModel = dataUser.createRandomTestUser(); + siteModel = dataSite.usingUser(userModel).createPublicRandomSite(); + adminUserModel = dataUser.getAdminUser(); + + usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, + UserRole.SiteContributor); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }, executionType = ExecutionType.REGRESSION, + description = "User is not able to remove a favorite site of admin user") + public void userIsNotAbleToDeleteFavoritesOfAdmin() throws Exception + { + UserModel contributor = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor); + dataSite.usingUser(contributor).usingSite(siteModel).addSiteToFavorites(); + + restClient.authenticateUser(contributor) + .withCoreAPI().usingUser(adminUserModel).removeFavoriteSite(siteModel); + + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError() + .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }, executionType = ExecutionType.REGRESSION, + description = "Users removed twice from favorites same site.") + public void managerUserRemovesDeletedFavoriteSite() throws Exception + { + UserModel managerUser = usersWithRoles.getOneUserWithRole(UserRole.SiteManager); + dataSite.usingUser(managerUser).usingSite(siteModel).addSiteToFavorites(); + + restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel); + restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.NOT_FAVOURITE_SITE, siteModel.getTitle())); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }, executionType = ExecutionType.REGRESSION, + description = "Users removes from favorite a site that is already deleted.") + public void consumerUserRemovesDeletedFavoriteSite() throws Exception + { + siteModel1 = dataSite.usingUser(userModel).createPublicRandomSite(); + UserModel consumerUser = dataUser.usingAdmin().createRandomTestUser(); + dataUser.usingUser(userModel).addUserToSite(consumerUser, siteModel1, UserRole.SiteConsumer); + dataSite.usingUser(consumerUser).usingSite(siteModel1).addSiteToFavorites(); + + dataSite.usingAdmin().deleteSite(siteModel1); + restClient.authenticateUser(consumerUser).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel1); + + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, + consumerUser.getUsername(), siteModel1.getId())); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }, executionType = ExecutionType.REGRESSION, + description = "Delete favorite site that is NOT favorite.") + public void adminUserRemovesDeletedFavoriteSiteThatIsNotFavorite() throws Exception + { + siteModel = dataSite.usingUser(userModel).createPublicRandomSite(); + restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel); + + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.NOT_FAVOURITE_SITE, siteModel.getTitle())); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify user doesn't have permission to delete favorites of another user with Rest API and status code is 403") + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + public void userIsNotAbleToDeleteFavoritesOfAnotherUser() throws JsonToModelConversionException, Exception + { + UserModel siteCollaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator); + dataSite.usingUser(siteCollaborator).usingSite(siteModel).addSiteToFavorites(); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)) + .withCoreAPI() + .usingUser(siteCollaborator) + .removeFavoriteSite(siteModel); + + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError() + .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } + + @Bug(id="MNT-16904") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify tenant user is not able to delete favorites using an invalid network ID") + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.NETWORKS, TestGroup.FULL }) + public void tenantIsNotAbleToDeleteFavoriteSiteWithInvalidNetworkID() throws JsonToModelConversionException, Exception + { + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUserModel).usingTenant().createTenant(adminTenantUser); + tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + siteModel = dataSite.usingUser(tenantUser).createPublicRandomSite(); + siteModel.setGuid(restClient.authenticateUser(tenantUser).withCoreAPI().usingSite(siteModel).getSite().getGuid()); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + tenantUser.setDomain("invalidNetwork"); + + restClient.withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED) + .assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED) + .containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify tenant user deletes favorites site and status code is (204)") + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.NETWORKS, TestGroup.FULL }) + public void tenantDeleteFavoriteSiteValidNetwork() throws JsonToModelConversionException, Exception + { + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUserModel).usingTenant().createTenant(adminTenantUser); + tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + siteModel = dataSite.usingUser(tenantUser).createPublicRandomSite(); + siteModel.setGuid(restClient.authenticateUser(tenantUser).withCoreAPI().usingSite(siteModel).getSite().getGuid()); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + tenantUser.setDomain(tenantUser.getDomain()); + + restClient.withCoreAPI() + .usingAuthUser().removeFavoriteSite(siteModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel.getGuidWithoutVersion()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify tenant user deletes favorites site created by admin tenant - same network and status code is (204)") + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE,TestGroup.NETWORKS, TestGroup.FULL }) + public void tenantUserIsAbleToDeleteFavoriteSiteAddedByAdminSameNetwork() throws JsonToModelConversionException, Exception + { + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUserModel).usingTenant().createTenant(adminTenantUser); + tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + siteModel = dataSite.usingUser(adminTenantUser).createPublicRandomSite(); + siteModel.setGuid(restClient.authenticateUser(adminTenantUser).withCoreAPI().usingSite(siteModel).getSite().getGuid()); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + tenantUser.setDomain(adminTenantUser.getDomain()); + + restClient.withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel.getGuidWithoutVersion()); + } + +} From bf07742569512ae9c035161cbdb25501781a8f77 Mon Sep 17 00:00:00 2001 From: mionescu Date: Tue, 10 Jan 2017 16:38:29 +0200 Subject: [PATCH 16/65] updated tenant tests --- .../org/alfresco/rest/favorites/DeleteFavoriteFullTests.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java index f79958390..7efeca5e9 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java @@ -218,7 +218,7 @@ public class DeleteFavoriteFullTests extends RestTest restClient.withCoreAPI().usingAuthUser().getFavorites() .assertThat() - .entriesListDoesNotContain("targetGuid", fileModel.getNodeRefWithoutVersion()); + .entriesListDoesNotContain("targetGuid", siteModel.getGuidWithoutVersion()); } @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, @@ -240,7 +240,7 @@ public class DeleteFavoriteFullTests extends RestTest restClient.withCoreAPI().usingAuthUser().getFavorites() .assertThat() - .entriesListDoesNotContain("targetGuid", fileModel.getNodeRefWithoutVersion()); + .entriesListDoesNotContain("targetGuid", siteModel.getGuidWithoutVersion()); } } From 2985490aedb2da49fd24c23b5e342ae904228be6 Mon Sep 17 00:00:00 2001 From: cagache Date: Tue, 10 Jan 2017 16:59:01 +0200 Subject: [PATCH 17/65] addSiteMembershipRequest test with tenant --- .../AddSiteMembershipRequestFullTests.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/e2e-test/java/org/alfresco/rest/people/AddSiteMembershipRequestFullTests.java b/e2e-test/java/org/alfresco/rest/people/AddSiteMembershipRequestFullTests.java index 1e60b408a..dd418e472 100644 --- a/e2e-test/java/org/alfresco/rest/people/AddSiteMembershipRequestFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/AddSiteMembershipRequestFullTests.java @@ -142,7 +142,15 @@ public class AddSiteMembershipRequestFullTests extends RestTest siteMembershipRequest = restClient.authenticateUser(regularUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); restClient.assertStatusCodeIs(HttpStatus.CREATED); siteMembershipRequest.assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("message").is("Please accept me") .assertThat().field("site").isNotEmpty(); + siteMembershipRequest.getSite() + .assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("title").is(moderatedSite.getTitle()); + siteMembershipRequests = restClient.withCoreAPI().usingAuthUser().getSiteMembershipRequests(); restClient.assertStatusCodeIs(HttpStatus.OK); siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite.getId()) @@ -267,6 +275,23 @@ public class AddSiteMembershipRequestFullTests extends RestTest .assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminTenantUser.getUsername().toLowerCase(), publicSite.getId())); } + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL, TestGroup.NETWORKS }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify create site membership request returns status code 200 with tenant.") + public void addSiteMembershipRequestWithTenant() throws Exception + { + UserModel adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUser) + .usingTenant().createTenant(adminTenantUser); + UserModel tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + + SiteModel tenantPublicSite = dataSite.usingUser(adminTenantUser).createPublicRandomSite(); + siteMembershipRequest = restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(tenantPublicSite); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + siteMembershipRequest.assertThat().field("id").is(tenantPublicSite.getId()) + .assertThat().field("site").isNotEmpty(); + } + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify site membership request is automatically rejected when a site is switched from moderated to private") From 0a749e340e56003f625c6d4506876aaf7ece68ed Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Tue, 10 Jan 2017 16:59:33 +0200 Subject: [PATCH 18/65] TAS-2616 added new full test, added new method for get activity list without retry --- .../people/GetPeopleActivitiesFullTests.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java index 8950cd654..df5246458 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java @@ -16,6 +16,7 @@ import org.alfresco.utility.model.FolderModel; import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; import org.alfresco.utility.testrail.ExecutionType; import org.alfresco.utility.testrail.annotation.TestRail; import org.springframework.http.HttpStatus; @@ -50,6 +51,11 @@ public class GetPeopleActivitiesFullTests extends RestTest managerUser = dataUser.createRandomTestUser(); dataUser.usingUser(userModel).addUserToSite(managerUser, siteModel2, UserRole.SiteManager); + + // only once the activity list is checked with retry in order not to wait the entire list in each test + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getPersonActivitiesWithRetry(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restActivityModelsCollection.assertThat().paginationField("count").is("4"); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) @@ -72,6 +78,24 @@ public class GetPeopleActivitiesFullTests extends RestTest restActivityModelsCollection.assertThat().entriesListContains("activityType", ActivityType.USER_JOINED.toString()); } + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify activity summary from user gets activities response with Rest API") + public void userGetPeopleActivitiesWithActivitySummaryCheck() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restActivityModelsCollection.assertThat().paginationField("count").is("4"); + RestActivitySummaryModel summary = restActivityModelsCollection.getEntries().get(0).onModel().getActivitySummary(); + summary.assertThat().field("firstName").is(managerUser.getUsername() + " FirstName") + .and().field("lastName").is("LN-" + managerUser.getUsername()) + .and().field("memberFirstName").is(managerUser.getUsername() + " FirstName") + .and().field("role").is(managerUser.getUserRole()) + .and().field("memberLastName").is("LN-" + managerUser.getUsername()) + .and().field("title").is(String.format("%s FirstName LN-%s (%s)", managerUser.getUsername(), managerUser.getUsername(), managerUser.getUsername())) + .and().field("memberPersonId").is(managerUser.getUsername()); + } + + @Bug(id = "ACE-5460") @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user cannot get activities for empty user with Rest API and response is 404") public void userCannotGetPeopleActivitiesForEmptyPersonId() throws Exception From 43c8011d92e63efe25fa4bb8a9fcaa53828b7568 Mon Sep 17 00:00:00 2001 From: mionescu Date: Tue, 10 Jan 2017 17:01:14 +0200 Subject: [PATCH 19/65] test- added - deleteFavoriteIfPersonIdIsEmpty --- .../rest/favorites/DeleteFavoriteCoreTests.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java index 3c61a76a6..bd49c254a 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java @@ -55,6 +55,18 @@ public class DeleteFavoriteCoreTests extends RestTest .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "inexistent")); } + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify that status code is 404 if PersonID is empty - favorite file.") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE}) + public void deleteFavoriteIfPersonIdIsEmpty() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(siteModel); + restClient.withCoreAPI().usingAuthUser().addFileToFavorites(fileModel); + + restClient.withCoreAPI().usingUser(new UserModel ("", "")) + .deleteFileFromFavorites(fileModel).assertStatusCodeIs(HttpStatus.BAD_REQUEST); + } + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify that status code is 404 if FavoriteID is incorrect - favorite file.") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE}) From 903565ff19ae85af8275af4609d2bc87a6ef349f Mon Sep 17 00:00:00 2001 From: mionescu Date: Tue, 10 Jan 2017 17:03:47 +0200 Subject: [PATCH 20/65] updated test (deleteFavoriteIfPersonIdIsEmpty)- added bugID --- .../org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java index bd49c254a..15c954a6f 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java @@ -55,6 +55,7 @@ public class DeleteFavoriteCoreTests extends RestTest .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "inexistent")); } + @Bug(id="ACE-2413") @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify that status code is 404 if PersonID is empty - favorite file.") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE}) From 789f6afabdbc39d62758da0823d2abccb5624bc4 Mon Sep 17 00:00:00 2001 From: cagache Date: Tue, 10 Jan 2017 17:12:55 +0200 Subject: [PATCH 21/65] TAS-2707 getSiteMembershipRequest test "valid request (0.0) -> json schema validation to be done" --- .../GetSiteMembershipRequestsSanityTests.java | 73 ++++++++++--------- 1 file changed, 38 insertions(+), 35 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsSanityTests.java b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsSanityTests.java index 34990bddd..78a08b88e 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsSanityTests.java @@ -1,7 +1,10 @@ package org.alfresco.rest.people; import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestSiteMembershipRequestModelsCollection; import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.data.DataUser; import org.alfresco.utility.data.RandomData; import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; @@ -22,21 +25,21 @@ import org.testng.annotations.Test; public class GetSiteMembershipRequestsSanityTests extends RestTest { - UserModel userModel; - SiteModel siteModel; - UserModel newMember; + UserModel siteManager, newMember; + DataUser.ListUserWithRoles usersWithRoles; + SiteModel moderatedSite; + RestSiteMembershipRequestModelsCollection siteMembershipRequests; @BeforeClass(alwaysRun = true) public void dataPreparation() throws Exception { - userModel = dataUser.createRandomTestUser(); - String siteId = RandomData.getRandomName("site"); - siteModel = dataSite.usingUser(userModel).createSite(new SiteModel(Visibility.MODERATED, siteId, siteId, siteId, siteId)); + siteManager = dataUser.createRandomTestUser(); + moderatedSite = dataSite.usingUser(siteManager).createModeratedRandomSite(); newMember = dataUser.createRandomTestUser(); - - restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel); - + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); restClient.assertStatusCodeIs(HttpStatus.CREATED); + usersWithRoles = dataUser.addUsersWithRolesToSite(moderatedSite, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, + UserRole.SiteContributor); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) @@ -44,11 +47,10 @@ public class GetSiteMembershipRequestsSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify manager user gets all site membership requests of a specific person with Rest API and response is successful (200)") public void managerUserGetsSiteMembershipRequestsWithSuccess() throws Exception { - UserModel managerUser = dataUser.usingAdmin().createRandomTestUser(); - dataUser.usingUser(userModel).addUserToSite(managerUser, siteModel, UserRole.SiteManager); - - restClient.authenticateUser(managerUser).withCoreAPI().usingUser(newMember).getSiteMembershipRequests().assertThat().entriesListIsNotEmpty(); + siteMembershipRequests = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI() + .usingUser(newMember).getSiteMembershipRequests(); restClient.assertStatusCodeIs(HttpStatus.OK); + siteMembershipRequests.assertThat().entriesListIsNotEmpty(); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) @@ -56,10 +58,8 @@ public class GetSiteMembershipRequestsSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify collaborator user fails to get all site membership requests of another user with Rest API (403)") public void collaboratorUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception { - UserModel collaboratorUser = dataUser.usingAdmin().createRandomTestUser(); - dataUser.usingUser(userModel).addUserToSite(collaboratorUser, siteModel, UserRole.SiteCollaborator); - - restClient.authenticateUser(collaboratorUser).withCoreAPI().usingUser(newMember).getSiteMembershipRequests(); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI() + .usingUser(newMember).getSiteMembershipRequests(); restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN); } @@ -68,10 +68,8 @@ public class GetSiteMembershipRequestsSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify contributor user fails to get all site membership requests of another user with Rest API (403)") public void contributorUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception { - UserModel contributorUser = dataUser.usingAdmin().createRandomTestUser(); - dataUser.usingUser(userModel).addUserToSite(contributorUser, siteModel, UserRole.SiteContributor); - - restClient.authenticateUser(contributorUser).withCoreAPI().usingUser(newMember).getSiteMembershipRequests(); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI() + .usingUser(newMember).getSiteMembershipRequests(); restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN); } @@ -80,10 +78,7 @@ public class GetSiteMembershipRequestsSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify consumer user fails to get all site membership requests of another user with Rest API (403)") public void consumerUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception { - UserModel consumerUser = dataUser.usingAdmin().createRandomTestUser(); - dataUser.usingUser(userModel).addUserToSite(consumerUser, siteModel, UserRole.SiteConsumer); - - restClient.authenticateUser(consumerUser).withCoreAPI().usingUser(newMember).getSiteMembershipRequests(); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingUser(newMember).getSiteMembershipRequests(); restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN); } @@ -92,29 +87,37 @@ public class GetSiteMembershipRequestsSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify admin user gets all site membership requests of a specific person with Rest API and response is successful (200)") public void adminUserGetsSiteMembershipRequestsWithSuccess() throws Exception { - UserModel adminUser = dataUser.getAdminUser(); - - restClient.authenticateUser(adminUser).withCoreAPI().usingUser(newMember).getSiteMembershipRequests().assertThat().entriesListIsNotEmpty(); + siteMembershipRequests = restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI() + .usingUser(newMember).getSiteMembershipRequests(); restClient.assertStatusCodeIs(HttpStatus.OK); + siteMembershipRequests.assertThat().entriesListIsNotEmpty(); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) @Bug(id = "MNT-16904") @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify manager user fails to get all site membership requests of a specific person with Rest API when the authentication fails (401)") - public void managerUserNotAuthorizedFailsToGetSiteMembershipRequests() throws Exception + public void unauthorizedUserFailsToGetSiteMembershipRequests() throws Exception { - UserModel managerUser = dataUser.usingAdmin().createRandomTestUser(); - dataUser.usingUser(userModel).addUserToSite(managerUser, siteModel, UserRole.SiteManager); - managerUser.setPassword("newpassword"); - restClient.authenticateUser(managerUser).withCoreAPI().usingUser(newMember).getSiteMembershipRequests(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED); + restClient.authenticateUser(new UserModel("random user", "random password")).withCoreAPI() + .usingAuthUser().getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED) + .assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify a user gets all its own site membership requests with Rest API and response is successful (200)") public void oneUserGetsItsOwnSiteMembershipRequestsWithSuccess() throws Exception { - restClient.authenticateUser(newMember).withCoreAPI().usingUser(newMember).getSiteMembershipRequests().assertThat().entriesListIsNotEmpty(); + siteMembershipRequests = restClient.authenticateUser(newMember).withCoreAPI().usingUser(newMember).getSiteMembershipRequests(); restClient.assertStatusCodeIs(HttpStatus.OK); + siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite.getId()) + .assertThat().entriesListContains("message", "Please accept me") + .assertThat().entriesListCountIs(1); + siteMembershipRequests.getEntries().get(0).onModel().getSite() + .assertThat().field("visibility").is(moderatedSite.getVisibility()) + .assertThat().field("guid").is(moderatedSite.getGuid()) + .assertThat().field("description").is(moderatedSite.getDescription()) + .assertThat().field("id").is(moderatedSite.getId()) + .assertThat().field("title").is(moderatedSite.getTitle()); } } From 722d062b716c86f1a4396754f6c4f7cd013a1df0 Mon Sep 17 00:00:00 2001 From: cagache Date: Tue, 10 Jan 2017 17:15:13 +0200 Subject: [PATCH 22/65] TAS-2705 getSiteMembershipRequest test "check default error schema" --- .../GetSiteMembershipRequestsCoreTests.java | 71 +++++++++++++------ 1 file changed, 50 insertions(+), 21 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsCoreTests.java b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsCoreTests.java index dae11e055..b82ea8998 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsCoreTests.java @@ -35,30 +35,46 @@ public class GetSiteMembershipRequestsCoreTests extends RestTest newMember = dataUser.createRandomTestUser(); restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite); - restClient.assertStatusCodeIs(HttpStatus.CREATED); } - @TestRail(section = { TestGroup.REST_API, - TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify that for invalid maxItems parameter status code returned is 400.") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Verify that for invalid maxItems parameter status code returned is 400.") @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) public void checkInvalidMaxItemsStatusCode() throws Exception { - restClient.authenticateUser(adminUser).withParams("maxItems=AB").withCoreAPI().usingUser(newMember).getSiteMembershipRequests(); - restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary("Invalid paging parameter"); + restClient.authenticateUser(adminUser).withParams("maxItems=AB") + .withCoreAPI().usingUser(newMember).getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "AB")); + + restClient.authenticateUser(adminUser).withParams("maxItems=0") + .withCoreAPI().usingUser(newMember).getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS); } - @TestRail(section = { TestGroup.REST_API, - TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify that for invalid skipCount parameter status code returned is 400.") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Verify that for invalid skipCount parameter status code returned is 400.") @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) public void checkInvalidSkipCountStatusCode() throws Exception { - restClient.authenticateUser(adminUser).withParams("skipCount=AB").withCoreAPI().usingUser(newMember).getSiteMembershipRequests(); - restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary("Invalid paging parameter"); + restClient.authenticateUser(adminUser).withParams("skipCount=AB") + .withCoreAPI().usingUser(newMember).getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "AB")); + + restClient.authenticateUser(adminUser).withParams("skipCount=-1") + .withCoreAPI().usingUser(newMember).getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsSummary(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT); } - @TestRail(section = { TestGroup.REST_API, - TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify that if personId does not exist status code returned is 404.") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Verify that if personId does not exist status code returned is 404.") @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) public void ifPersonIdDoesNotExist() throws Exception { @@ -66,11 +82,17 @@ public class GetSiteMembershipRequestsCoreTests extends RestTest nonexistentUser.setUsername("nonexistent"); restClient.authenticateUser(adminUser).withCoreAPI().usingUser(nonexistentUser).getSiteMembershipRequests(); - restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "nonexistent")); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "nonexistent")) + .statusCodeIs(HttpStatus.NOT_FOUND) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE) + .containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY); } - @TestRail(section = { TestGroup.REST_API, - TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Specify -me- string in place of for request.") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Specify -me- string in place of for request.") @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) public void replacePersonIdWithMeRequest() throws Exception { @@ -81,7 +103,9 @@ public class GetSiteMembershipRequestsCoreTests extends RestTest returnedCollection.assertThat().entriesListContains("id", moderatedSite.getId()); } - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify that if empty personId is used status code returned is 404.") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Verify that if empty personId is used status code returned is 404.") @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) public void useEmptyPersonId() throws Exception { @@ -89,11 +113,13 @@ public class GetSiteMembershipRequestsCoreTests extends RestTest emptyNameMember.setUsername(" "); restClient.authenticateUser(adminUser).withCoreAPI().usingUser(emptyNameMember).getSiteMembershipRequests(); - restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary("The entity with id: " + emptyNameMember.getUsername() + " was not found"); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, emptyNameMember.getUsername())); } - @TestRail(section = { TestGroup.REST_API, - TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Get site membership requests to a public site.") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Get site membership requests to a public site.") @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) public void getRequestsToPublicSite() throws Exception { @@ -105,8 +131,9 @@ public class GetSiteMembershipRequestsCoreTests extends RestTest returnedCollection.assertThat().entriesListDoesNotContain("id", publicSite.getId()); } - @TestRail(section = { TestGroup.REST_API, - TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Get site membership requests to a moderated site.") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Get site membership requests to a moderated site.") @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) public void getRequestsToModeratedSite() throws Exception { @@ -117,7 +144,9 @@ public class GetSiteMembershipRequestsCoreTests extends RestTest returnedCollection.assertThat().entriesListContains("id", moderatedSite.getId()); } - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Approve request then get requests.") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Approve request then get requests.") @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) public void approveRequestThenGetRequests() throws Exception { From 955ad87826ee8174d0d5ec39ed56693b3806c4b2 Mon Sep 17 00:00:00 2001 From: Paul Brodner Date: Tue, 10 Jan 2017 17:39:43 +0200 Subject: [PATCH 23/65] update log4j to include threads --- e2e-test/resources/log4j.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e-test/resources/log4j.properties b/e2e-test/resources/log4j.properties index ede92a004..00e9b5a11 100644 --- a/e2e-test/resources/log4j.properties +++ b/e2e-test/resources/log4j.properties @@ -6,13 +6,13 @@ log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=./target/reports/alfresco-tas.log log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout -log4j.appender.file.layout.ConversionPattern=%d{HH:mm:ss} %-5p %c{1}:%L - %m%n +log4j.appender.file.layout.ConversionPattern=[%t] %d{HH:mm:ss} %-5p %c{1}:%L - %m%n # Direct log messages to stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss} %-5p %c{1}:%L - %m%n +log4j.appender.stdout.layout.ConversionPattern=[%t] %d{HH:mm:ss} %-5p %c{1}:%L - %m%n # TestRail particular log file # Direct log messages to a log file From 70894b1ce7ecbe1d69f1db90701290986f569a1e Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Tue, 10 Jan 2017 17:42:23 +0200 Subject: [PATCH 24/65] added core tests for GetPeopleActivities --- .../people/GetPeopleActivitiesCoreTests.java | 127 ++++++++++++++++++ .../people/GetPeopleActivitiesFullTests.java | 6 +- .../GetPeopleActivitiesSanityTests.java | 5 + 3 files changed, 135 insertions(+), 3 deletions(-) create mode 100644 e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java new file mode 100644 index 000000000..1ecc70160 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java @@ -0,0 +1,127 @@ +package org.alfresco.rest.people; + +import org.alfresco.dataprep.CMISUtil.DocumentType; +import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestActivityModelsCollection; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.utility.constants.ActivityType; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.model.FileModel; +import org.alfresco.utility.model.FolderModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +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.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +/** + * + * @author Cristina Axinte + * + */ +public class GetPeopleActivitiesCoreTests extends RestTest +{ + UserModel userModel, adminUser, managerUser; + SiteModel siteModel1, siteModel2; + FileModel fileInSite1, fileInSite2; + FolderModel folderInSite2; + private RestActivityModelsCollection restActivityModelsCollection; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUser = dataUser.getAdminUser(); + userModel = dataUser.createRandomTestUser(); + siteModel1 = dataSite.usingUser(userModel).createPublicRandomSite(); + fileInSite1 = dataContent.usingUser(userModel).usingSite(siteModel1).createContent(DocumentType.TEXT_PLAIN); + + siteModel2 = dataSite.usingUser(userModel).createPublicRandomSite(); + folderInSite2 = dataContent.usingUser(userModel).usingSite(siteModel2).createFolder(); + fileInSite2 = dataContent.usingAdmin().usingSite(siteModel2).createContent(DocumentType.TEXT_PLAIN); + + managerUser = dataUser.createRandomTestUser(); + dataUser.usingUser(userModel).addUserToSite(managerUser, siteModel2, UserRole.SiteManager); + + // only once the activity list is checked with retry in order not to wait the entire list in each test + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getPersonActivitiesWithRetry(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restActivityModelsCollection.assertThat().paginationField("count").is("4"); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user cannot get activities for inexistent user with Rest API and response is 404") + public void userCannotGetPeopleActivitiesForInexistentPersonId() throws Exception + { + UserModel inexistentUserName = new UserModel("inexistent", "password"); + + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(inexistentUserName).getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY) + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUserName.getUsername())) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets its activities for inexistent siteId with Rest API and response is 404") + public void userGetItsPeopleActivitiesForInexistentSite() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(userModel).usingParams(String.format("siteId=inexistent")).getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY) + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "inexistent")) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities with invald skipCount parameter with Rest API and response is 400") + public void userGetPeopleActivitiesUsingSkipCountParameter() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().usingParams("skipCount=-1").getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsErrorKey(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT) + .containsSummary(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT) + .stackTraceIs(RestErrorModel.STACKTRACE) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities with invalid maxItems parameter with Rest API and response is 400") + public void userGetPeopleActivitiesUsingMaxItemsParameter() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().usingParams("maxItems=0").getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsErrorKey(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS) + .containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS) + .stackTraceIs(RestErrorModel.STACKTRACE) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities using invalid value for parameter 'who'with Rest API and response is 400") + public void userGetsPeopleActivitiesUsingMeForWhoParameter() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(userModel).usingParams("who=mee").getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsErrorKey(RestErrorModel.INVALID_PARAMETER_WHO) + .containsSummary(RestErrorModel.INVALID_PARAMETER_WHO) + .stackTraceIs(RestErrorModel.STACKTRACE) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities successfully using parameter 'who' with 'others' value with Rest API") + public void userGetsPeopleActivitiesUsingOthersForWhoParameter() throws Exception + { + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(userModel).usingParams("who=others").getPersonActivities(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restActivityModelsCollection.assertThat().paginationField("count").is("2"); + restActivityModelsCollection.assertThat().entriesListDoesNotContain("postPersonId", userModel.getUsername().toLowerCase()) + .and().entriesListContains("postPersonId", adminUser.getUsername().toLowerCase()) + .and().entriesListContains("postPersonId", managerUser.getUsername().toLowerCase()); + } +} diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java index df5246458..f6536c095 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java @@ -97,13 +97,13 @@ public class GetPeopleActivitiesFullTests extends RestTest @Bug(id = "ACE-5460") @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user cannot get activities for empty user with Rest API and response is 404") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user cannot get activities for empty user with Rest API and response is 400") public void userCannotGetPeopleActivitiesForEmptyPersonId() throws Exception { UserModel emptyUserName = new UserModel("", "password"); restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(emptyUserName).getPersonActivities(); - restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) .assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY) .containsSummary(RestErrorModel.LOCAL_NAME_CONSISTANCE) .stackTraceIs(RestErrorModel.STACKTRACE) @@ -111,7 +111,7 @@ public class GetPeopleActivitiesFullTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.FULL }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities successfully using parameter 'who' with 'me'vale with Rest API") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities successfully using parameter 'who' with 'me' value with Rest API") public void userGetsPeopleActivitiesUsingMeForWhoParameter() throws Exception { restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(userModel).usingParams("who=me").getPersonActivities(); diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesSanityTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesSanityTests.java index 0e3f3cd59..96fb63082 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesSanityTests.java @@ -37,6 +37,11 @@ public class GetPeopleActivitiesSanityTests extends RestTest UserRole.SiteContributor); unauthenticatedUser = dataUser.usingAdmin().createRandomTestUser(); unauthenticatedUser.setPassword("newpassword"); + + // only once the activity list is checked with retry in order not to wait the entire list in each test + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser().getPersonActivitiesWithRetry(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restActivityModelsCollection.assertThat().entriesListIsNotEmpty(); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.SANITY }) From ed0944575adf7d7203ebc3270ff6416fa6aee1cb Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Wed, 11 Jan 2017 11:11:24 +0200 Subject: [PATCH 25/65] added full tests for GetPeoplePreferences for tasks from TAS-2629 to TAS-2640 --- .../people/GetPeopleActivitiesCoreTests.java | 1 - .../people/GetPeoplePreferencesFullTests.java | 130 ++++++++++++++++++ 2 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java index 1ecc70160..a7549c9c0 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java @@ -4,7 +4,6 @@ import org.alfresco.dataprep.CMISUtil.DocumentType; import org.alfresco.rest.RestTest; import org.alfresco.rest.model.RestActivityModelsCollection; import org.alfresco.rest.model.RestErrorModel; -import org.alfresco.utility.constants.ActivityType; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FolderModel; diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesFullTests.java new file mode 100644 index 000000000..8eda8ca1f --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesFullTests.java @@ -0,0 +1,130 @@ +package org.alfresco.rest.people; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestPreferenceModelsCollection; +import org.alfresco.utility.constants.PreferenceName; +import org.alfresco.utility.model.FolderModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +/** + * + * @author Cristina Axinte + * + */ +public class GetPeoplePreferencesFullTests extends RestTest +{ + UserModel userModel, user1, user2, adminUser; + SiteModel siteModel; + FolderModel folderModel; + private RestPreferenceModelsCollection restPreferenceModelsCollection; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUser = dataUser.getAdminUser(); + userModel = dataUser.createRandomTestUser(); + siteModel = dataSite.usingUser(userModel).createPublicRandomSite(); + folderModel = dataContent.usingUser(userModel).usingSite(siteModel).createFolder(); + + user1 = dataUser.createRandomTestUser(); + dataSite.usingUser(user1).usingSite(siteModel).addSiteToFavorites(); + dataContent.usingUser(user1).usingSite(siteModel).addFolderToFavorites(folderModel); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets its preferences using me with Rest API and response is successful") + public void userGetsItsPeoplePreferencesUsingMe() throws Exception + { + restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingMe().getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restPreferenceModelsCollection.assertThat().paginationField("count").is("4"); + restPreferenceModelsCollection.assertThat().entriesListIsNotEmpty() + .and().entriesListContains("id", String.format(PreferenceName.EXT_FOLDERS_FAVORITES_PREFIX.toString(), "workspace://SpacesStore/" + folderModel.getNodeRef())) + .and().entriesListContains("id", String.format(PreferenceName.EXT_SITES_FAVORITES_PREFIX.toString(), siteModel.getId())) + .and().entriesListContains("id", PreferenceName.FOLDERS_FAVORITES_PREFIX.toString()) + .and().entriesListContains("value", "workspace://SpacesStore/" + folderModel.getNodeRef()) + .and().entriesListContains("id", String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())) + .and().entriesListContains("value", "true"); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets its preferences with skipCount parameter applied with Rest API and response is successful") + public void userGetsItsPeoplePreferencesUsingSkipCountParameter() throws Exception + { + restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingMe().usingParams("skipCount=2").getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restPreferenceModelsCollection.assertThat().paginationField("count").is("2"); + restPreferenceModelsCollection.assertThat().paginationField("skipCount").is("2"); + restPreferenceModelsCollection.assertThat().entriesListIsNotEmpty() + .and().entriesListDoesNotContain("id", String.format(PreferenceName.EXT_FOLDERS_FAVORITES_PREFIX.toString(), "workspace://SpacesStore/" + folderModel.getNodeRef())) + .and().entriesListDoesNotContain("id", String.format(PreferenceName.EXT_SITES_FAVORITES_PREFIX.toString(), siteModel.getId())) + .and().entriesListContains("id", PreferenceName.FOLDERS_FAVORITES_PREFIX.toString()) + .and().entriesListContains("value", "workspace://SpacesStore/" + folderModel.getNodeRef()) + .and().entriesListContains("id", String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())) + .and().entriesListContains("value", "true"); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets its preferences with maxItems parameter applied with Rest API and response is successful") + public void userGetsItsPeoplePreferencesUsingMaxItemsParameter() throws Exception + { + restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingMe().usingParams("maxItems=1").getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restPreferenceModelsCollection.assertThat().paginationField("count").is("1"); + restPreferenceModelsCollection.assertThat().paginationField("maxItems").is("1"); + restPreferenceModelsCollection.assertThat().entriesListIsNotEmpty() + .and().entriesListContains("id", String.format(PreferenceName.EXT_FOLDERS_FAVORITES_PREFIX.toString(), "workspace://SpacesStore/" + folderModel.getNodeRef())) + .and().entriesListDoesNotContain("id", String.format(PreferenceName.EXT_SITES_FAVORITES_PREFIX.toString(), siteModel.getId())) + .and().entriesListDoesNotContain("id", PreferenceName.FOLDERS_FAVORITES_PREFIX.toString()) + .and().entriesListDoesNotContain("value", "workspace://SpacesStore/" + folderModel.getNodeRef()) + .and().entriesListDoesNotContain("id", String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())) + .and().entriesListDoesNotContain("value", "true"); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets admin preferences with Rest API and response is permission denied") + public void userIsForbiddenToGetAdminPreferences() throws Exception + { + restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingUser(adminUser).getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN); + restClient.assertLastError().containsErrorKey(RestErrorModel.PERMISSION_DENIED_ERRORKEY) + .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED) + .stackTraceIs(RestErrorModel.STACKTRACE) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets its preferences with skipCount parameter higher then no of entries with Rest API and response is empty") + public void userGetsItsPeoplePreferencesUsingHighSkipCount() throws Exception + { + restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingMe().usingParams("skipCount=100").getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restPreferenceModelsCollection.assertThat().paginationField("count").is("0"); + restPreferenceModelsCollection.assertThat().paginationField("skipCount").is("100"); + restPreferenceModelsCollection.assertThat().entriesListIsEmpty(); + } + + @Bug(id = "ACE-5460") + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user cannot get preferences for empty user with Rest API and response is 400") + public void userGetsItsPeoplePreferencesForEmptyPersonId() throws Exception + { + UserModel emptyUserName = new UserModel("", "password"); + + restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingUser(emptyUserName).getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY) + .containsSummary(RestErrorModel.LOCAL_NAME_CONSISTANCE) + .stackTraceIs(RestErrorModel.STACKTRACE) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); + } +} From 6522376f0230770aa55ff4634f2352f936a1af60 Mon Sep 17 00:00:00 2001 From: "NESS\\P3700299" Date: Wed, 11 Jan 2017 11:35:36 +0200 Subject: [PATCH 26/65] added Core tests for sanity and fieldCount assertion --- .../rest/favorites/GetFavoriteCoreTests.java | 29 +++++ .../rest/favorites/GetFavoriteFullTests.java | 101 +++++++++++++++--- .../favorites/GetFavoriteSanityTests.java | 3 - 3 files changed, 113 insertions(+), 20 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteCoreTests.java b/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteCoreTests.java index c3b3e0668..60dab9670 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteCoreTests.java @@ -13,6 +13,7 @@ import org.alfresco.utility.model.FolderModel; import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; import org.alfresco.utility.testrail.ExecutionType; import org.alfresco.utility.testrail.annotation.TestRail; import org.springframework.http.HttpStatus; @@ -60,6 +61,22 @@ public class GetFavoriteCoreTests extends RestTest { .containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY); } + @Bug(id = "ACE-2413") + @TestRail(section = { TestGroup.REST_API, + TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify get favorite site when person id is empty") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE }) + public void getFavoriteSiteWithEmptyUserId() throws JsonToModelConversionException, Exception { + + restClient.withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(siteModel); + UserModel someUser = new UserModel("", DataUser.PASSWORD); + + restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(someUser).getFavorite(siteModel.getGuid()); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, someUser.getUsername())) + .statusCodeIs(HttpStatus.BAD_REQUEST); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify get favorite site when favorite id does't exist") @@ -103,4 +120,16 @@ public class GetFavoriteCoreTests extends RestTest { restClient.assertStatusCodeIs(HttpStatus.OK); favoriteSite.assertThat().field("targetGuid").equals(siteModel.getGuid()); } + + @TestRail(section = { TestGroup.REST_API, + TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify get favorite site for -me-") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE }) + public void getFavoriteFileUsingMe() throws Exception + { + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + + RestPersonFavoritesModel favoriteFile = restClient.withCoreAPI().usingMe().getFavorite(fileModel.getNodeRefWithoutVersion()); + restClient.assertStatusCodeIs(HttpStatus.OK); + favoriteFile.assertThat().field("targetGuid").equals(fileModel.getNodeRef()); + } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteFullTests.java b/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteFullTests.java index 05323bb89..6da5b188a 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteFullTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteFullTests.java @@ -6,13 +6,13 @@ import org.alfresco.rest.exception.JsonToModelConversionException; import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestPersonFavoritesModel; import org.alfresco.utility.constants.UserRole; -import org.alfresco.utility.data.DataUser; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.FolderModel; import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; import org.alfresco.utility.testrail.ExecutionType; import org.alfresco.utility.testrail.annotation.TestRail; import org.springframework.http.HttpStatus; @@ -20,7 +20,7 @@ import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class GetFavoriteFullTests extends RestTest { - private UserModel adminUserModel, networkUserModel; + private UserModel adminUserModel; private SiteModel siteModel; private FolderModel folderModel; private FileModel fileModel; @@ -29,7 +29,6 @@ public class GetFavoriteFullTests extends RestTest { @BeforeClass(alwaysRun = true) public void dataPreparation() throws Exception { - networkUserModel = dataUser.createRandomTestUser(); adminUserModel = dataUser.getAdminUser(); restClient.authenticateUser(adminUserModel); @@ -46,22 +45,90 @@ public class GetFavoriteFullTests extends RestTest { UserRole.SiteConsumer, UserRole.SiteContributor); } + + @Bug(id = "MNT-16904") @TestRail(section = { TestGroup.REST_API, - TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify get favorite site when using invalid network id") - @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) - public void getFavoriteSiteWhenNetworkIdIsInvalid() throws JsonToModelConversionException, Exception + TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify the get favorite request for invalid network id") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL, TestGroup.NETWORKS }) + public void getFavoriteSiteWithInvalidNetworkId() throws Exception { - networkUserModel.setDomain("invalidNetwork"); - restClient.withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(siteModel); - UserModel someUser = new UserModel("invalidUser", DataUser.PASSWORD); - - restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(someUser).getFavorite(siteModel.getGuid()); - restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() - .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, someUser.getUsername())) - .statusCodeIs(HttpStatus.NOT_FOUND) - .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) - .stackTraceIs(RestErrorModel.STACKTRACE) - .containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY); + UserModel adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUserModel); + restClient.usingTenant().createTenant(adminTenantUser); + UserModel tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + + siteModel = dataSite.usingUser(tenantUser).createPublicRandomSite(); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + + tenantUser.setDomain("invalidNetwork"); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().getFavorite(siteModel.getGuid()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED) + .assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } + + @TestRail(section = { TestGroup.REST_API, + TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify the get favorite request with tenant user") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL, TestGroup.NETWORKS }) + public void getFavoriteSiteWithTenantUser() throws Exception + { + UserModel adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUserModel).usingTenant().createTenant(adminTenantUser); + UserModel tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + + siteModel = dataSite.usingUser(tenantUser).createPublicRandomSite(); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + + restClient.withCoreAPI().usingAuthUser().getFavorite(siteModel.getGuid()); + restClient.assertStatusCodeIs(HttpStatus.OK); + } + + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify Admin user gets favorite site with Rest API and validate details") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void verifyRequestforGetFavoriteSite() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(adminUserModel); + restClient.withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(siteModel); + + RestPersonFavoritesModel favoriteSite = restClient.withCoreAPI().usingUser(adminUserModel).getFavorite(siteModel.getGuid()); + restClient.assertStatusCodeIs(HttpStatus.OK); + favoriteSite.assertThat().field("targetGuid").equals(siteModel.getGuid()); + favoriteSite.getTarget().getSite() + .assertThat().field("guid").equals(siteModel.getGuid()); + } + + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify Admin user gets favorite site with properties filter") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void verifyRequestforGetFavoriteSiteWithProperties() throws JsonToModelConversionException, Exception + { + UserModel manager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager); + restClient.authenticateUser(manager); + restClient.withCoreAPI().usingUser(manager).addSiteToFavorites(siteModel); + + RestPersonFavoritesModel favoriteSite = restClient.authenticateUser(manager).withParams("properties=targetGuid") + .withCoreAPI().usingAuthUser().getFavorite(siteModel.getGuid()); + restClient.assertStatusCodeIs(HttpStatus.OK); + favoriteSite.assertThat().field("targetGuid").equals(siteModel.getGuid()); + favoriteSite.assertThat().fieldsCount().is(1); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify Admin user gets favorite site with inccorect properties filter") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void verifyRequestforGetFavoriteSiteWithInccorectProperties() throws JsonToModelConversionException, Exception + { + UserModel collaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator); + restClient.authenticateUser(collaborator); + restClient.withCoreAPI().usingUser(collaborator).addSiteToFavorites(siteModel); + + RestPersonFavoritesModel favoriteSite = restClient.authenticateUser(collaborator).withParams("properties=tas") + .withCoreAPI().usingAuthUser().getFavorite(fileModel.getNodeRefWithoutVersion()); + restClient.assertStatusCodeIs(HttpStatus.OK); + favoriteSite.assertThat().fieldsCount().is(0); + } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteSanityTests.java b/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteSanityTests.java index 688ce6ff5..ffd2cdb71 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteSanityTests.java @@ -5,8 +5,6 @@ import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestPersonFavoritesModel; -import org.alfresco.rest.model.RestPersonFavoritesModelsCollection; -import org.alfresco.rest.model.RestSiteModelsCollection; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.model.FileModel; @@ -294,5 +292,4 @@ public class GetFavoriteSanityTests extends RestTest .usingUser(siteManager).getFavorite(siteModel.getGuid()); restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); } - } From df05293a5a1a6f3f75bdabb0b49479cbaf985387 Mon Sep 17 00:00:00 2001 From: Valentin Popa Date: Wed, 11 Jan 2017 11:41:30 +0200 Subject: [PATCH 27/65] Added tests for getPreference REST API call --- .../people/GetPeoplePreferenceFullTests.java | 222 ++++++++++++++++++ 1 file changed, 222 insertions(+) create mode 100644 e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceFullTests.java new file mode 100644 index 000000000..4cc9a45cb --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceFullTests.java @@ -0,0 +1,222 @@ +package org.alfresco.rest.people; + +import java.nio.file.Paths; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestPreferenceModel; +import org.alfresco.utility.Utility; +import org.alfresco.utility.constants.PreferenceName; +import org.alfresco.utility.model.FileModel; +import org.alfresco.utility.model.FileType; +import org.alfresco.utility.model.FolderModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class GetPeoplePreferenceFullTests extends RestTest +{ + private UserModel userModel; + private SiteModel siteModel; + private RestPreferenceModel restPreferenceModel; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + userModel = dataUser.createRandomTestUser(); + siteModel = dataSite.usingUser(userModel).createPublicRandomSite(); + dataSite.usingUser(userModel).usingSite(siteModel).addSiteToFavorites(); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, + description = "Check default error schema in case of failure") + public void checkDefaultErrorSchema() throws Exception + { + restClient.authenticateUser(userModel).withCoreAPI().usingUser(new UserModel("invalidPersonID", "password")) + .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidPersonID")) + .statusCodeIs(HttpStatus.NOT_FOUND) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE) + .containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, + description = "Specify -me- string in place of for request") + public void preferenceIsReturnedWhenUsingMeAsPersonId() throws Exception + { + restPreferenceModel = restClient.authenticateUser(userModel).withCoreAPI().usingMe() + .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + + restClient.assertStatusCodeIs(HttpStatus.OK); + restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()) + .and().field("value").is("true"); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, + description = "Check that properties parameter is applied") + public void propertiesParameterIsAppliedWhenRetrievingPreference() throws Exception + { + restPreferenceModel = restClient.authenticateUser(userModel).withParams("properties=id").withCoreAPI().usingUser(userModel) + .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + restClient.assertStatusCodeIs(HttpStatus.OK); + restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()) + .and().field("value").isNull(); + + restPreferenceModel = restClient.authenticateUser(userModel).withParams("properties=id,value").withCoreAPI().usingUser(userModel) + .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + restClient.assertStatusCodeIs(HttpStatus.OK); + restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()) + .and().field("value").is("true"); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, + description = "Validate ID element in get site preference response") + public void validateIdElementInGetSitePreferenceResponse() throws Exception + { + restPreferenceModel = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser() + .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()) + .and().field("value").is("true"); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, + description = "Validate ID element in get folder preference response") + public void validateIdElementInGetFolderPreferenceResponse() throws Exception + { + FolderModel folderFavorite = new FolderModel("favoriteFolder"); + folderFavorite = dataContent.usingSite(siteModel).createFolder(folderFavorite); + dataContent.getContentActions().setFolderAsFavorite(userModel.getUsername(), userModel.getPassword(), siteModel.getId(), folderFavorite.getName()); + + restPreferenceModel = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser() + .getPersonPreferenceInformation(PreferenceName.FOLDERS_FAVORITES_PREFIX.toString()); + restPreferenceModel.assertThat().field("id").is(PreferenceName.FOLDERS_FAVORITES_PREFIX) + .and().field("value").is(Utility.removeLastSlash(Utility.buildPath("workspace://SpacesStore", folderFavorite.getNodeRef()))); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, + description = "Validate ID element in get file preference response") + public void validateIdElementInGetFilePreferenceResponse() throws Exception + { + FileModel fileFavorite = new FileModel("favoriteFile", FileType.TEXT_PLAIN); + fileFavorite = dataContent.usingSite(siteModel).createContent(fileFavorite); + dataContent.getContentActions().setFileAsFavorite(userModel.getUsername(), userModel.getPassword(), siteModel.getId(), String.format("%s.%s", fileFavorite.getName(), fileFavorite.getFileType().extention)); + + restPreferenceModel = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser() + .getPersonPreferenceInformation(PreferenceName.DOCUMENTS_FAVORITES_PREFIX.toString()); + restPreferenceModel.assertThat().field("id").is(PreferenceName.DOCUMENTS_FAVORITES_PREFIX) + .and().field("value").is(Utility.removeLastSlash(Utility.buildPath("workspace://SpacesStore", fileFavorite.getNodeRefWithoutVersion()))); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, + description = "Get preference of an user that has no preferences") + public void getPreferenceForUserWithoutPreferences() throws Exception + { + UserModel newUser = dataUser.createRandomTestUser(); + + restPreferenceModel = restClient.authenticateUser(newUser).withCoreAPI().usingAuthUser() + .getPersonPreferenceInformation(PreferenceName.DOCUMENTS_FAVORITES_PREFIX.toString()); + restClient.assertLastError().containsSummary( + String.format("The relationship resource was not found for the" + " entity with id: %s and a relationship id of %s", newUser.getUsername(), + PreferenceName.DOCUMENTS_FAVORITES_PREFIX.toString())); + + restPreferenceModel = restClient.authenticateUser(newUser).withCoreAPI().usingAuthUser() + .getPersonPreferenceInformation(PreferenceName.FOLDERS_FAVORITES_PREFIX.toString()); + restClient.assertLastError().containsSummary( + String.format("The relationship resource was not found for the" + " entity with id: %s and a relationship id of %s", newUser.getUsername(), + PreferenceName.FOLDERS_FAVORITES_PREFIX.toString())); + + restPreferenceModel = restClient.authenticateUser(newUser).withCoreAPI().usingAuthUser() + .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX.toString()); + restClient.assertLastError().containsSummary( + String.format("The relationship resource was not found for the" + " entity with id: %s and a relationship id of %s", newUser.getUsername(), + PreferenceName.SITES_FAVORITES_PREFIX.toString())); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, + description = "Change one preference for an user then perform get call") + @Bug(id = "ACE-5736") + public void changePreferenceThenPerformGetPreferenceCall() throws Exception + { + UserModel newUser = dataUser.createRandomTestUser(); + SiteModel site = dataSite.usingUser(newUser).createPublicRandomSite(); + + dataSite.usingUser(newUser).usingSite(site).addSiteToFavorites(); + + FileModel fileFavorite = new FileModel("favoriteFile", FileType.TEXT_PLAIN); + fileFavorite = dataContent.usingSite(site).createContent(fileFavorite); + dataContent.getContentActions().setFileAsFavorite(newUser.getUsername(), newUser.getPassword(), site.getId(), String.format("%s.%s", fileFavorite.getName(), fileFavorite.getFileType().extention)); + + FolderModel folderFavorite = new FolderModel("favoriteFolder"); + folderFavorite = dataContent.usingSite(site).createFolder(folderFavorite); + dataContent.getContentActions().setFolderAsFavorite(newUser.getUsername(), newUser.getPassword(), site.getId(), folderFavorite.getName()); + + dataSite.usingUser(newUser).usingSite(site).removeSiteFromFavorites(); + dataContent.getContentActions().removeFavorite(newUser.getUsername(), newUser.getPassword(), site.getId(), folderFavorite.getName()); + dataContent.getContentActions().removeFavorite(newUser.getUsername(), newUser.getPassword(), site.getId(), Paths.get(fileFavorite.getCmisLocation()).getFileName().toString()); + + restPreferenceModel = restClient.authenticateUser(newUser).withCoreAPI().usingAuthUser() + .getPersonPreferenceInformation(PreferenceName.FOLDERS_FAVORITES_PREFIX.toString()); + restClient.assertLastError().containsSummary( + String.format("The relationship resource was not found for the" + " entity with id: %s and a relationship id of %s", newUser.getUsername(), + PreferenceName.FOLDERS_FAVORITES_PREFIX.toString())); + + restPreferenceModel = restClient.authenticateUser(newUser).withCoreAPI().usingAuthUser() + .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX.toString()); + restClient.assertLastError().containsSummary( + String.format("The relationship resource was not found for the" + " entity with id: %s and a relationship id of %s", newUser.getUsername(), + PreferenceName.SITES_FAVORITES_PREFIX.toString())); + + restPreferenceModel = restClient.authenticateUser(newUser).withCoreAPI().usingAuthUser() + .getPersonPreferenceInformation(PreferenceName.DOCUMENTS_FAVORITES_PREFIX.toString()); + restClient.assertLastError().containsSummary( + String.format("The relationship resource was not found for the" + " entity with id: %s and a relationship id of %s", newUser.getUsername(), + PreferenceName.DOCUMENTS_FAVORITES_PREFIX.toString())); + + restPreferenceModel = restClient.authenticateUser(newUser).withCoreAPI().usingAuthUser() + .getPersonPreferenceInformation(PreferenceName.FOLDERS_FAVORITES_PREFIX.toString()); + restClient.assertLastError().containsSummary( + String.format("The relationship resource was not found for the" + " entity with id: %s and a relationship id of %s", newUser.getUsername(), + PreferenceName.FOLDERS_FAVORITES_PREFIX.toString())); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, + description = "Verify admin is able to get preference of another user") + public void adminIsAbleToGetOtherUserPreference() throws Exception + { + restPreferenceModel = restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingUser(userModel) + .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + restClient.assertStatusCodeIs(HttpStatus.OK); + restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()).and().field("value").is("true"); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, + description = "Verify regular user is not able to get preference of admin user") + public void regularUserIsNotAbleToGetAdminPreference() throws Exception + { + SiteModel newSite = dataSite.usingUser(dataUser.getAdminUser()).createPublicRandomSite(); + dataSite.usingUser(dataUser.getAdminUser()).usingSite(newSite).addSiteToFavorites(); + + restClient.authenticateUser(userModel).withCoreAPI().usingUser(dataUser.getAdminUser()) + .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + newSite.getId()); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN); + restClient.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } +} \ No newline at end of file From 673e6897a6e0838b8081f6a6723e4247721d5e6d Mon Sep 17 00:00:00 2001 From: Paul Brodner Date: Wed, 11 Jan 2017 12:57:46 +0200 Subject: [PATCH 28/65] fix test groups --- .../rest/comments/GetCommentsSanityTests.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/comments/GetCommentsSanityTests.java b/e2e-test/java/org/alfresco/rest/comments/GetCommentsSanityTests.java index cdec30ed3..4385ea6d8 100644 --- a/e2e-test/java/org/alfresco/rest/comments/GetCommentsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/GetCommentsSanityTests.java @@ -40,7 +40,7 @@ public class GetCommentsSanityTests extends RestTest usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor); } - @TestRail(section={TestGroup.REST_API, TestGroup.SANITY}, executionType= ExecutionType.SANITY, + @TestRail(section={TestGroup.REST_API, TestGroup.COMMENTS}, executionType= ExecutionType.SANITY, description= "Verify Admin user gets comments with Rest API and status code is 200") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.SANITY }) public void adminIsAbleToRetrieveComments() throws JsonToModelConversionException, Exception @@ -51,7 +51,7 @@ public class GetCommentsSanityTests extends RestTest comments.assertThat().entriesListContains("content", content); } - @TestRail(section={TestGroup.REST_API, TestGroup.SANITY}, executionType= ExecutionType.SANITY, + @TestRail(section={TestGroup.REST_API, TestGroup.COMMENTS}, executionType= ExecutionType.SANITY, description= "Verify Manager user gets comments created by admin user with Rest API and status code is 200") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.SANITY }) public void managerIsAbleToRetrieveComments() throws JsonToModelConversionException, Exception @@ -62,7 +62,7 @@ public class GetCommentsSanityTests extends RestTest comments.assertThat().entriesListContains("content", content); } - @TestRail(section={TestGroup.REST_API, TestGroup.SANITY}, executionType= ExecutionType.SANITY, + @TestRail(section={TestGroup.REST_API, TestGroup.COMMENTS}, executionType= ExecutionType.SANITY, description= "Verify Contributor user gets comments created by admin user with Rest API and status code is 200") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.SANITY }) public void contributorIsAbleToRetrieveComments() throws JsonToModelConversionException, Exception @@ -73,7 +73,7 @@ public class GetCommentsSanityTests extends RestTest comments.assertThat().entriesListContains("content", content); } - @TestRail(section={TestGroup.REST_API, TestGroup.SANITY}, executionType= ExecutionType.SANITY, + @TestRail(section={TestGroup.REST_API, TestGroup.COMMENTS}, executionType= ExecutionType.SANITY, description= "Verify Collaborator user gets comments created by admin user with Rest API and status code is 200") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.SANITY }) public void collaboratorIsAbleToRetrieveComments() throws JsonToModelConversionException, Exception @@ -84,7 +84,7 @@ public class GetCommentsSanityTests extends RestTest comments.assertThat().entriesListContains("content", content); } - @TestRail(section={TestGroup.REST_API, TestGroup.SANITY}, executionType= ExecutionType.SANITY, + @TestRail(section={TestGroup.REST_API, TestGroup.COMMENTS}, executionType= ExecutionType.SANITY, description= "Verify Consumer user gets comments created by admin user with Rest API and status code is 200") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.SANITY }) public void consumerIsAbleToRetrieveComments() throws JsonToModelConversionException, Exception @@ -95,8 +95,9 @@ public class GetCommentsSanityTests extends RestTest comments.assertThat().entriesListContains("content", content); } - @TestRail(section={TestGroup.REST_API, TestGroup.SANITY}, executionType= ExecutionType.SANITY, - description= "Verify Manager user gets status code 401 if authentication call fails") + + @TestRail(section={TestGroup.REST_API, TestGroup.COMMENTS}, executionType= ExecutionType.SANITY, + description= "Verify Manager user gets status code 401 if authentication call fails") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.SANITY }) @Bug(id="MNT-16904") public void managerIsNotAbleToRetrieveCommentIfAuthenticationFails() throws JsonToModelConversionException, Exception @@ -107,7 +108,7 @@ public class GetCommentsSanityTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); } - @TestRail(section={TestGroup.REST_API, TestGroup.SANITY}, executionType= ExecutionType.SANITY, + @TestRail(section={TestGroup.REST_API, TestGroup.COMMENTS}, executionType= ExecutionType.SANITY, description= "Verify Manager user gets comments created by another user and status code is 200") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.SANITY }) public void managerIsAbleToRetrieveCommentsCreatedByAnotherUser() throws JsonToModelConversionException, Exception @@ -124,7 +125,7 @@ public class GetCommentsSanityTests extends RestTest .and().entriesListContains("content", content); } - @TestRail(section={TestGroup.REST_API, TestGroup.SANITY}, executionType= ExecutionType.SANITY, + @TestRail(section={TestGroup.REST_API, TestGroup.COMMENTS}, executionType= ExecutionType.SANITY, description= "Verify admin user gets comments created by another user and status code is 200") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.SANITY }) public void adminIsAbleToRetrieveCommentsCreatedByAnotherUser() throws JsonToModelConversionException, Exception From 76c655822fb23d10a468921fb5f44f547f1326bf Mon Sep 17 00:00:00 2001 From: Paul Brodner Date: Wed, 11 Jan 2017 13:02:35 +0200 Subject: [PATCH 29/65] fix groups --- .../workflow/deployments/GetDeploymentsSanityTests.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/workflow/deployments/GetDeploymentsSanityTests.java b/e2e-test/java/org/alfresco/rest/workflow/deployments/GetDeploymentsSanityTests.java index df66b5e57..407689b74 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/deployments/GetDeploymentsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/deployments/GetDeploymentsSanityTests.java @@ -27,8 +27,7 @@ public class GetDeploymentsSanityTests extends RestTest restClient.authenticateUser(adminUserModel); } - @TestRail(section = { TestGroup.REST_API, - TestGroup.DEPLOYMENTS }, executionType = ExecutionType.SANITY, + @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.DEPLOYMENTS }, executionType = ExecutionType.SANITY, description = "Verify Admin user gets non-network deployments using REST API and status code is OK (200)") @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.DEPLOYMENTS, TestGroup.SANITY}) public void getNonNetworkDeploymentsWithAdmin() throws JsonToModelConversionException, Exception @@ -38,8 +37,7 @@ public class GetDeploymentsSanityTests extends RestTest deployments.assertThat().entriesListIsNotEmpty(); } - @TestRail(section = { TestGroup.REST_API, - TestGroup.DEPLOYMENTS }, executionType = ExecutionType.SANITY, + @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.DEPLOYMENTS }, executionType = ExecutionType.SANITY, description = "Verify Tenant Admin user gets network deployments using REST API and status code is OK (200)") @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.DEPLOYMENTS, TestGroup.SANITY, TestGroup.NETWORKS}) public void getNetworkDeploymentsWithAdmin() throws JsonToModelConversionException, Exception From d49b58bad281a7cf230a083011bc245b83dc5352 Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Wed, 11 Jan 2017 15:21:15 +0200 Subject: [PATCH 30/65] updated due to PreferenceName updated --- .../people/GetPeoplePreferenceCoreTests.java | 10 ++++----- .../GetPeoplePreferenceSanityTests.java | 22 +++++++++---------- .../GetPeoplePreferencesSanityTests.java | 10 ++++----- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceCoreTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceCoreTests.java index 759229be7..e2b943312 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceCoreTests.java @@ -30,7 +30,7 @@ public class GetPeoplePreferenceCoreTests extends RestTest { UserModel secondUser = dataUser.createRandomTestUser(); restClient.authenticateUser(secondUser).withCoreAPI().usingUser(userModel) - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN); restClient.assertLastError().containsSummary("Permission was denied"); } @@ -40,7 +40,7 @@ public class GetPeoplePreferenceCoreTests extends RestTest public void statusNotFoundIsReturnedForAPersonIDThatDoesNotExist() throws Exception { restClient.authenticateUser(userModel).withCoreAPI().usingUser(new UserModel("invalidPersonID", "password")) - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND); restClient.assertLastError().containsSummary("The entity with id: invalidPersonID was not found"); } @@ -57,17 +57,17 @@ public class GetPeoplePreferenceCoreTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) - @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify manager fails to get a specific preference for an removed preference with Rest API and response is 404") + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify manager fails to get a specific preference for removed preference with Rest API and response is 404") public void statusNotFoundIsReturnedForAPreferenceNameThatHasBeenRemoved() throws Exception { SiteModel preferenceSite = dataSite.usingUser(userModel).createPublicRandomSite(); dataSite.usingUser(userModel).usingSite(preferenceSite).addSiteToFavorites(); dataSite.usingUser(userModel).usingSite(preferenceSite).removeSiteFromFavorites(); restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser() - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + preferenceSite.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), preferenceSite.getId())); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND); restClient.assertLastError().containsSummary( String.format("The relationship resource was not found for the" + " entity with id: %s and a relationship id of %s", userModel.getUsername(), - PreferenceName.SITES_FAVORITES_PREFIX + preferenceSite.getId())); + String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), preferenceSite.getId()))); } } diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceSanityTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceSanityTests.java index 525a693a5..74013fd91 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceSanityTests.java @@ -42,9 +42,9 @@ public class GetPeoplePreferenceSanityTests extends RestTest dataSite.usingUser(managerUser).usingSite(siteModel).addSiteToFavorites(); restPreferenceModel = restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser() - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.OK); - restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()).and().field("value").is("true"); + restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())).and().field("value").is("true"); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY }) @@ -56,9 +56,9 @@ public class GetPeoplePreferenceSanityTests extends RestTest dataSite.usingUser(collaboratorUser).usingSite(siteModel).addSiteToFavorites(); restPreferenceModel = restClient.authenticateUser(collaboratorUser).withCoreAPI().usingAuthUser() - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.OK); - restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()).and().field("value").is("true"); + restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())).and().field("value").is("true"); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY }) @@ -70,9 +70,9 @@ public class GetPeoplePreferenceSanityTests extends RestTest dataSite.usingUser(contributorUser).usingSite(siteModel).addSiteToFavorites(); restPreferenceModel = restClient.authenticateUser(contributorUser).withCoreAPI().usingAuthUser() - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.OK); - restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()).and().field("value").is("true"); + restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())).and().field("value").is("true"); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY }) @@ -84,9 +84,9 @@ public class GetPeoplePreferenceSanityTests extends RestTest dataSite.usingUser(consumerUser).usingSite(siteModel).addSiteToFavorites(); restPreferenceModel = restClient.authenticateUser(consumerUser).withCoreAPI().usingAuthUser() - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(),siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.OK); - restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()).and().field("value").is("true"); + restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(),siteModel.getId())).and().field("value").is("true"); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY }) @@ -97,9 +97,9 @@ public class GetPeoplePreferenceSanityTests extends RestTest dataSite.usingUser(adminUser).usingSite(siteModel).addSiteToFavorites(); restPreferenceModel = restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser() - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.OK); - restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()).and().field("value").is("true"); + restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())).and().field("value").is("true"); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY }) @@ -113,7 +113,7 @@ public class GetPeoplePreferenceSanityTests extends RestTest managerUser.setPassword("newpassword"); restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser() - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); } } diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesSanityTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesSanityTests.java index 933ee0ce5..6a871427f 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesSanityTests.java @@ -44,7 +44,7 @@ public class GetPeoplePreferencesSanityTests extends RestTest restPreferenceModelsCollection = restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().getPersonPreferences(); restClient.assertStatusCodeIs(HttpStatus.OK); restPreferenceModelsCollection.assertThat().entriesListIsNotEmpty().assertThat().paginationExist().and() - .entriesListContains("id", PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .entriesListContains("id", String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY }) @@ -58,7 +58,7 @@ public class GetPeoplePreferencesSanityTests extends RestTest restPreferenceModelsCollection = restClient.authenticateUser(collaboratorUser).withCoreAPI().usingAuthUser().getPersonPreferences(); restClient.assertStatusCodeIs(HttpStatus.OK); restPreferenceModelsCollection.assertThat().entriesListIsNotEmpty().assertThat().paginationExist().and() - .entriesListContains("id", PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .entriesListContains("id", String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY }) @@ -72,7 +72,7 @@ public class GetPeoplePreferencesSanityTests extends RestTest restPreferenceModelsCollection = restClient.authenticateUser(contributorUser).withCoreAPI().usingAuthUser().getPersonPreferences(); restClient.assertStatusCodeIs(HttpStatus.OK); restPreferenceModelsCollection.assertThat().entriesListIsNotEmpty().assertThat().paginationExist().and() - .entriesListContains("id", PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .entriesListContains("id", String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY }) @@ -86,7 +86,7 @@ public class GetPeoplePreferencesSanityTests extends RestTest restPreferenceModelsCollection = restClient.authenticateUser(consumerUser).withCoreAPI().usingAuthUser().getPersonPreferences(); restClient.assertStatusCodeIs(HttpStatus.OK); restPreferenceModelsCollection.assertThat().entriesListIsNotEmpty().assertThat().paginationExist().and() - .entriesListContains("id", PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .entriesListContains("id", String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY }) @@ -101,7 +101,7 @@ public class GetPeoplePreferencesSanityTests extends RestTest restPreferenceModelsCollection = restClient.authenticateUser(adminUser).withCoreAPI().usingUser(managerUser).getPersonPreferences(); restClient.assertStatusCodeIs(HttpStatus.OK); restPreferenceModelsCollection.assertThat().entriesListIsNotEmpty().assertThat().paginationExist().and() - .entriesListContains("id", PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .entriesListContains("id", String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.SANITY }) From 5e042d2d511cee266b6ab68cde634215e4e17636 Mon Sep 17 00:00:00 2001 From: Bogdan Bocancea Date: Wed, 11 Jan 2017 15:32:36 +0200 Subject: [PATCH 31/65] add full tests for 'people/{personId}/favorite-sites/{siteId}' --- .../rest/people/GetFavoriteSiteFullTests.java | 163 ++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 e2e-test/java/org/alfresco/rest/people/GetFavoriteSiteFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/people/GetFavoriteSiteFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetFavoriteSiteFullTests.java new file mode 100644 index 000000000..06c9fd69b --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/people/GetFavoriteSiteFullTests.java @@ -0,0 +1,163 @@ +package org.alfresco.rest.people; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.core.RestRequest; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestSiteModel; +import org.alfresco.rest.model.RestSiteModelsCollection; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.model.FolderModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.apache.commons.lang3.RandomStringUtils; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.social.alfresco.api.entities.Site.Visibility; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +/** + * Created by Bogdan Bocancea + */ +public class GetFavoriteSiteFullTests extends RestTest +{ + UserModel userModel; + SiteModel site1; + private RestSiteModel restSiteModel; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + userModel = dataUser.createRandomTestUser(); + site1 = dataSite.usingUser(userModel).createPublicRandomSite(); + dataSite.usingUser(userModel).usingSite(site1).addSiteToFavorites(); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify invalid request returns status 404 when personId is invalid") + public void getFavoriteSiteWithInvalidPersonId() throws Exception + { + UserModel userSpecialChars = dataUser.usingAdmin().createUser(RandomStringUtils.randomAlphabetic(2) + "~!@#$%^&*()_+[]{}|;'d", "password"); + userSpecialChars.setUsername(RandomStringUtils.randomAlphabetic(2) + "~!%40%23%24%25%5E%26*()_%2B%5B%5D%7B%7D%7C%5C%3B%27%3A%22%2C.%2F%3C%3E"); + + restClient.authenticateUser(userModel).withCoreAPI().usingUser(userSpecialChars).getFavoriteSite(site1); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, userSpecialChars.getUsername())); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify request with empty site id") + public void getFavoriteSiteWithEmptySiteId() throws Exception + { + restClient.authenticateUser(userModel).withCoreAPI(); + RestRequest request = RestRequest.simpleRequest(HttpMethod.GET, "people/{personId}/favorite-sites/{siteId}?{parameters}", + userModel.getUsername(), "", restClient.getParameters()); + RestSiteModelsCollection sites = restClient.processModels(RestSiteModelsCollection.class, request); + restClient.assertStatusCodeIs(HttpStatus.OK); + sites.assertThat().entriesListIsNotEmpty(); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify invalid request returns status 401 when user is empty") + public void getFavoriteSiteWithEmptyPersonId() throws Exception + { + UserModel emptyUser = new UserModel("", "password"); + restClient.authenticateUser(emptyUser).withCoreAPI().usingAuthUser().getFavoriteSite(site1); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify invalid request returns status 404 when another user get favorite site of an user") + public void getFavoriteSiteWithAnotherUser() throws Exception + { + UserModel user = dataUser.createRandomTestUser(); + restClient.authenticateUser(user).withCoreAPI().usingAuthUser().getFavoriteSite(site1); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() + .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, user.getUsername(), site1.getId())) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE) + .containsErrorKey(RestErrorModel.RELATIONSHIP_NOT_FOUND_ERRORKEY); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify request returns status 200 when using -me-") + public void getFavoriteSiteUsingMe() throws Exception + { + restSiteModel = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getFavoriteSite(site1); + restClient.assertStatusCodeIs(HttpStatus.OK); + restSiteModel.assertThat().field("id").is(site1.getId()) + .and().field("title").is(site1.getTitle()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify entry details for get site favorite response with Rest API") + public void checkResponseSchemaForGetSiteFavorite() throws Exception + { + restSiteModel = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser().getFavoriteSite(site1); + restClient.assertStatusCodeIs(HttpStatus.OK); + restSiteModel.assertThat().field("id").is(site1.getId()) + .and().field("title").is(site1.getTitle()) + .and().field("role").is(UserRole.SiteManager.toString()) + .and().field("visibility").is(Visibility.PUBLIC.toString()) + .and().field("guid").isNotEmpty() + .and().field("description").is(site1.getDescription()) + .and().field("preset").is("site-dashboard"); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify invalid request returns status 404 when providing folder name instead of site id") + public void getFavoriteSiteUsingFolder() throws Exception + { + FolderModel folder = dataContent.usingUser(userModel).usingSite(site1).createFolder(); + SiteModel siteFolder = new SiteModel(folder.getName()); + restSiteModel = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getFavoriteSite(siteFolder); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() + .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, userModel.getUsername(), folder.getName())); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify request returns status 200 when using valid parameters") + public void getFavoriteSiteUsingParameters() throws Exception + { + restSiteModel = restClient.withParams("maxItems=100").authenticateUser(userModel).withCoreAPI().usingMe().getFavoriteSite(site1); + restClient.assertStatusCodeIs(HttpStatus.OK); + restSiteModel.assertThat().field("id").is(site1.getId()) + .and().field("title").is(site1.getTitle()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify request returns status 400 when using maxItems=0") + public void getFavoriteSiteUsingInvalidMaxItems() throws Exception + { + restSiteModel = restClient.withParams("maxItems=0").authenticateUser(userModel).withCoreAPI().usingMe().getFavoriteSite(site1); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, + description = "Verify request returns status 200 when using -me-") + public void getFavoriteSiteUsingInvalidNetwork() throws Exception + { + UserModel invalidUserNetwork = dataUser.createRandomTestUser(); + SiteModel site = dataSite.usingUser(invalidUserNetwork).createPublicRandomSite(); + dataSite.usingUser(invalidUserNetwork).usingSite(site).addSiteToFavorites(); + invalidUserNetwork.setDomain("invalidNetwork"); + restSiteModel = restClient.authenticateUser(invalidUserNetwork).withCoreAPI().usingMe().getFavoriteSite(site); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED) + .assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED); + } +} From 9f4e9690b2e06aaf13e0d62ed50a44815fb9f426 Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Wed, 11 Jan 2017 15:32:55 +0200 Subject: [PATCH 32/65] updated some test names --- .../alfresco/rest/people/GetPeopleActivitiesCoreTests.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java index a7549c9c0..fbb7265da 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java @@ -78,7 +78,7 @@ public class GetPeopleActivitiesCoreTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.CORE }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities with invald skipCount parameter with Rest API and response is 400") - public void userGetPeopleActivitiesUsingSkipCountParameter() throws Exception + public void userGetPeopleActivitiesUsingInvalidSkipCountParameter() throws Exception { restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().usingParams("skipCount=-1").getPersonActivities(); restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) @@ -90,7 +90,7 @@ public class GetPeopleActivitiesCoreTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.CORE }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities with invalid maxItems parameter with Rest API and response is 400") - public void userGetPeopleActivitiesUsingMaxItemsParameter() throws Exception + public void userGetPeopleActivitiesUsingInvalidMaxItemsParameter() throws Exception { restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().usingParams("maxItems=0").getPersonActivities(); restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) @@ -102,7 +102,7 @@ public class GetPeopleActivitiesCoreTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.CORE }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets activities using invalid value for parameter 'who'with Rest API and response is 400") - public void userGetsPeopleActivitiesUsingMeForWhoParameter() throws Exception + public void userGetsPeopleActivitiesUsingInvalidValueForWhoParameter() throws Exception { restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingUser(userModel).usingParams("who=mee").getPersonActivities(); restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) From 803d570c8b719fefbe746dcc48f0e070895fa812 Mon Sep 17 00:00:00 2001 From: Cristina Jalba Date: Wed, 11 Jan 2017 15:39:22 +0200 Subject: [PATCH 33/65] Added GetFavorites full tests --- .../rest/favorites/GetFavoritesFullTests.java | 228 ++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 e2e-test/java/org/alfresco/rest/favorites/GetFavoritesFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesFullTests.java b/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesFullTests.java new file mode 100644 index 000000000..187bd0a30 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesFullTests.java @@ -0,0 +1,228 @@ +package org.alfresco.rest.favorites; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestPersonFavoritesModel; +import org.alfresco.rest.model.RestPersonFavoritesModelsCollection; +import org.alfresco.rest.model.RestSiteModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class GetFavoritesFullTests extends RestTest +{ + private UserModel adminUserModel; + private UserModel secondUserModel; + private SiteModel firstSiteModel, secondSiteModel, thirdSiteModel; + private RestPersonFavoritesModelsCollection userFavorites; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUserModel = dataUser.getAdminUser(); + secondUserModel = dataUser.createRandomTestUser(); + restClient.authenticateUser(adminUserModel); + firstSiteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); + secondSiteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); + thirdSiteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); + + firstSiteModel.setGuid(restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(firstSiteModel).getSite().getGuid()); + secondSiteModel.setGuid(restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(secondSiteModel).getSite().getGuid()); + thirdSiteModel.setGuid(restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(thirdSiteModel).getSite().getGuid()); + + restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel); + restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(secondSiteModel); + + restClient.authenticateUser(secondUserModel); + restClient.withCoreAPI().usingUser(secondUserModel).addSiteToFavorites(firstSiteModel); + restClient.withCoreAPI().usingUser(secondUserModel).addSiteToFavorites(secondSiteModel); + restClient.withCoreAPI().usingUser(secondUserModel).addSiteToFavorites(thirdSiteModel); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify get favorites specifying -me- string in place of for request") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void userIsAbleToGetFavoritesWhenUsingMeAsUsername() throws Exception + { + userFavorites = restClient.authenticateUser(secondUserModel).withCoreAPI().usingMe().getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.OK); + userFavorites.assertThat().entriesListContains("targetGuid", firstSiteModel.getGuid()).and().entriesListContains("targetGuid", secondSiteModel.getGuid()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify get favorites using empty for where parameter for request") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void userIsAbleToGetFavoritesWhenUsingEmptyWhereParameter() throws Exception + { + userFavorites = restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().where().getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsSummary(String.format(RestErrorModel.INVALID_ARGUMENT, "WHERE query")); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify that for invalid maxItems parameter status code returned is 400.") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void checkInvalidMaxItemsStatusCode() throws Exception + { + restClient.authenticateUser(adminUserModel).withParams("maxItems=AB").withCoreAPI().usingUser(adminUserModel).getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary("Invalid paging parameter"); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify that for invalid skipCount parameter status code returned is 400.") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void checkInvalidSkipCountStatusCode() throws Exception + { + restClient.authenticateUser(adminUserModel).withParams("skipCount=AB").withCoreAPI().usingUser(adminUserModel).getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary("Invalid paging parameter"); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify get favorites when using invalid network id") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void getFavoritesWhenNetworkIdIsInvalid() throws Exception + { + UserModel networkUserModel = dataUser.createRandomTestUser(); + networkUserModel.setDomain("invalidNetwork"); + restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(networkUserModel).where().targetSiteExist().getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, networkUserModel.getUsername())); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify get favorites using special chars in where parameter for request") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void userIsNotAbleToGetFavoritesWhenUsingSpecialCharsInWhereParameter() throws Exception + { + userFavorites = restClient.withCoreAPI().usingAuthUser().where().invalidWhereParameter("~!%40%23%24%25%5E%26*()_%2B%5B%5D%7B%7D%7C%5C%3B%27%3A%22%2C.%2F%3C%3E").getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsSummary(String.format(RestErrorModel.INVALID_ARGUMENT, "WHERE query")) + .containsErrorKey(RestErrorModel.INVALID_QUERY_ERRORKEY) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify get favorites using AND instead of OR in where parameter for request") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void userIsNotAbleToGetFavoritesWhenUsingANDInWhereParameter() throws Exception + { + userFavorites = restClient.withCoreAPI().usingAuthUser().where().targetFolderExist().invalidWhereParameter("AND").targetFileExist().getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsSummary(String.format(RestErrorModel.INVALID_ARGUMENT, "WHERE query")); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify get favorites using wrong name instead of EXISTS in where parameter for request") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void userIsNotAbleToGetFavoritesWhenUsingWrongWhereParameter() throws Exception + { + userFavorites = restClient.withCoreAPI().usingAuthUser().where().invalidWhereParameter("EXIST((target/site))").targetFileExist().getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsSummary(String.format(RestErrorModel.INVALID_ARGUMENT, "WHERE query")); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify get favorites except the first one for request") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void userIsAbleToGetFavoritesExceptTheFirstOne() throws Exception + { + userFavorites = restClient.authenticateUser(secondUserModel).withParams("skipCount=1").withCoreAPI().usingUser(secondUserModel).getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.OK); + + userFavorites.assertThat().entriesListContains("targetGuid", firstSiteModel.getGuid()) + .and().entriesListContains("targetGuid", secondSiteModel.getGuid()) + .and().entriesListDoesNotContain("targetGuid", thirdSiteModel.getGuid()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify get first two favorites sites") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void userIsAbleToGetFirstTwoFavorites() throws Exception + { + userFavorites = restClient.authenticateUser(secondUserModel).withParams("maxItems=2").withCoreAPI().usingUser(secondUserModel).getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.OK); + + userFavorites.assertThat().entriesListContains("targetGuid", thirdSiteModel.getGuid()) + .and().entriesListContains("targetGuid", secondSiteModel.getGuid()) + .and().entriesListDoesNotContain("targetGuid", firstSiteModel.getGuid()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify get first two favorites sites") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void userIsAbleToGetFavoritesWhenSkipCountAndMaxItemsAreEmpty() throws Exception + { + restClient.authenticateUser(secondUserModel).withParams("skipCount= ").withCoreAPI().usingUser(secondUserModel).getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, " ")); + + restClient.authenticateUser(secondUserModel).withParams("maxItems= ").withCoreAPI().usingUser(secondUserModel).getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, " ")); + } + + @Bug(id = "MNT-16904") + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify the get favorites request when network id is invalid") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL, TestGroup.NETWORKS}) + public void getFavoriteSitesWhenNetworkIdIsInvalid() throws JsonToModelConversionException, Exception + { + UserModel adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUserModel); + restClient.usingTenant().createTenant(adminTenantUser); + UserModel tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteToFavorites(firstSiteModel); + + tenantUser.setDomain("invalidNetwork"); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED) + .assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify the get favorites request for a high value for skipCount parameter") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void userIsAbleToGetFavoritesWithHighSkipCount() throws Exception + { + userFavorites = restClient.authenticateUser(secondUserModel).withParams("skipCount=999999999").withCoreAPI().usingUser(secondUserModel).getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.OK); + + userFavorites.assertThat().entriesListIsEmpty().assertThat().paginationField("skipCount").is("999999999"); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify the get favorites request with properties parameter applied") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void userIsAbleToGetFavoritesWithPropertiesParamApplied() throws Exception + { + userFavorites = restClient.authenticateUser(secondUserModel).withParams("properties=targetGuid").withCoreAPI().usingUser(secondUserModel).getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.OK); + + RestPersonFavoritesModel restPersonFavoritesModel = userFavorites.getEntries().get(0).onModel(); + restPersonFavoritesModel.assertThat().field("targetGuid").is(thirdSiteModel.getGuid()).and().field("createdAt").isNull(); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify entry details for get favorites response with Rest API") + public void checkResponseSchemaForGetFavorites() throws Exception + { + userFavorites = restClient.authenticateUser(secondUserModel).withCoreAPI().usingAuthUser().getFavorites(); + restClient.assertStatusCodeIs(HttpStatus.OK); + + RestPersonFavoritesModel restPersonFavoritesModel = userFavorites.getEntries().get(0).onModel(); + restPersonFavoritesModel.assertThat().field("targetGuid").is(thirdSiteModel.getGuid()); + + RestSiteModel restSiteModel = restPersonFavoritesModel.getTarget().getSite(); + restSiteModel.assertThat().field("visibility").is(thirdSiteModel.getVisibility()).and() + .field("guid").is(thirdSiteModel.getGuid()).and() + .field("description").is(thirdSiteModel.getDescription()).and() + .field("id").is(thirdSiteModel.getId()).and() + .field("title").is(thirdSiteModel.getTitle()); + } +} From f5bced7195bb5a6b733d81c49e59ac96b977573e Mon Sep 17 00:00:00 2001 From: Valentin Popa Date: Wed, 11 Jan 2017 16:17:30 +0200 Subject: [PATCH 34/65] Fix preference name strings --- .../people/GetPeoplePreferenceFullTests.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceFullTests.java index 4cc9a45cb..f9f310fde 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceFullTests.java @@ -40,7 +40,7 @@ public class GetPeoplePreferenceFullTests extends RestTest public void checkDefaultErrorSchema() throws Exception { restClient.authenticateUser(userModel).withCoreAPI().usingUser(new UserModel("invalidPersonID", "password")) - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidPersonID")) .statusCodeIs(HttpStatus.NOT_FOUND) @@ -55,10 +55,10 @@ public class GetPeoplePreferenceFullTests extends RestTest public void preferenceIsReturnedWhenUsingMeAsPersonId() throws Exception { restPreferenceModel = restClient.authenticateUser(userModel).withCoreAPI().usingMe() - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.OK); - restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()) + restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())) .and().field("value").is("true"); } @@ -68,15 +68,15 @@ public class GetPeoplePreferenceFullTests extends RestTest public void propertiesParameterIsAppliedWhenRetrievingPreference() throws Exception { restPreferenceModel = restClient.authenticateUser(userModel).withParams("properties=id").withCoreAPI().usingUser(userModel) - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.OK); - restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()) + restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())) .and().field("value").isNull(); restPreferenceModel = restClient.authenticateUser(userModel).withParams("properties=id,value").withCoreAPI().usingUser(userModel) - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.OK); - restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()) + restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())) .and().field("value").is("true"); } @@ -86,8 +86,8 @@ public class GetPeoplePreferenceFullTests extends RestTest public void validateIdElementInGetSitePreferenceResponse() throws Exception { restPreferenceModel = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser() - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); - restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()) + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); + restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())) .and().field("value").is("true"); } @@ -201,9 +201,9 @@ public class GetPeoplePreferenceFullTests extends RestTest public void adminIsAbleToGetOtherUserPreference() throws Exception { restPreferenceModel = restClient.authenticateUser(dataUser.getAdminUser()).withCoreAPI().usingUser(userModel) - .getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()); + .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); restClient.assertStatusCodeIs(HttpStatus.OK); - restPreferenceModel.assertThat().field("id").is(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId()).and().field("value").is("true"); + restPreferenceModel.assertThat().field("id").is(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())).and().field("value").is("true"); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.FULL }) From 83dc5427122a146fe2e8e3c824f363d5bbc52f73 Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Wed, 11 Jan 2017 16:36:55 +0200 Subject: [PATCH 35/65] added core tests for GetPreferences --- .../people/GetPeoplePreferencesCoreTests.java | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesCoreTests.java diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesCoreTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesCoreTests.java new file mode 100644 index 000000000..94ea64631 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesCoreTests.java @@ -0,0 +1,123 @@ +package org.alfresco.rest.people; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestPreferenceModelsCollection; +import org.alfresco.utility.constants.PreferenceName; +import org.alfresco.utility.model.FolderModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +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.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +/** + * + * @author Cristina Axinte + * + */ +public class GetPeoplePreferencesCoreTests extends RestTest +{ + UserModel userModel, user1, user2, adminUser; + SiteModel siteModel; + FolderModel folderModel; + private RestPreferenceModelsCollection restPreferenceModelsCollection; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUser = dataUser.getAdminUser(); + userModel = dataUser.createRandomTestUser(); + siteModel = dataSite.usingUser(userModel).createPublicRandomSite(); + folderModel = dataContent.usingUser(userModel).usingSite(siteModel).createFolder(); + + user1 = dataUser.createRandomTestUser(); + dataSite.usingUser(user1).usingSite(siteModel).addSiteToFavorites(); + dataContent.usingUser(user1).usingSite(siteModel).addFolderToFavorites(folderModel); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets its preferences with invalid maxItems parameter with Rest API and response is 400") + public void userGetsPeoplePreferencesUsingInvalidMaxItemsParameter() throws Exception + { + restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingMe().usingParams("maxItems=0").getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsErrorKey(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS) + .containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS) + .stackTraceIs(RestErrorModel.STACKTRACE) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user gets its preferences with skipCount parameter applied with Rest API and response is successful") + public void userGetsPeoplePreferencesUsingInvalidSkipCountParameter() throws Exception + { + restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingMe().usingParams("skipCount=-1").getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) + .assertLastError().containsErrorKey(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT) + .containsSummary(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT) + .stackTraceIs(RestErrorModel.STACKTRACE) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user which doesn't have access to another user preferences fails to get its preferences with Rest API and response is permission denied") + public void userWithNoAccessToOtherUserPreferencesIsForbiddenToGetItsPreferences() throws Exception + { + UserModel noAccessUser = dataUser.createRandomTestUser(); + dataSite.usingUser(noAccessUser).usingSite(siteModel).addSiteToFavorites(); + + restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingUser(noAccessUser).getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN); + restClient.assertLastError().containsErrorKey(RestErrorModel.PERMISSION_DENIED_ERRORKEY) + .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED) + .stackTraceIs(RestErrorModel.STACKTRACE) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user fails to get preferences for inexistent personId with Rest API and response is 404") + public void userCannotGetPeoplePreferencesForInexistentPersonId() throws Exception + { + UserModel inexistentUserName = new UserModel("inexistent", "password"); + + restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingUser(inexistentUserName).getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND); + restClient.assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY) + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUserName.getUsername())) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user get preferences for a user with no preferences with Rest API and response is empty") + public void userGetsPeoplePreferencesForUserWithNoPreferences() throws Exception + { + UserModel userNoActivities = dataUser.createRandomTestUser(); + + restPreferenceModelsCollection = restClient.authenticateUser(adminUser).withCoreAPI().usingUser(userNoActivities).getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restPreferenceModelsCollection.assertThat().paginationField("count").is("0"); + restPreferenceModelsCollection.assertThat().entriesListIsEmpty(); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES, TestGroup.CORE }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION, description = "Verify user fails to get preferences for a removed preference with Rest API and response is 404") + public void userFailsToGetPeoplePreferencesIfPreferenceWasRemoved() throws Exception + { + SiteModel preferenceSite = dataSite.usingUser(user1).createPublicRandomSite(); + dataSite.usingUser(user1).usingSite(preferenceSite).addSiteToFavorites(); + restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingAuthUser().getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restPreferenceModelsCollection.assertThat().paginationField("count").is("6"); + + dataSite.usingUser(user1).usingSite(preferenceSite).removeSiteFromFavorites(); + restPreferenceModelsCollection = restClient.authenticateUser(user1).withCoreAPI().usingAuthUser().getPersonPreferences(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restPreferenceModelsCollection.assertThat().paginationField("count").is("5"); + restPreferenceModelsCollection.assertThat().entriesListDoesNotContain("id", String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), preferenceSite.getId())); + } +} From fa5c6c459b817df7b68fc2a5ff8b1fdb6d384386 Mon Sep 17 00:00:00 2001 From: cagache Date: Wed, 11 Jan 2017 16:40:51 +0200 Subject: [PATCH 36/65] TAS-2706 -> TAS-2717 getSiteMembershipRequest tests --- .../GetSiteMembershipRequestsFullTests.java | 170 ++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsFullTests.java new file mode 100644 index 000000000..59bcf2b5a --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsFullTests.java @@ -0,0 +1,170 @@ +package org.alfresco.rest.people; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestSiteMembershipRequestModel; +import org.alfresco.rest.model.RestSiteMembershipRequestModelsCollection; +import org.alfresco.rest.model.RestTaskModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +/** + * Created by Claudia Agache on 1/10/2017. + */ +public class GetSiteMembershipRequestsFullTests extends RestTest +{ + UserModel siteManager, newMember, adminUser, regularUser; + SiteModel moderatedSite1, moderatedSite2, publicSite, privateSite; + RestSiteMembershipRequestModelsCollection siteMembershipRequests; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + siteManager = dataUser.createRandomTestUser(); + publicSite = dataSite.usingUser(siteManager).createPublicRandomSite(); + moderatedSite1 = dataSite.usingUser(siteManager).createModeratedRandomSite(); + moderatedSite2 = dataSite.usingUser(siteManager).createModeratedRandomSite(); + privateSite = dataSite.usingUser(siteManager).createPrivateRandomSite(); + + adminUser = dataUser.getAdminUser(); + newMember = dataUser.createRandomTestUser(); + regularUser = dataUser.createRandomTestUser(); + + restClient.authenticateUser(newMember).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restClient.withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restClient.withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Verify admin user gets all its own site membership requests with Rest API and response is successful (200)") + public void adminGetsItsOwnSiteMembershipRequestsWithSuccess() throws Exception + { + siteMembershipRequests = restClient.authenticateUser(adminUser).withCoreAPI().usingAuthUser().getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.OK); + siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId()) + .assertThat().entriesListContains("id", moderatedSite2.getId()); + } + + @Bug(id = "MNT-16557") + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Verify regular user fails to get all site membership requests of another user with Rest API (403)") + public void regularUserFailsToGetSiteMembershipRequestsOfAnotherUser() throws Exception + { + restClient.authenticateUser(regularUser).withCoreAPI() + .usingUser(newMember).getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } + + @Bug(id = "MNT-16557") + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Verify regular user fails to get all site membership requests of admin with Rest API (403)") + public void regularUserFailsToGetSiteMembershipRequestsOfAdmin() throws Exception + { + restClient.authenticateUser(regularUser).withCoreAPI() + .usingUser(adminUser).getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Verify regular user is able to get his site membership requests with, but skip the first one") + public void getSiteMembershipRequestsButSkipTheFirstOne() throws Exception + { + siteMembershipRequests = restClient.authenticateUser(newMember).withParams("orderBy=id ASC").withCoreAPI() + .usingMe().getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.OK); + siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId()) + .assertThat().entriesListContains("id", moderatedSite2.getId()); + + RestSiteMembershipRequestModel firstSiteMembershipRequest = siteMembershipRequests.getEntries().get(0).onModel(); + + siteMembershipRequests = restClient.authenticateUser(newMember).withParams("orderBy=id ASC&skipCount=1").withCoreAPI() + .usingMe().getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.OK); + siteMembershipRequests.assertThat().entriesListDoesNotContain("id", firstSiteMembershipRequest.getId()) + .assertThat().entriesListContains("id", moderatedSite2.getId()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Verify regular user is able to get his site membership requests with higher skipCount than number of requests") + public void getSiteMembershipRequestsWithHighSkipCount() throws Exception + { + siteMembershipRequests = restClient.authenticateUser(newMember).withParams("skipCount=3").withCoreAPI() + .usingMe().getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.OK); + siteMembershipRequests.assertThat().entriesListIsEmpty(); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Verify get site membership requests returns an empty list where there are no requests") + public void getSiteMembershipRequestsWhereThereAreNoRequests() throws Exception + { + siteMembershipRequests = restClient.authenticateUser(regularUser).withCoreAPI().usingMe().getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.OK); + siteMembershipRequests.assertThat().entriesListIsEmpty(); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Reject request then get site membership requests.") + public void rejectRequestThenGetSiteMembershipRequests() throws Exception + { + UserModel userWithRejectedRequests = dataUser.createRandomTestUser(); + + restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite1); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restClient.withCoreAPI().usingAuthUser().addSiteMembershipRequest(moderatedSite2); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + RestTaskModel taskModel = restClient.authenticateUser(userWithRejectedRequests).withWorkflowAPI().getTasks().getTaskModelByDescription(moderatedSite1); + workflow.approveSiteMembershipRequest(siteManager.getUsername(), siteManager.getPassword(), taskModel.getId(), false, "Rejected"); + + siteMembershipRequests = restClient.authenticateUser(userWithRejectedRequests).withCoreAPI().usingMe().getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.OK); + siteMembershipRequests.assertThat().entriesListDoesNotContain("id", moderatedSite1.getId()) + .assertThat().entriesListContains("id", moderatedSite2.getId()); + } + + @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) + @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, + executionType = ExecutionType.REGRESSION, + description = "Check get site membership requests when properties parameter is used") + public void getSiteMembershipRequestsWithProperties() throws Exception + { + siteMembershipRequests = restClient.authenticateUser(newMember).withParams("properties=id") + .withCoreAPI().usingAuthUser().getSiteMembershipRequests(); + restClient.assertStatusCodeIs(HttpStatus.OK); + siteMembershipRequests.assertThat().entriesListContains("id", moderatedSite1.getId()) + .assertThat().entriesListContains("id", moderatedSite2.getId()); + RestSiteMembershipRequestModel siteMembershipRequest = siteMembershipRequests.getOneRandomEntry().onModel(); + siteMembershipRequest.assertThat().fieldsCount().is(1); + } + +} From 5a8ae80da49e3af8c6f6184ae82428226b9230ba Mon Sep 17 00:00:00 2001 From: mionescu Date: Wed, 11 Jan 2017 16:42:41 +0200 Subject: [PATCH 37/65] test- updates --- .../favorites/DeleteFavoriteFullTests.java | 4 +-- .../favorites/DeleteFavoriteSanityTests.java | 35 ++----------------- 2 files changed, 5 insertions(+), 34 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java index 7efeca5e9..5b6047afa 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java @@ -141,7 +141,7 @@ public class DeleteFavoriteFullTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify user can't delete favorites using an invalid network ID.") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) - public void userIsNotAbleToDeleteFavoriteSiteWithInvalidNetworkID() throws JsonToModelConversionException, Exception + public void userIsNotAbleToDeleteFavoriteSiteWithInvalidNetworkID() throws Exception { UserModel networkUserModel = dataUser.createRandomTestUser(); restClient.authenticateUser(networkUserModel).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); @@ -227,7 +227,7 @@ public class DeleteFavoriteFullTests extends RestTest public void tenantUserIsAbleToDeleteFavoriteSiteAddedByAdminSameNetwork() throws JsonToModelConversionException, Exception { adminTenantUser = UserModel.getAdminTenantUser(); - restClient.authenticateUser(adminUserModel).usingTenant().createTenant(adminTenantUser); + restClient.authenticateUser(adminUserModel).usingTenant().createTenant(adminTenantUser); tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); siteModel = dataSite.usingUser(adminTenantUser).createPublicRandomSite(); siteModel.setGuid(restClient.authenticateUser(adminTenantUser).withCoreAPI().usingSite(siteModel).getSite().getGuid()); diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java index 8dd2bf957..6c12b8631 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java @@ -27,7 +27,6 @@ public class DeleteFavoriteSanityTests extends RestTest adminUserModel = dataUser.getAdminUser(); siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); - siteModel.setGuid(restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(siteModel).getSite().getGuid()); usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, @@ -39,7 +38,7 @@ public class DeleteFavoriteSanityTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) public void adminIsAbleToDeleteFavorite() throws JsonToModelConversionException, Exception { - restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(siteModel); + restClient.withCoreAPI().usingUser(adminUserModel).addSiteToFavorites(siteModel); restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); @@ -67,6 +66,7 @@ public class DeleteFavoriteSanityTests extends RestTest { UserModel siteManager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager); siteManager.setPassword("wrongPassword"); + restClient.authenticateUser(siteManager).withCoreAPI().usingAuthUser() .deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.UNAUTHORIZED) .assertLastError() @@ -117,37 +117,8 @@ public class DeleteFavoriteSanityTests extends RestTest UserModel siteCollaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator); restClient.authenticateUser(siteCollaborator).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)) - .withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel) - .assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); - } - - @Bug(id="MNT-16557") - @TestRail(section = { TestGroup.REST_API,TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, - description = "Verify admin user doesn't have permission to delete favorites of another user with Rest API and status code is 404") - @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) - public void adminIsNotAbleToDeleteFavoritesOfAnotherUser() throws JsonToModelConversionException, Exception - { - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) - .withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); - - restClient.authenticateUser(adminUserModel) - .withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel) - .assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); - } - - @Bug(id = "MNT-16904", description = "fails only on environment with tenants") - @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, - description = "Verify user gets status code 401 if authentication call fails") - @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) - public void userIsNotAbleToDeleteFavoritesIfAuthenticationFails() throws JsonToModelConversionException, Exception - { - UserModel siteManager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager); - siteManager.setPassword("wrongPassword"); - restClient.authenticateUser(siteManager).withCoreAPI().usingAuthUser() - .deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.UNAUTHORIZED); restClient.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.NO_CONTENT); restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); - } + } From 6ded774fd59ab9fd810d6906501c971041446fc0 Mon Sep 17 00:00:00 2001 From: mionescu Date: Wed, 11 Jan 2017 16:46:28 +0200 Subject: [PATCH 38/65] TEST- updated bug ID's --- .../alfresco/rest/favorites/DeleteFavoriteCoreTests.java | 4 ++-- .../alfresco/rest/favorites/DeleteFavoriteFullTests.java | 6 +++--- .../alfresco/rest/favorites/DeleteFavoriteSanityTests.java | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java index 15c954a6f..ac965bcf9 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteCoreTests.java @@ -138,7 +138,7 @@ public class DeleteFavoriteCoreTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); } - @Bug(id="MNT-16557") + @Bug(id="ACE-5588") @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify user doesn't have permission to delete favorites of another user with Rest API and status code is 404") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE }) @@ -153,7 +153,7 @@ public class DeleteFavoriteCoreTests extends RestTest .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); } - @Bug(id="MNT-16557") + @Bug(id="ACE-5588") @TestRail(section = { TestGroup.REST_API,TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify admin user doesn't have permission to delete favorites of another user with Rest API and status code is 404") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE }) diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java index 5b6047afa..854fd3451 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteFullTests.java @@ -70,7 +70,7 @@ public class DeleteFavoriteFullTests extends RestTest .entriesListDoesNotContain("targetGuid", fileModel.getNodeRefWithoutVersion()); } - @Bug(id="MNT-16557") + @Bug(id="ACE-5588") @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify consumer user doesn't have permission to delete favorites of another user with Rest API and status code is 404") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) @@ -86,7 +86,7 @@ public class DeleteFavoriteFullTests extends RestTest .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); } - @Bug(id="MNT-16557") + @Bug(id="ACE-5588") @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify contributor user doesn't have permission to delete favorites of another user with Rest API and status code is 404") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) @@ -102,7 +102,7 @@ public class DeleteFavoriteFullTests extends RestTest .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); } - @Bug(id="MNT-16557") + @Bug(id="ACE-5588") @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify contributor user doesn't have permission to delete favorites of another user with Rest API and status code is 404") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java index 6c12b8631..acb7f60b3 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java @@ -44,7 +44,7 @@ public class DeleteFavoriteSanityTests extends RestTest restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("targetGuid", siteModel.getGuid()); } - @Bug(id="MNT-16557") + @Bug(id="ACE-5588") @TestRail(section = { TestGroup.REST_API,TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, description = "Verify user doesn't have permission to delete favorites of admin user with Rest API and status code is 404") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) From 5ba9eff3080593c3aaaa4a64c1d6ee9f1600df70 Mon Sep 17 00:00:00 2001 From: "NESS\\P3700299" Date: Wed, 11 Jan 2017 17:30:41 +0200 Subject: [PATCH 39/65] fixed test --- .../java/org/alfresco/rest/favorites/GetFavoriteCoreTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteCoreTests.java b/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteCoreTests.java index e9d2df22a..e078d9bda 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteCoreTests.java @@ -123,7 +123,7 @@ public class GetFavoriteCoreTests extends RestTest { @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE }) public void getFavoriteFileUsingMe() throws Exception { - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingAuthUser().addFileToFavorites(fileModel); RestPersonFavoritesModel favoriteFile = restClient.withCoreAPI().usingMe().getFavorite(fileModel.getNodeRefWithoutVersion()); restClient.assertStatusCodeIs(HttpStatus.OK); From 3684c152d3b88e5657f456b0db761e22f59f8dc7 Mon Sep 17 00:00:00 2001 From: Valentin Popa Date: Wed, 11 Jan 2017 17:41:45 +0200 Subject: [PATCH 40/65] Fixes for get favorite sites --- .../rest/favorites/GetFavoritesFullTests.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesFullTests.java b/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesFullTests.java index 187bd0a30..382cbed41 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesFullTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesFullTests.java @@ -63,7 +63,7 @@ public class GetFavoritesFullTests extends RestTest { userFavorites = restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().where().getFavorites(); restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) - .assertLastError().containsSummary(String.format(RestErrorModel.INVALID_ARGUMENT, "WHERE query")); + .assertLastError().containsSummary(String.format(RestErrorModel.INVALID_ARGUMENT, "WHERE query")); } @TestRail(section = { TestGroup.REST_API,TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, @@ -125,7 +125,7 @@ public class GetFavoritesFullTests extends RestTest { userFavorites = restClient.withCoreAPI().usingAuthUser().where().invalidWhereParameter("EXIST((target/site))").targetFileExist().getFavorites(); restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST) - .assertLastError().containsSummary(String.format(RestErrorModel.INVALID_ARGUMENT, "WHERE query")); + .assertLastError().containsSummary(String.format(RestErrorModel.INVALID_ARGUMENT, "WHERE query")); } @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, @@ -137,8 +137,8 @@ public class GetFavoritesFullTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.OK); userFavorites.assertThat().entriesListContains("targetGuid", firstSiteModel.getGuid()) - .and().entriesListContains("targetGuid", secondSiteModel.getGuid()) - .and().entriesListDoesNotContain("targetGuid", thirdSiteModel.getGuid()); + .and().entriesListContains("targetGuid", secondSiteModel.getGuid()) + .and().entriesListDoesNotContain("targetGuid", thirdSiteModel.getGuid()); } @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, @@ -150,12 +150,15 @@ public class GetFavoritesFullTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.OK); userFavorites.assertThat().entriesListContains("targetGuid", thirdSiteModel.getGuid()) - .and().entriesListContains("targetGuid", secondSiteModel.getGuid()) - .and().entriesListDoesNotContain("targetGuid", firstSiteModel.getGuid()); + .and().entriesListContains("targetGuid", secondSiteModel.getGuid()) + .and().entriesListDoesNotContain("targetGuid", firstSiteModel.getGuid()) + .getPagination().assertThat().field("maxItems").is("2") + .and().field("hasMoreItems").is("true") + .and().field("count").is("2"); } @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, - description = "Verify get first two favorites sites") + description = "Verify get favorites sites when using empty values for skipCount and maxItems") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) public void userIsAbleToGetFavoritesWhenSkipCountAndMaxItemsAreEmpty() throws Exception { @@ -181,8 +184,7 @@ public class GetFavoritesFullTests extends RestTest tenantUser.setDomain("invalidNetwork"); restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().getFavorites(); restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED) - .assertLastError() - .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); + .assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, @@ -225,4 +227,4 @@ public class GetFavoritesFullTests extends RestTest .field("id").is(thirdSiteModel.getId()).and() .field("title").is(thirdSiteModel.getTitle()); } -} +} \ No newline at end of file From 80f4f80bd8b2c3ebfc428a449c943a326dd71840 Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Wed, 11 Jan 2017 17:52:05 +0200 Subject: [PATCH 41/65] fixed: updated getPersonActivitiesWithRetry to wait til the no of entries is as expected --- .../rest/people/AddSiteMembershipRequestSanityTests.java | 1 - .../org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java | 2 +- .../org/alfresco/rest/people/GetPeopleActivitiesFullTests.java | 2 +- .../alfresco/rest/people/GetPeopleActivitiesSanityTests.java | 3 +-- .../rest/people/GetSiteMembershipRequestsSanityTests.java | 2 -- 5 files changed, 3 insertions(+), 7 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/AddSiteMembershipRequestSanityTests.java b/e2e-test/java/org/alfresco/rest/people/AddSiteMembershipRequestSanityTests.java index 91f59b4ef..a248b6cb2 100644 --- a/e2e-test/java/org/alfresco/rest/people/AddSiteMembershipRequestSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/AddSiteMembershipRequestSanityTests.java @@ -6,7 +6,6 @@ import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestSiteMembershipRequestModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser; -import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.exception.DataPreparationException; import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java index fbb7265da..cd86f55be 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesCoreTests.java @@ -45,7 +45,7 @@ public class GetPeopleActivitiesCoreTests extends RestTest dataUser.usingUser(userModel).addUserToSite(managerUser, siteModel2, UserRole.SiteManager); // only once the activity list is checked with retry in order not to wait the entire list in each test - restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getPersonActivitiesWithRetry(); + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getPersonActivitiesUntilEntriesCountIs(4); restClient.assertStatusCodeIs(HttpStatus.OK); restActivityModelsCollection.assertThat().paginationField("count").is("4"); } diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java index f6536c095..ffe5b50d9 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesFullTests.java @@ -53,7 +53,7 @@ public class GetPeopleActivitiesFullTests extends RestTest dataUser.usingUser(userModel).addUserToSite(managerUser, siteModel2, UserRole.SiteManager); // only once the activity list is checked with retry in order not to wait the entire list in each test - restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getPersonActivitiesWithRetry(); + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingMe().getPersonActivitiesUntilEntriesCountIs(4); restClient.assertStatusCodeIs(HttpStatus.OK); restActivityModelsCollection.assertThat().paginationField("count").is("4"); } diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesSanityTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesSanityTests.java index 96fb63082..f0b91dce5 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeopleActivitiesSanityTests.java @@ -39,9 +39,8 @@ public class GetPeopleActivitiesSanityTests extends RestTest unauthenticatedUser.setPassword("newpassword"); // only once the activity list is checked with retry in order not to wait the entire list in each test - restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser().getPersonActivitiesWithRetry(); + restActivityModelsCollection = restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser().getPersonActivitiesUntilEntriesCountIs(5); restClient.assertStatusCodeIs(HttpStatus.OK); - restActivityModelsCollection.assertThat().entriesListIsNotEmpty(); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.SANITY }) diff --git a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsSanityTests.java b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsSanityTests.java index 78a08b88e..1551fa7c3 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestsSanityTests.java @@ -5,7 +5,6 @@ import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestSiteMembershipRequestModelsCollection; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser; -import org.alfresco.utility.data.RandomData; import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; import org.alfresco.utility.model.UserModel; @@ -13,7 +12,6 @@ import org.alfresco.utility.report.Bug; 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.Visibility; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; From 8977512310b692dff88934e7dd4ef81807f20a1c Mon Sep 17 00:00:00 2001 From: Valentin Popa Date: Wed, 11 Jan 2017 18:27:23 +0200 Subject: [PATCH 42/65] Updates to get comments full tests --- .../rest/comments/GetCommentsFullTests.java | 86 ++++++------------- 1 file changed, 27 insertions(+), 59 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/comments/GetCommentsFullTests.java b/e2e-test/java/org/alfresco/rest/comments/GetCommentsFullTests.java index 6d8425bdb..b736d551f 100644 --- a/e2e-test/java/org/alfresco/rest/comments/GetCommentsFullTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/GetCommentsFullTests.java @@ -1,14 +1,12 @@ package org.alfresco.rest.comments; -import java.util.List; - import org.alfresco.dataprep.CMISUtil.DocumentType; import org.alfresco.rest.RestTest; -import org.alfresco.rest.model.RestCommentModel; import org.alfresco.rest.model.RestCommentModelsCollection; import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser; +import org.alfresco.utility.exception.DataPreparationException; import org.alfresco.utility.model.FileModel; import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; @@ -18,6 +16,7 @@ import org.alfresco.utility.testrail.ExecutionType; import org.alfresco.utility.testrail.annotation.TestRail; import org.springframework.http.HttpStatus; import org.testng.annotations.BeforeClass; +import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; public class GetCommentsFullTests extends RestTest @@ -28,6 +27,7 @@ public class GetCommentsFullTests extends RestTest private String comment2 = "This is the second comment"; private RestCommentModelsCollection comments; private DataUser.ListUserWithRoles usersWithRoles; + private FileModel file; @BeforeClass(alwaysRun=true) public void dataPreparation() throws Exception @@ -37,23 +37,25 @@ public class GetCommentsFullTests extends RestTest usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteContributor, UserRole.SiteConsumer); } + + @BeforeMethod(alwaysRun=true) + public void setUp() throws DataPreparationException, Exception { + file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + } @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, description= "Verify that if manager adds one comment, it will be returned in getComments response") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addCommentWithManagerAndCheckThatCommentIsReturned() throws Exception { - FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); - - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) - .withCoreAPI().usingResource(file).addComment(comment); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingResource(file).addComment(comment); restClient.assertStatusCodeIs(HttpStatus.CREATED); comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); restClient.assertStatusCodeIs(HttpStatus.OK); - comments.assertThat().entriesListContains("content", comment); - comments.assertThat().paginationField("totalItems").is("1"); - comments.assertThat().paginationField("count").is("1"); + comments.assertThat().entriesListContains("content", comment) + .getPagination().assertThat().field("totalItems").is("1") + .assertThat().field("count").is("1"); } @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, @@ -61,17 +63,15 @@ public class GetCommentsFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addCommentWithCollaboratorAndCheckThatCommentIsReturned() throws Exception { - FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) - .withCoreAPI().usingResource(file).addComment(comment); + .withCoreAPI().usingResource(file).addComment(comment); restClient.assertStatusCodeIs(HttpStatus.CREATED); comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); restClient.assertStatusCodeIs(HttpStatus.OK); - comments.assertThat().entriesListContains("content", comment); - comments.assertThat().paginationField("totalItems").is("1"); - comments.assertThat().paginationField("count").is("1"); + comments.assertThat().entriesListContains("content", comment) + .getPagination().assertThat().field("totalItems").is("1") + .assertThat().field("count").is("1"); } @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, @@ -80,17 +80,15 @@ public class GetCommentsFullTests extends RestTest @Bug(id = "ACE-4614") public void addCommentWithContributorAndCheckThatCommentIsReturned() throws Exception { - FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)) - .withCoreAPI().usingResource(file).addComment(comment); + .withCoreAPI().usingResource(file).addComment(comment); restClient.assertStatusCodeIs(HttpStatus.CREATED); comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); restClient.assertStatusCodeIs(HttpStatus.OK); - comments.assertThat().entriesListContains("content", comment); - comments.assertThat().paginationField("totalItems").is("1"); - comments.assertThat().paginationField("count").is("1"); + comments.assertThat().entriesListContains("content", comment) + .getPagination().assertThat().field("totalItems").is("1") + .assertThat().field("count").is("1"); } @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, @@ -98,10 +96,8 @@ public class GetCommentsFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addCommentWithConsumerAndCheckThatCommentIsNotReturned() throws Exception { - FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)) - .withCoreAPI().usingResource(file).addComment(comment); + .withCoreAPI().usingResource(file).addComment(comment); restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); @@ -115,19 +111,13 @@ public class GetCommentsFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addCommentWithManagerCheckReturnedPersonIsTheRightOne() throws Exception { - FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); UserModel user1 = dataUser.createRandomTestUser(); dataUser.addUserToSite(user1, siteModel, UserRole.SiteManager); restClient.authenticateUser(user1).withCoreAPI().usingResource(file).addComment(comment); - restClient.assertStatusCodeIs(HttpStatus.CREATED); - comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); - restClient.assertStatusCodeIs(HttpStatus.OK); - comments.assertThat().entriesListIsNotEmpty(); - List commentsList = comments.getEntries(); - commentsList.get(0).onModel().getCreatedBy().assertThat().field("firstName").is(user1.getUsername() + " FirstName") - .assertThat().field("lastName").is("LN-" + user1.getUsername()); + comments.getOneRandomEntry().onModel().getCreatedBy().assertThat().field("firstName").is(user1.getUsername() + " FirstName") + .assertThat().field("lastName").is("LN-" + user1.getUsername()); } @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, @@ -135,16 +125,11 @@ public class GetCommentsFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addCommentWithCollaboratorCheckReturnedCompanyDetails() throws Exception { - FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingResource(file).addComment(comment); restClient.assertStatusCodeIs(HttpStatus.CREATED); comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); - restClient.assertStatusCodeIs(HttpStatus.OK); - comments.assertThat().entriesListIsNotEmpty(); - List commentsList = comments.getEntries(); - commentsList.get(0).onModel().getCreatedBy().getCompany() + comments.getOneRandomEntry().onModel().getCreatedBy().getCompany() .assertThat().field("organization").isNull() .assertThat().field("address1").isNull() .assertThat().field("address2").isNull() @@ -160,12 +145,8 @@ public class GetCommentsFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addTwoCommentsWithManagerCollaboratorVerifySkipCountParamIsApplied() throws Exception { - FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingResource(file).addComment(comment); - restClient.assertStatusCodeIs(HttpStatus.CREATED); restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingResource(file).addComment(comment2); - restClient.assertStatusCodeIs(HttpStatus.CREATED); comments = restClient.authenticateUser(adminUserModel).withParams("skipCount=1") .withCoreAPI().usingResource(file).getNodeComments(); @@ -181,12 +162,8 @@ public class GetCommentsFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addTwoCommentsWithAdminCollaboratorVerifyMaxItemsParamIsApplied() throws Exception { - FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); - restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).addComment(comment); - restClient.assertStatusCodeIs(HttpStatus.CREATED); restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingResource(file).addComment(comment2); - restClient.assertStatusCodeIs(HttpStatus.CREATED); comments = restClient.authenticateUser(adminUserModel).withParams("maxItems=1") .withCoreAPI().usingResource(file).getNodeComments(); @@ -201,27 +178,20 @@ public class GetCommentsFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addTwoCommentsWithAdminManagerVerifyPropertiesParamIsApplied() throws Exception { - FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); - restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).addComment(comment); - restClient.assertStatusCodeIs(HttpStatus.CREATED); restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingResource(file).addComment(comment2); - restClient.assertStatusCodeIs(HttpStatus.CREATED); comments = restClient.authenticateUser(adminUserModel).withParams("properties=createdBy,modifiedBy") .withCoreAPI().usingResource(file).getNodeComments(); - restClient.assertStatusCodeIs(HttpStatus.OK); comments.assertThat().entriesListIsNotEmpty() .and().paginationField("count").is("2"); comments.assertThat().paginationField("totalItems").is("2"); - List commentsList = comments.getEntries(); - - commentsList.get(0).onModel().getCreatedBy() + comments.getEntries().get(0).onModel().getCreatedBy() .assertThat().field("firstName").is(usersWithRoles.getOneUserWithRole(UserRole.SiteManager).getUsername() + " FirstName") .assertThat().field("lastName").is("LN-" + usersWithRoles.getOneUserWithRole(UserRole.SiteManager).getUsername()); - commentsList.get(1).onModel().getCreatedBy() + comments.getEntries().get(1).onModel().getCreatedBy() .assertThat().field("firstName").is("Administrator") .assertThat().field("id").is("admin"); } @@ -231,10 +201,8 @@ public class GetCommentsFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void addTwoCommentsWithManagerCheckDefaultErrorModelSchema() throws Exception { - FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) - .withCoreAPI().usingResource(file).addComments(comment, comment2); + .withCoreAPI().usingResource(file).addComments(comment, comment2); restClient.assertStatusCodeIs(HttpStatus.CREATED); restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).usingParams("maxItems=0").getNodeComments(); From b3bc2168a2cde1ce877ff971712b73139bf71032 Mon Sep 17 00:00:00 2001 From: Bogdan Bocancea Date: Thu, 12 Jan 2017 12:07:59 +0200 Subject: [PATCH 43/65] update description for getFavoriteSiteUsingInvalidNetwork() test --- .../java/org/alfresco/rest/people/GetFavoriteSiteFullTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-test/java/org/alfresco/rest/people/GetFavoriteSiteFullTests.java b/e2e-test/java/org/alfresco/rest/people/GetFavoriteSiteFullTests.java index 06c9fd69b..ef1d79fb2 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetFavoriteSiteFullTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetFavoriteSiteFullTests.java @@ -149,7 +149,7 @@ public class GetFavoriteSiteFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.FULL }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, - description = "Verify request returns status 200 when using -me-") + description = "Verify request returns status 401 when using invalid network") public void getFavoriteSiteUsingInvalidNetwork() throws Exception { UserModel invalidUserNetwork = dataUser.createRandomTestUser(); From 6fcc3388f3adfd918358c22afdf9d707e552551e Mon Sep 17 00:00:00 2001 From: cagache Date: Thu, 12 Jan 2017 12:08:20 +0200 Subject: [PATCH 44/65] commented bug on 5.2 --- .../java/org/alfresco/rest/sites/UpdateSiteMemberCoreTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e-test/java/org/alfresco/rest/sites/UpdateSiteMemberCoreTests.java b/e2e-test/java/org/alfresco/rest/sites/UpdateSiteMemberCoreTests.java index 25ff17c44..9ac8ba828 100644 --- a/e2e-test/java/org/alfresco/rest/sites/UpdateSiteMemberCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/sites/UpdateSiteMemberCoreTests.java @@ -68,7 +68,7 @@ public class UpdateSiteMemberCoreTests extends RestTest .assertLastError().containsSummary("User is not a member of the site"); } - @Bug(id="REPO-1642", description = "reproduced on 5.2.1 only, it works on 5.2.0") +// @Bug(id="REPO-1642", description = "reproduced on 5.2.1 only, it works on 5.2.0") @Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE }) @TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION, description= "Verify if update site member request returns status code 404 when personId does not exist") From 2d70045eed60239a3770ea1aa39a6cfbfb95e32d Mon Sep 17 00:00:00 2001 From: cagache Date: Thu, 12 Jan 2017 12:27:46 +0200 Subject: [PATCH 45/65] replaced assertLastException with assertLastError for all tests annotated with MNT-16904 --- .../org/alfresco/rest/comments/AddCommentCoreTests.java | 3 ++- .../org/alfresco/rest/comments/AddCommentSanityTests.java | 3 ++- .../alfresco/rest/comments/DeleteCommentsSanityTests.java | 4 +++- .../org/alfresco/rest/comments/GetCommentsSanityTests.java | 4 +++- .../alfresco/rest/comments/UpdateCommentsSanityTests.java | 3 ++- .../alfresco/rest/favorites/AddFavoritesSanityTests.java | 4 +++- .../alfresco/rest/favorites/DeleteFavoriteSanityTests.java | 3 ++- .../org/alfresco/rest/favorites/GetFavoritesCoreTests.java | 2 +- .../rest/networks/RestGetNetworksForPersonSanityTests.java | 4 +++- .../alfresco/rest/people/AddFavoriteSiteSanityTests.java | 4 +++- .../alfresco/rest/people/DeleteFavoriteSiteCoreTests.java | 2 +- .../people/DeleteSiteMembershipRequestSanityTests.java | 3 ++- .../alfresco/rest/people/GetFavoriteSiteSanityTests.java | 3 ++- .../alfresco/rest/people/GetFavoriteSitesSanityTests.java | 3 ++- .../rest/people/GetPeoplePreferenceSanityTests.java | 4 +++- .../rest/people/GetPeoplePreferencesSanityTests.java | 4 +++- .../alfresco/rest/people/GetSiteMembershipCoreTests.java | 2 +- .../rest/people/GetSiteMembershipRequestCoreTests.java | 5 +++-- .../alfresco/rest/people/GetSiteMembershipSanityTests.java | 4 +++- .../people/GetSitesMembershipInformationSanityTests.java | 4 +++- .../org/alfresco/rest/ratings/AddRatingSanityTests.java | 7 +++++-- .../org/alfresco/rest/ratings/DeleteRatingSanityTests.java | 7 +++++-- .../org/alfresco/rest/ratings/GetRatingsSanityTests.java | 3 ++- .../org/alfresco/rest/sites/AddSiteMemberSanityTests.java | 4 +++- .../alfresco/rest/sites/GetSiteContainerSanityTests.java | 4 +++- .../alfresco/rest/sites/GetSiteContainersSanityTests.java | 4 +++- .../org/alfresco/rest/sites/GetSiteMemberSanityTests.java | 4 +++- .../org/alfresco/rest/sites/GetSiteMembersSanityTests.java | 4 +++- .../java/org/alfresco/rest/sites/GetSiteSanityTests.java | 4 +++- .../java/org/alfresco/rest/sites/GetSitesSanityTests.java | 4 +++- .../alfresco/rest/sites/RemoveSiteMemberSanityTests.java | 4 +++- .../alfresco/rest/sites/UpdateSiteMemberSanityTests.java | 4 +++- .../java/org/alfresco/rest/tags/AddTagSanityTests.java | 3 ++- .../java/org/alfresco/rest/tags/AddTagsSanityTests.java | 3 ++- .../java/org/alfresco/rest/tags/DeleteTagSanityTests.java | 3 ++- .../org/alfresco/rest/tags/GetNodeTagsSanityTests.java | 4 +++- .../java/org/alfresco/rest/tags/GetTagSanityTests.java | 4 +++- .../java/org/alfresco/rest/tags/GetTagsSanityTests.java | 4 +++- .../java/org/alfresco/rest/tags/UpdateTagSanityTests.java | 3 ++- .../rest/workflow/tasks/DeleteTaskVariableCoreTests.java | 3 ++- .../rest/workflow/tasks/RemoveTaskItemCoreTests.java | 3 ++- .../rest/workflow/tasks/UpdateTaskVariableCoreTests.java | 3 ++- 42 files changed, 109 insertions(+), 45 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/comments/AddCommentCoreTests.java b/e2e-test/java/org/alfresco/rest/comments/AddCommentCoreTests.java index 732fd1a23..23ea6a54f 100644 --- a/e2e-test/java/org/alfresco/rest/comments/AddCommentCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/AddCommentCoreTests.java @@ -147,7 +147,8 @@ public class AddCommentCoreTests extends RestTest restClient.authenticateUser(member) .withCoreAPI().usingResource(document).addComment(comment); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } @TestRail(section = { TestGroup.REST_API, TestGroup.COMMENTS }, executionType = ExecutionType.REGRESSION, diff --git a/e2e-test/java/org/alfresco/rest/comments/AddCommentSanityTests.java b/e2e-test/java/org/alfresco/rest/comments/AddCommentSanityTests.java index 89484e438..c5625db02 100644 --- a/e2e-test/java/org/alfresco/rest/comments/AddCommentSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/AddCommentSanityTests.java @@ -106,7 +106,8 @@ public class AddCommentSanityTests extends RestTest { restClient.authenticateUser(new UserModel("random user", "random password")); restClient.withCoreAPI().usingResource(document).addComment("This is a new comment"); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/comments/DeleteCommentsSanityTests.java b/e2e-test/java/org/alfresco/rest/comments/DeleteCommentsSanityTests.java index c12260d5e..3d23be26d 100644 --- a/e2e-test/java/org/alfresco/rest/comments/DeleteCommentsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/DeleteCommentsSanityTests.java @@ -4,6 +4,7 @@ import org.alfresco.dataprep.CMISUtil.DocumentType; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; import org.alfresco.rest.model.RestCommentModel; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.model.FileModel; @@ -90,6 +91,7 @@ public class DeleteCommentsSanityTests extends RestTest UserModel nonexistentModel = new UserModel("nonexistentUser", "nonexistentPassword"); restClient.authenticateUser(nonexistentModel); restClient.withCoreAPI().usingResource(document).deleteComment(comment); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/comments/GetCommentsSanityTests.java b/e2e-test/java/org/alfresco/rest/comments/GetCommentsSanityTests.java index 4385ea6d8..d3e2927ac 100644 --- a/e2e-test/java/org/alfresco/rest/comments/GetCommentsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/GetCommentsSanityTests.java @@ -4,6 +4,7 @@ import org.alfresco.dataprep.CMISUtil.DocumentType; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; import org.alfresco.rest.model.RestCommentModelsCollection; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.model.FileModel; @@ -105,7 +106,8 @@ public class GetCommentsSanityTests extends RestTest UserModel nonexistentModel = new UserModel("nonexistentUser", "nonexistentPassword"); restClient.authenticateUser(nonexistentModel).withCoreAPI() .usingResource(document).getNodeComments(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } @TestRail(section={TestGroup.REST_API, TestGroup.COMMENTS}, executionType= ExecutionType.SANITY, diff --git a/e2e-test/java/org/alfresco/rest/comments/UpdateCommentsSanityTests.java b/e2e-test/java/org/alfresco/rest/comments/UpdateCommentsSanityTests.java index 10f66a968..05badefac 100644 --- a/e2e-test/java/org/alfresco/rest/comments/UpdateCommentsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/UpdateCommentsSanityTests.java @@ -114,7 +114,8 @@ public class UpdateCommentsSanityTests extends RestTest UserModel incorrectUserModel = new UserModel("userName", "password"); restClient.authenticateUser(incorrectUserModel) .withCoreAPI().usingResource(document).updateComment(commentModel, "try to update"); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } @TestRail(section = { TestGroup.REST_API, TestGroup.SANITY }, executionType = ExecutionType.SANITY, description = "Verify update comment with inexistent nodeId returns status code 404") diff --git a/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesSanityTests.java b/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesSanityTests.java index 91fb77a7e..8a270a7c8 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesSanityTests.java @@ -2,6 +2,7 @@ package org.alfresco.rest.favorites; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestPersonFavoritesModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; @@ -95,6 +96,7 @@ public class AddFavoritesSanityTests extends RestTest UserModel siteManager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager); siteManager.setPassword("wrongPassword"); restClient.authenticateUser(siteManager).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java index 2d399c106..4aabae20f 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/DeleteFavoriteSanityTests.java @@ -166,6 +166,7 @@ public class DeleteFavoriteSanityTests extends RestTest UserModel siteManager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager); siteManager.setPassword("wrongPassword"); restClient.authenticateUser(siteManager).withCoreAPI().usingAuthUser() - .deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.UNAUTHORIZED); + .deleteSiteFromFavorites(siteModel).assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesCoreTests.java b/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesCoreTests.java index 94c4175f9..5585e77f1 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesCoreTests.java @@ -235,7 +235,7 @@ public class GetFavoritesCoreTests extends RestTest .and().paginationField("totalItems").is("2"); } - @Bug(id="REPO-1642", description = "reproduced on 5.2.1 only, it works on 5.2.0") +// @Bug(id="REPO-1642", description = "reproduced on 5.2.1 only, it works on 5.2.0") @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify request using personId that does not exist returns status 404") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE }) diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonSanityTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonSanityTests.java index c22cf8901..b045e101c 100644 --- a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonSanityTests.java @@ -1,6 +1,7 @@ package org.alfresco.rest.networks; import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.model.TestGroup; import org.alfresco.utility.model.UserModel; import org.alfresco.utility.report.Bug; @@ -36,7 +37,8 @@ public class RestGetNetworksForPersonSanityTests extends RestTest tenantUser.setDomain(adminTenantUser.getDomain()); restClient.authenticateUser(tenantUser); restClient.withCoreAPI().usingAuthUser().getNetworks(adminTenantUser); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, diff --git a/e2e-test/java/org/alfresco/rest/people/AddFavoriteSiteSanityTests.java b/e2e-test/java/org/alfresco/rest/people/AddFavoriteSiteSanityTests.java index 8bb41699c..a6c8a7c74 100644 --- a/e2e-test/java/org/alfresco/rest/people/AddFavoriteSiteSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/AddFavoriteSiteSanityTests.java @@ -1,6 +1,7 @@ package org.alfresco.rest.people; import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestFavoriteSiteModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.model.SiteModel; @@ -100,6 +101,7 @@ public class AddFavoriteSiteSanityTests extends RestTest managerUser.setPassword("newpassword"); restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().addFavoriteSite(siteModel); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteCoreTests.java b/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteCoreTests.java index cb1c898da..265a878e7 100644 --- a/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteCoreTests.java @@ -42,7 +42,7 @@ public class DeleteFavoriteSiteCoreTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) - @Bug(id = "REPO-1642", description = "reproduced on 5.2.1 only, it works on 5.2.0") +// @Bug(id = "REPO-1642", description = "reproduced on 5.2.1 only, it works on 5.2.0") @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify inexistent user is not able to remove a site from favorites and response is 404") public void inexistentUserIsNotAbleToRemoveFavoriteSite() throws Exception diff --git a/e2e-test/java/org/alfresco/rest/people/DeleteSiteMembershipRequestSanityTests.java b/e2e-test/java/org/alfresco/rest/people/DeleteSiteMembershipRequestSanityTests.java index b41d19224..5c6c69a94 100644 --- a/e2e-test/java/org/alfresco/rest/people/DeleteSiteMembershipRequestSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/DeleteSiteMembershipRequestSanityTests.java @@ -131,6 +131,7 @@ public class DeleteSiteMembershipRequestSanityTests extends RestTest restClient.authenticateUser(dataUser.createRandomTestUser()).withCoreAPI().usingAuthUser().addSiteMembershipRequest(siteModel); UserModel inexistentUser = new UserModel("inexistent user", "inexistent password"); restClient.authenticateUser(inexistentUser).withCoreAPI().usingAuthUser().deleteSiteMembershipRequest(siteModel); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/people/GetFavoriteSiteSanityTests.java b/e2e-test/java/org/alfresco/rest/people/GetFavoriteSiteSanityTests.java index 55fb74ea9..070a2020f 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetFavoriteSiteSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetFavoriteSiteSanityTests.java @@ -131,6 +131,7 @@ public class GetFavoriteSiteSanityTests extends RestTest managerUser.setPassword("newpassword"); restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().getFavoriteSite(siteModel1); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/people/GetFavoriteSitesSanityTests.java b/e2e-test/java/org/alfresco/rest/people/GetFavoriteSitesSanityTests.java index 840157a6b..d4d169b8f 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetFavoriteSitesSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetFavoriteSitesSanityTests.java @@ -118,6 +118,7 @@ public class GetFavoriteSitesSanityTests extends RestTest anyUser.setPassword("newpassword"); restClient.authenticateUser(anyUser).withCoreAPI().usingAuthUser().getFavoriteSites(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceSanityTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceSanityTests.java index 74013fd91..b9d7427e1 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferenceSanityTests.java @@ -1,6 +1,7 @@ package org.alfresco.rest.people; import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestPreferenceModel; import org.alfresco.utility.constants.PreferenceName; import org.alfresco.utility.constants.UserRole; @@ -114,6 +115,7 @@ public class GetPeoplePreferenceSanityTests extends RestTest restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser() .getPersonPreferenceInformation(String.format(PreferenceName.SITES_FAVORITES_PREFIX.toString(), siteModel.getId())); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesSanityTests.java b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesSanityTests.java index 6a871427f..b7a3da1fd 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetPeoplePreferencesSanityTests.java @@ -1,6 +1,7 @@ package org.alfresco.rest.people; import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestPreferenceModelsCollection; import org.alfresco.utility.constants.PreferenceName; import org.alfresco.utility.constants.UserRole; @@ -115,6 +116,7 @@ public class GetPeoplePreferencesSanityTests extends RestTest managerUser.setPassword("newpassword"); restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().getPersonPreferences(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipCoreTests.java b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipCoreTests.java index 66670c3f9..d867acfd1 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipCoreTests.java @@ -55,7 +55,7 @@ public class GetSiteMembershipCoreTests extends RestTest } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) - @Bug(id = "REPO-1642", description = "reproduced on 5.2.1 only, it works on 5.2.0") +// @Bug(id = "REPO-1642", description = "reproduced on 5.2.1 only, it works on 5.2.0") @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify get site membership for a site returns status 404 when personId does not exist.") public void getSiteMembershipUsingNonExistentPersonId() throws Exception { diff --git a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestCoreTests.java b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestCoreTests.java index 85e9185e4..b5ef3a2a2 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipRequestCoreTests.java @@ -38,7 +38,7 @@ public class GetSiteMembershipRequestCoreTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION, description = "Verify contributor user fails to get all site membership requests of a specific person with Rest API when the authentication fails (401)") - @Bug(id = "16904") + @Bug(id = "MNT-16904") public void unauthorizedContributorUserFailsToGetSiteMembershipRequests() throws Exception { UserModel contributor = dataUser.usingAdmin().createRandomTestUser(); @@ -71,7 +71,8 @@ public class GetSiteMembershipRequestCoreTests extends RestTest dataUser.usingUser(userModel).addUserToSite(consumer, siteModel, UserRole.SiteContributor); consumer.setPassword("newpassword"); restClient.authenticateUser(consumer).withCoreAPI().usingUser(newMember).getSiteMembershipRequest(siteModel); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) diff --git a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipSanityTests.java b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipSanityTests.java index f3ba0e718..6d46dfbc2 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetSiteMembershipSanityTests.java @@ -2,6 +2,7 @@ package org.alfresco.rest.people; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.exception.DataPreparationException; @@ -84,6 +85,7 @@ public class GetSiteMembershipSanityTests extends RestTest { restClient.authenticateUser(new UserModel("random user", "random password")).withCoreAPI() .usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).getSiteMembership(siteModel); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/people/GetSitesMembershipInformationSanityTests.java b/e2e-test/java/org/alfresco/rest/people/GetSitesMembershipInformationSanityTests.java index 59f3c16a7..74f5b07f3 100644 --- a/e2e-test/java/org/alfresco/rest/people/GetSitesMembershipInformationSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/GetSitesMembershipInformationSanityTests.java @@ -2,6 +2,7 @@ package org.alfresco.rest.people; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.exception.DataPreparationException; @@ -83,6 +84,7 @@ public class GetSitesMembershipInformationSanityTests extends RestTest UserModel inexistentUser = new UserModel("inexistent user", "wrong password"); restClient.authenticateUser(inexistentUser).withCoreAPI().usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) .getSitesMembershipInformation(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/ratings/AddRatingSanityTests.java b/e2e-test/java/org/alfresco/rest/ratings/AddRatingSanityTests.java index 8f0e2253d..503db0088 100644 --- a/e2e-test/java/org/alfresco/rest/ratings/AddRatingSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/ratings/AddRatingSanityTests.java @@ -2,6 +2,7 @@ package org.alfresco.rest.ratings; import org.alfresco.dataprep.CMISUtil.DocumentType; import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestRatingModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; @@ -123,7 +124,8 @@ public class AddRatingSanityTests extends RestTest FileModel document = dataContent.usingUser(userModel).usingResource(folderModel).createContent(DocumentType.TEXT_PLAIN); restClient.authenticateUser(new UserModel("random user", "random password")).withCoreAPI().usingResource(document).likeDocument(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } @TestRail(section = { TestGroup.REST_API, @@ -206,6 +208,7 @@ public class AddRatingSanityTests extends RestTest FileModel document = dataContent.usingUser(userModel).usingResource(folderModel).createContent(DocumentType.TEXT_PLAIN); restClient.authenticateUser(new UserModel("random user", "random password")).withCoreAPI().usingResource(document).rateStarsToDocument(5); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/ratings/DeleteRatingSanityTests.java b/e2e-test/java/org/alfresco/rest/ratings/DeleteRatingSanityTests.java index aa5caa827..1b2472d2b 100644 --- a/e2e-test/java/org/alfresco/rest/ratings/DeleteRatingSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/ratings/DeleteRatingSanityTests.java @@ -2,6 +2,7 @@ package org.alfresco.rest.ratings; import org.alfresco.dataprep.CMISUtil.DocumentType; import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestRatingModelsCollection; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; @@ -177,10 +178,12 @@ public class DeleteRatingSanityTests extends RestTest restClient.authenticateUser(new UserModel("random user", "random password")); restClient.withCoreAPI().usingResource(document).deleteLikeRating(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); restClient.withCoreAPI().usingResource(document).deleteFiveStarRating(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } @TestRail(section = { TestGroup.REST_API,TestGroup.RATINGS }, executionType = ExecutionType.SANITY, description = "Verify one user is not able to remove rating added by another user") diff --git a/e2e-test/java/org/alfresco/rest/ratings/GetRatingsSanityTests.java b/e2e-test/java/org/alfresco/rest/ratings/GetRatingsSanityTests.java index 58a0f18a3..0c07f6419 100644 --- a/e2e-test/java/org/alfresco/rest/ratings/GetRatingsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/ratings/GetRatingsSanityTests.java @@ -144,6 +144,7 @@ public class GetRatingsSanityTests extends RestTest restClient.authenticateUser(new UserModel("random user", "random password")); restClient.withCoreAPI().usingResource(document).getRatings(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(RestErrorModel.AUTHENTICATION_FAILED); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/sites/AddSiteMemberSanityTests.java b/e2e-test/java/org/alfresco/rest/sites/AddSiteMemberSanityTests.java index 7a7c5916b..a99b7713e 100644 --- a/e2e-test/java/org/alfresco/rest/sites/AddSiteMemberSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/sites/AddSiteMemberSanityTests.java @@ -1,6 +1,7 @@ package org.alfresco.rest.sites; import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.model.SiteModel; @@ -111,6 +112,7 @@ public class AddSiteMemberSanityTests extends RestTest UserModel inexistentUser = new UserModel("inexistent user", "inexistent password"); restClient.authenticateUser(inexistentUser) .withCoreAPI().usingSite(siteModel).addPerson(testUser); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/sites/GetSiteContainerSanityTests.java b/e2e-test/java/org/alfresco/rest/sites/GetSiteContainerSanityTests.java index 3082c299f..34517290d 100644 --- a/e2e-test/java/org/alfresco/rest/sites/GetSiteContainerSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/sites/GetSiteContainerSanityTests.java @@ -1,6 +1,7 @@ package org.alfresco.rest.sites; import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestSiteContainerModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; @@ -112,6 +113,7 @@ public class GetSiteContainerSanityTests extends RestTest dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager); restClient.authenticateUser(userModel) .withCoreAPI().usingSite(siteModel).getSiteContainer(siteContainerModel.onModel()); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/sites/GetSiteContainersSanityTests.java b/e2e-test/java/org/alfresco/rest/sites/GetSiteContainersSanityTests.java index 492c49495..775947145 100644 --- a/e2e-test/java/org/alfresco/rest/sites/GetSiteContainersSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/sites/GetSiteContainersSanityTests.java @@ -2,6 +2,7 @@ package org.alfresco.rest.sites; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.model.SiteModel; @@ -108,6 +109,7 @@ public class GetSiteContainersSanityTests extends RestTest dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager); restClient.authenticateUser(userModel) .withCoreAPI().usingSite(siteModel).getSiteContainers(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/sites/GetSiteMemberSanityTests.java b/e2e-test/java/org/alfresco/rest/sites/GetSiteMemberSanityTests.java index fd320cd8b..046721e56 100644 --- a/e2e-test/java/org/alfresco/rest/sites/GetSiteMemberSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/sites/GetSiteMemberSanityTests.java @@ -2,6 +2,7 @@ package org.alfresco.rest.sites; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.exception.DataPreparationException; @@ -105,6 +106,7 @@ public class GetSiteMemberSanityTests extends RestTest UserModel inexistentUser = new UserModel("inexistent user", "inexistent password"); restClient.authenticateUser(inexistentUser); restClient.withCoreAPI().usingSite(siteModel).getSiteMember(userModel); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/sites/GetSiteMembersSanityTests.java b/e2e-test/java/org/alfresco/rest/sites/GetSiteMembersSanityTests.java index af245beb4..4b2cf6c80 100644 --- a/e2e-test/java/org/alfresco/rest/sites/GetSiteMembersSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/sites/GetSiteMembersSanityTests.java @@ -2,6 +2,7 @@ package org.alfresco.rest.sites; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.exception.DataPreparationException; @@ -104,6 +105,7 @@ public class GetSiteMembersSanityTests extends RestTest dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager); restClient.authenticateUser(userModel) .withCoreAPI().usingSite(siteModel).getSiteMembers(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/sites/GetSiteSanityTests.java b/e2e-test/java/org/alfresco/rest/sites/GetSiteSanityTests.java index 2f8290df7..b5813979e 100644 --- a/e2e-test/java/org/alfresco/rest/sites/GetSiteSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/sites/GetSiteSanityTests.java @@ -2,6 +2,7 @@ package org.alfresco.rest.sites; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.exception.DataPreparationException; @@ -113,6 +114,7 @@ public class GetSiteSanityTests extends RestTest restClient.authenticateUser(userModel).withParams("maxItems=10000") .withCoreAPI() .getSites(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/sites/GetSitesSanityTests.java b/e2e-test/java/org/alfresco/rest/sites/GetSitesSanityTests.java index f4b6266fb..12792a552 100644 --- a/e2e-test/java/org/alfresco/rest/sites/GetSitesSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/sites/GetSitesSanityTests.java @@ -2,6 +2,7 @@ package org.alfresco.rest.sites; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.model.SiteModel; @@ -110,6 +111,7 @@ public class GetSitesSanityTests extends RestTest dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager); restClient.authenticateUser(userModel).withParams("maxItems=1") .withCoreAPI().getSites(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/sites/RemoveSiteMemberSanityTests.java b/e2e-test/java/org/alfresco/rest/sites/RemoveSiteMemberSanityTests.java index c84996bca..a1395a62e 100644 --- a/e2e-test/java/org/alfresco/rest/sites/RemoveSiteMemberSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/sites/RemoveSiteMemberSanityTests.java @@ -1,6 +1,7 @@ package org.alfresco.rest.sites; import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.exception.DataPreparationException; @@ -125,6 +126,7 @@ public class RemoveSiteMemberSanityTests extends RestTest UserModel inexistentUser = new UserModel("inexistent user", "inexistent password"); restClient.authenticateUser(inexistentUser).withCoreAPI().usingSite(siteModel).deleteSiteMember(testUserModel); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/sites/UpdateSiteMemberSanityTests.java b/e2e-test/java/org/alfresco/rest/sites/UpdateSiteMemberSanityTests.java index b09c3ddf3..f924eb71a 100644 --- a/e2e-test/java/org/alfresco/rest/sites/UpdateSiteMemberSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/sites/UpdateSiteMemberSanityTests.java @@ -1,6 +1,7 @@ package org.alfresco.rest.sites; import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; import org.alfresco.utility.model.SiteModel; @@ -108,6 +109,7 @@ public class UpdateSiteMemberSanityTests extends RestTest restClient.authenticateUser(inexistentUser); testUserModel.setUserRole(UserRole.SiteCollaborator); restClient.withCoreAPI().usingSite(siteModel).updateSiteMember(testUserModel); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/tags/AddTagSanityTests.java b/e2e-test/java/org/alfresco/rest/tags/AddTagSanityTests.java index d9d08fbcd..84e2d8f10 100644 --- a/e2e-test/java/org/alfresco/rest/tags/AddTagSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/tags/AddTagSanityTests.java @@ -128,6 +128,7 @@ public class AddTagSanityTests extends RestTest siteManager.setPassword("wrongPassword"); restClient.authenticateUser(siteManager); restClient.withCoreAPI().usingResource(document).addTag("tagUnauthorized"); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/tags/AddTagsSanityTests.java b/e2e-test/java/org/alfresco/rest/tags/AddTagsSanityTests.java index ca09f76ef..712715ee2 100644 --- a/e2e-test/java/org/alfresco/rest/tags/AddTagsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/tags/AddTagsSanityTests.java @@ -126,6 +126,7 @@ public class AddTagsSanityTests extends RestTest UserModel siteManager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager); siteManager.setPassword("wrongPassword"); restClient.authenticateUser(siteManager).withCoreAPI().usingResource(document).addTags(tag1, tag2); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/tags/DeleteTagSanityTests.java b/e2e-test/java/org/alfresco/rest/tags/DeleteTagSanityTests.java index 0cba0200b..963cf13ad 100644 --- a/e2e-test/java/org/alfresco/rest/tags/DeleteTagSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/tags/DeleteTagSanityTests.java @@ -130,6 +130,7 @@ public class DeleteTagSanityTests extends RestTest siteManager.setPassword("wrongPassword"); restClient.authenticateUser(siteManager); restClient.withCoreAPI().usingResource(document).deleteTag(tag); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/tags/GetNodeTagsSanityTests.java b/e2e-test/java/org/alfresco/rest/tags/GetNodeTagsSanityTests.java index e22ad4e1e..19b263703 100644 --- a/e2e-test/java/org/alfresco/rest/tags/GetNodeTagsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/tags/GetNodeTagsSanityTests.java @@ -3,6 +3,7 @@ package org.alfresco.rest.tags; import org.alfresco.dataprep.CMISUtil; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestTagModelsCollection; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; @@ -124,6 +125,7 @@ public class GetNodeTagsSanityTests extends RestTest { restClient.authenticateUser(new UserModel("random user", "random password")); restClient.withCoreAPI().usingResource(document).getNodeTags(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/tags/GetTagSanityTests.java b/e2e-test/java/org/alfresco/rest/tags/GetTagSanityTests.java index 192c01e20..62122f44e 100644 --- a/e2e-test/java/org/alfresco/rest/tags/GetTagSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/tags/GetTagSanityTests.java @@ -3,6 +3,7 @@ package org.alfresco.rest.tags; import org.alfresco.dataprep.CMISUtil.DocumentType; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestTagModel; import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.data.DataUser.ListUserWithRoles; @@ -120,7 +121,8 @@ public class GetTagSanityTests extends RestTest managerUser.setPassword("wrongPassword"); restClient.authenticateUser(managerUser); restClient.withCoreAPI().getTag(tag); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/tags/GetTagsSanityTests.java b/e2e-test/java/org/alfresco/rest/tags/GetTagsSanityTests.java index 508017a5d..df502158e 100644 --- a/e2e-test/java/org/alfresco/rest/tags/GetTagsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/tags/GetTagsSanityTests.java @@ -3,6 +3,7 @@ package org.alfresco.rest.tags; import org.alfresco.dataprep.CMISUtil; import org.alfresco.rest.RestTest; import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; import org.alfresco.rest.model.RestTagModelsCollection; import org.alfresco.utility.Utility; import org.alfresco.utility.constants.UserRole; @@ -118,6 +119,7 @@ public class GetTagsSanityTests extends RestTest dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager); restClient.authenticateUser(userModel); restClient.withCoreAPI().getTags(); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/tags/UpdateTagSanityTests.java b/e2e-test/java/org/alfresco/rest/tags/UpdateTagSanityTests.java index 259c01b28..442e24e10 100644 --- a/e2e-test/java/org/alfresco/rest/tags/UpdateTagSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/tags/UpdateTagSanityTests.java @@ -111,6 +111,7 @@ public class UpdateTagSanityTests extends RestTest siteManager.setPassword("wrongPassword"); restClient.authenticateUser(siteManager); restClient.withCoreAPI().usingTag(oldTag).update(randomTag); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastExceptionContains(HttpStatus.UNAUTHORIZED.toString()); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/workflow/tasks/DeleteTaskVariableCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/tasks/DeleteTaskVariableCoreTests.java index 893156fea..3cb14acf9 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/tasks/DeleteTaskVariableCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/tasks/DeleteTaskVariableCoreTests.java @@ -120,6 +120,7 @@ public class DeleteTaskVariableCoreTests extends RestTest .withWorkflowAPI() .usingTask(taskModel) .deleteTaskVariable(variableModel); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } diff --git a/e2e-test/java/org/alfresco/rest/workflow/tasks/RemoveTaskItemCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/tasks/RemoveTaskItemCoreTests.java index 5802f0246..462d8e477 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/tasks/RemoveTaskItemCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/tasks/RemoveTaskItemCoreTests.java @@ -129,7 +129,8 @@ public class RemoveTaskItemCoreTests extends RestTest document2 = dataContent.usingSite(siteModel).createContent(DocumentType.XML); taskItem = restClient.authenticateUser(userWhoStartsTask).withWorkflowAPI().usingTask(taskModel).addTaskItem(document2); restClient.authenticateUser(UserModel.getRandomUserModel()).withWorkflowAPI().usingTask(taskModel).deleteTaskItem(taskItem); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } @TestRail(section = {TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS }, executionType = ExecutionType.REGRESSION, diff --git a/e2e-test/java/org/alfresco/rest/workflow/tasks/UpdateTaskVariableCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/tasks/UpdateTaskVariableCoreTests.java index 595d696b9..e38d7ea47 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/tasks/UpdateTaskVariableCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/tasks/UpdateTaskVariableCoreTests.java @@ -167,7 +167,8 @@ public class UpdateTaskVariableCoreTests extends RestTest variableModel.setName("new-name"); taskVariable = restClient.authenticateUser(UserModel.getRandomUserModel()) .withWorkflowAPI().usingTask(taskModel).updateTaskVariable(variableModel); - restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError() + .containsSummary(RestErrorModel.AUTHENTICATION_FAILED); } } \ No newline at end of file From 9fccc649574f026e70877848c08edbb770b1bb1f Mon Sep 17 00:00:00 2001 From: cagache Date: Thu, 12 Jan 2017 12:32:56 +0200 Subject: [PATCH 46/65] added test annotation --- .../java/org/alfresco/rest/comments/DeleteCommentsCoreTests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/e2e-test/java/org/alfresco/rest/comments/DeleteCommentsCoreTests.java b/e2e-test/java/org/alfresco/rest/comments/DeleteCommentsCoreTests.java index cefe84996..83e63ef7e 100644 --- a/e2e-test/java/org/alfresco/rest/comments/DeleteCommentsCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/DeleteCommentsCoreTests.java @@ -38,6 +38,7 @@ public class DeleteCommentsCoreTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.COMMENTS }, executionType = ExecutionType.REGRESSION, description = "Verify Consumer user can't delete comments created by admin user and status code is 403") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) public void consumerIsNotAbleToDeleteComments() throws JsonToModelConversionException, Exception { restClient.authenticateUser(adminUserModel); From b2959c36ddf401f12d7bd64847659d8f96fa26d6 Mon Sep 17 00:00:00 2001 From: cagache Date: Thu, 12 Jan 2017 12:37:22 +0200 Subject: [PATCH 47/65] added test annotation --- .../alfresco/rest/workflow/tasks/AddTaskVariablesCoreTests.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/e2e-test/java/org/alfresco/rest/workflow/tasks/AddTaskVariablesCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/tasks/AddTaskVariablesCoreTests.java index 946f6028e..b3b31a4b6 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/tasks/AddTaskVariablesCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/tasks/AddTaskVariablesCoreTests.java @@ -79,6 +79,7 @@ public class AddTaskVariablesCoreTests extends RestTest } + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS, TestGroup.CORE }) @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS }, executionType = ExecutionType.REGRESSION, description = "Adding task variable is falling in case incomplete body - missing required: name type is provided") public void failedAddingTaskVariableIfIncompleteRequiredBodyIsProvided() throws Exception { @@ -103,6 +104,7 @@ public class AddTaskVariablesCoreTests extends RestTest } @Bug(id = "ACE-5674") + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS, TestGroup.CORE }) @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS }, executionType = ExecutionType.REGRESSION, description = "Adding task variable is falling in case invalid type prefix is provided") public void failedAddingTaskVariableIfInvalidTypePrefixIsProvided() throws Exception { From d5be0fe1da98ed2e17da13ab3af73983b84a00a7 Mon Sep 17 00:00:00 2001 From: Valentin Popa Date: Thu, 12 Jan 2017 15:42:46 +0200 Subject: [PATCH 48/65] Add missing sanity tests for Get network membership --- .../RestGetNetworksForPersonSanityTests.java | 69 +++++++++++++++++-- 1 file changed, 65 insertions(+), 4 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonSanityTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonSanityTests.java index b045e101c..d1d4bb596 100644 --- a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonSanityTests.java @@ -2,6 +2,9 @@ package org.alfresco.rest.networks; import org.alfresco.rest.RestTest; import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestNetworkModelsCollection; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; import org.alfresco.utility.model.UserModel; import org.alfresco.utility.report.Bug; @@ -14,8 +17,9 @@ import org.testng.annotations.Test; public class RestGetNetworksForPersonSanityTests extends RestTest { private UserModel adminUserModel; - UserModel adminTenantUser; - UserModel tenantUser; + private UserModel adminTenantUser; + private UserModel tenantUser; + private SiteModel siteModel; @BeforeClass(alwaysRun = true) public void dataPreparation() throws Exception @@ -25,11 +29,12 @@ public class RestGetNetworksForPersonSanityTests extends RestTest restClient.authenticateUser(adminUserModel); restClient.usingTenant().createTenant(adminTenantUser); tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + siteModel = dataSite.usingUser(adminTenantUser).createPublicRandomSite(); } @Bug(id = "MNT-16904") @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, - description = "Verify non existing user gets another exisiting network with Rest API and checks the forbidden status") + description = "Verify non existing user gets another exisiting network with Rest API and checks the unauthorized status") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) public void nonExistingTenantUserIsNotAuthorizedToRequest() throws Exception { @@ -73,4 +78,60 @@ public class RestGetNetworksForPersonSanityTests extends RestTest restClient.withCoreAPI().usingAuthUser().getNetworks(secondTenantUser); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND); } -} + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, + description = "Verify tenant manager user gets specific network with Rest API and response is not empty") + @Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) + public void managerTenantChecksIfNetworkIsPresent() throws Exception + { + UserModel managerTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("managerTenant"); + dataUser.usingUser(adminTenantUser).addUserToSite(managerTenantUser, siteModel, UserRole.SiteManager); + + restClient.authenticateUser(managerTenantUser); + RestNetworkModelsCollection networks = restClient.withCoreAPI().usingAuthUser().getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.OK); + networks.getOneRandomEntry().onModel().assertNetworkIsEnabled().and().field("id").is(managerTenantUser.getDomain().toLowerCase()); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, + description = "Verify tenant collaborator user gets specific network with Rest API and response is not empty") + @Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) + public void collaboratorTenantChecksIfNetworkIsPresent() throws Exception + { + UserModel collaboratorTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("collaboratorTenant"); + dataUser.usingUser(adminTenantUser).addUserToSite(collaboratorTenantUser, siteModel, UserRole.SiteCollaborator); + + restClient.authenticateUser(collaboratorTenantUser); + RestNetworkModelsCollection networks = restClient.withCoreAPI().usingAuthUser().getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.OK); + networks.getOneRandomEntry().onModel().assertNetworkIsEnabled().and().field("id").is(collaboratorTenantUser.getDomain().toLowerCase()); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, + description = "Verify tenant contributor user gets specific network with Rest API and response is not empty") + @Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) + public void contributorTenantChecksIfNetworkIsPresent() throws Exception + { + UserModel contributorTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("contributorTenant"); + dataUser.usingUser(adminTenantUser).addUserToSite(contributorTenantUser, siteModel, UserRole.SiteContributor); + + restClient.authenticateUser(contributorTenantUser); + RestNetworkModelsCollection networks = restClient.withCoreAPI().usingAuthUser().getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.OK); + networks.getOneRandomEntry().onModel().assertNetworkIsEnabled().and().field("id").is(contributorTenantUser.getDomain().toLowerCase()); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, + description = "Verify tenant consumer user gets specific network with Rest API and response is not empty") + @Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) + public void consumerTenantChecksIfNetworkIsPresent() throws Exception + { + UserModel consumerTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("consumerTenant"); + dataUser.usingUser(adminTenantUser).addUserToSite(consumerTenantUser, siteModel, UserRole.SiteConsumer); + + restClient.authenticateUser(consumerTenantUser); + RestNetworkModelsCollection networks = restClient.withCoreAPI().usingAuthUser().getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.OK); + networks.getOneRandomEntry().onModel().assertNetworkIsEnabled().and().field("id").is(consumerTenantUser.getDomain().toLowerCase()); + } +} \ No newline at end of file From 7d702890ac8f1f98fcc02fdf007b4fa21dc5a01e Mon Sep 17 00:00:00 2001 From: Cristina Jalba Date: Thu, 12 Jan 2017 16:16:33 +0200 Subject: [PATCH 49/65] Fixing AddFavoritesCoreTests --- .../alfresco/rest/favorites/AddFavoritesCoreTests.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesCoreTests.java b/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesCoreTests.java index 2c09b2b53..cbe312f90 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesCoreTests.java @@ -88,7 +88,7 @@ public class AddFavoritesCoreTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE }) public void addFavoriteTwice() throws Exception { - restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); restClient.assertStatusCodeIs(HttpStatus.CREATED); restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); restClient.assertStatusCodeIs(HttpStatus.CONFLICT); @@ -129,7 +129,7 @@ public class AddFavoritesCoreTests extends RestTest .withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); restClient.assertStatusCodeIs(HttpStatus.CREATED); - restClient.withCoreAPI().usingAuthUser().getFavoriteSites().assertThat().entriesListContains("guid", siteModel.getGuid()); + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().getFavoriteSites().assertThat().entriesListContains("guid", siteModel.getGuid()); } @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, @@ -164,7 +164,7 @@ public class AddFavoritesCoreTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.CREATED); restPersonFavoritesModel.assertThat().field("targetGuid").is(siteModel.getGuid()); - restClient.withCoreAPI().usingAuthUser().getFavoriteSites().assertThat().entriesListContains("guid", siteModel.getGuid()); + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().getFavoriteSites().assertThat().entriesListContains("guid", siteModel.getGuid()); } @Bug(id = "MNT-17158") @@ -204,7 +204,7 @@ public class AddFavoritesCoreTests extends RestTest String guid = siteModel.getGuid(); siteModel.setGuid(document.getNodeRefWithoutVersion()); - restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, document.getNodeRefWithoutVersion())); siteModel.setGuid(guid); @@ -218,7 +218,7 @@ public class AddFavoritesCoreTests extends RestTest String nodeRef = folder.getNodeRef(); folder.setNodeRef(document.getNodeRef()); - restClient.withCoreAPI().usingAuthUser().addFolderToFavorites(folder); + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addFolderToFavorites(folder); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, document.getNodeRef())); folder.setNodeRef(nodeRef); From 960350f5d6652865ec75355a2a7cf2a1ecba56a1 Mon Sep 17 00:00:00 2001 From: Cristina Jalba Date: Thu, 12 Jan 2017 16:52:58 +0200 Subject: [PATCH 50/65] Fixing AddFavorites Core and Sanity Tests --- .../alfresco/rest/favorites/AddFavoritesCoreTests.java | 8 ++++---- .../alfresco/rest/favorites/AddFavoritesSanityTests.java | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesCoreTests.java b/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesCoreTests.java index cbe312f90..941dd06b5 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesCoreTests.java @@ -55,7 +55,7 @@ public class AddFavoritesCoreTests extends RestTest SiteModel site = dataSite.usingUser(adminUserModel).createPublicRandomSite(); site.setGuid(link.getNodeRef()); - restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(site); + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteToFavorites(site); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, site.getGuid().split("/")[3])); } @@ -64,7 +64,7 @@ public class AddFavoritesCoreTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.CORE }) public void addFavoriteUsingInexistentUser() throws Exception { - restClient.withCoreAPI().usingUser(new UserModel("random_user", "random_password")).addSiteToFavorites(siteModel); + restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(new UserModel("random_user", "random_password")).addSiteToFavorites(siteModel); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "random_user")); } @@ -77,7 +77,7 @@ public class AddFavoritesCoreTests extends RestTest SiteModel site = dataSite.usingUser(adminUserModel).createPublicRandomSite(); site.setGuid("random_guid"); - restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(site); + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteToFavorites(site); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "random_guid")); } @@ -102,7 +102,7 @@ public class AddFavoritesCoreTests extends RestTest String nodeRef = document.getNodeRef(); document.setNodeRef(folder.getNodeRef()); - restClient.withCoreAPI().usingAuthUser().addFileToFavorites(document); + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addFileToFavorites(document); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUserModel.getUsername(), folder.getNodeRefWithoutVersion())); diff --git a/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesSanityTests.java b/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesSanityTests.java index 8a270a7c8..672fed851 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesSanityTests.java @@ -37,7 +37,7 @@ public class AddFavoritesSanityTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY }) public void adminIsAbleToAddToFavorites() throws Exception { - restPersonFavoritesModel = restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + restPersonFavoritesModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); restClient.assertStatusCodeIs(HttpStatus.CREATED); restPersonFavoritesModel.assertThat().field("targetGuid").is(siteModel.getGuid()); } From 1b5ca90e03164642d0cc1c379650952d3c66b562 Mon Sep 17 00:00:00 2001 From: Valentin Popa Date: Thu, 12 Jan 2017 17:17:46 +0200 Subject: [PATCH 51/65] Added core tests for get networks membership --- .../RestGetNetworksForPersonCoreTests.java | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonCoreTests.java diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonCoreTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonCoreTests.java new file mode 100644 index 000000000..8f1bd55fe --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonCoreTests.java @@ -0,0 +1,80 @@ +package org.alfresco.rest.networks; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestNetworkModelsCollection; +import org.alfresco.utility.model.TestGroup; +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.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class RestGetNetworksForPersonCoreTests extends RestTest +{ + private UserModel adminUserModel; + UserModel adminTenantUser; + UserModel tenantUser; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUserModel = dataUser.getAdminUser(); + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUserModel); + restClient.usingTenant().createTenant(adminTenantUser); + tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Get tenant user networks using invalid value for skipCount") + @Test(groups = {TestGroup.REST_API, TestGroup.CORE, TestGroup.NETWORKS }) + public void invalidValueForSkipCountTest() throws Exception + { + restClient.authenticateUser(adminTenantUser).withParams("skipCount=abc").withCoreAPI().usingAuthUser().getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "abc")); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Get tenant user networks using invalid value for maxItems") + @Test(groups = {TestGroup.REST_API, TestGroup.CORE, TestGroup.NETWORKS }) + public void invalidValueForMaxItemsTest() throws Exception + { + restClient.authenticateUser(adminTenantUser).withParams("maxItems=abc").withCoreAPI().usingAuthUser().getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "abc")); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Get tenant user networks using personId that does not exist") + @Test(groups = {TestGroup.REST_API, TestGroup.CORE, TestGroup.NETWORKS }) + public void inexistentTenantTest() throws Exception + { + restClient.authenticateUser(adminTenantUser).withCoreAPI().usingUser(new UserModel("invalidTenantUser", "password")).getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidTenantUser")); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Get tenant user networks using -me- instead of personId") + @Test(groups = {TestGroup.REST_API, TestGroup.CORE, TestGroup.NETWORKS }) + public void specifyMeInsteadOfPersonIdTest() throws Exception + { + RestNetworkModelsCollection networks = restClient.authenticateUser(adminTenantUser).withCoreAPI().usingMe().getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.OK); + networks.getOneRandomEntry().onModel().assertNetworkIsEnabled().and().field("id").is(adminTenantUser.getDomain().toLowerCase()); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Get tenant user networks and validate network entry") + @Test(groups = {TestGroup.REST_API, TestGroup.CORE, TestGroup.NETWORKS }) + public void checkNetworkEntryTest() throws Exception + { + RestNetworkModelsCollection networks = restClient.authenticateUser(adminTenantUser).withCoreAPI().usingAuthUser().getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.OK); + networks.getOneRandomEntry().onModel().assertNetworkIsEnabled() + .and().field("id").is(adminTenantUser.getDomain().toLowerCase()) + .and().field("quotas").is("[]") + .and().field("homeNetwork").is("false"); + } + +} \ No newline at end of file From 4c839d2af314183ba9c9e2f22550512cfd77c9b1 Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Thu, 12 Jan 2017 17:33:08 +0200 Subject: [PATCH 52/65] fixed tests --- .../rest/workflow/tasks/GetTasksCoreTests.java | 16 +++------------- .../workflow/tasks/UpdateTaskCoreTestsBulk3.java | 2 +- 2 files changed, 4 insertions(+), 14 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/workflow/tasks/GetTasksCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/tasks/GetTasksCoreTests.java index c8136c971..da3b9651d 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/tasks/GetTasksCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/tasks/GetTasksCoreTests.java @@ -56,21 +56,11 @@ public class GetTasksCoreTests extends RestTest TestGroup.TASKS }, executionType = ExecutionType.REGRESSION, description = "Check that orderBy parameter is applied.") @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS, TestGroup.CORE }) public void orderByParameterApplied() throws Exception - { - - - taskModels = restClient.authenticateUser(dataUser.getAdminUser()).withParams("orderBy=id DESC").withWorkflowAPI().getTasks(); + { + taskModels = restClient.authenticateUser(dataUser.getAdminUser()).withParams("orderBy=id").withWorkflowAPI().getTasks(); restClient.assertStatusCodeIs(HttpStatus.OK); taskModels.assertThat().entriesListIsNotEmpty(). - and().entriesListIsSortedAscBy("id"); - List tasksList = taskModels.getEntries(); - List taskIds = new ArrayList(); - for(RestTaskModel task: tasksList) - { - taskIds.add(task.onModel().getId()); - } - boolean sorted = Ordering.natural().isOrdered(taskIds); - Assert.assertTrue(sorted, "Tasks list should be ordered ascendent after id"); + and().entriesListIsSortedAscBy("id"); } @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, diff --git a/e2e-test/java/org/alfresco/rest/workflow/tasks/UpdateTaskCoreTestsBulk3.java b/e2e-test/java/org/alfresco/rest/workflow/tasks/UpdateTaskCoreTestsBulk3.java index 217acf38c..d6e53b4e7 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/tasks/UpdateTaskCoreTestsBulk3.java +++ b/e2e-test/java/org/alfresco/rest/workflow/tasks/UpdateTaskCoreTestsBulk3.java @@ -107,7 +107,7 @@ public class UpdateTaskCoreTestsBulk3 extends RestTest RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, postBody, "tasks/{taskId}?{parameters}", taskModel.getId(), restClient.getParameters()); restTaskModel = restClient.processModel(RestTaskModel.class, request); restClient.assertStatusCodeIs(HttpStatus.OK); - restTaskModel.assertThat().field("priorityTask").is(CMISUtil.Priority.Low.getLevel()); + restTaskModel.assertThat().field("priority").is(CMISUtil.Priority.Low.getLevel()); } @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS, TestGroup.CORE }) From 317b71326a4d710cb1745ca5b6fc0b9d584df03c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alecsandru=20Prun=C4=83?= Date: Thu, 12 Jan 2017 17:59:42 +0200 Subject: [PATCH 53/65] test: Added core tests for people/{personId}/networks/{networkId} --- .../RestGetNetworkForPersonCoreTests.java | 88 ++++++++++++++++++ .../RestGetNetworkForPersonFullTests.java | 70 ++++++++++++++ .../RestGetNetworkForPersonSanityTests.java | 93 ++++++++++++++----- 3 files changed, 230 insertions(+), 21 deletions(-) create mode 100644 e2e-test/java/org/alfresco/rest/networks/RestGetNetworkForPersonCoreTests.java create mode 100644 e2e-test/java/org/alfresco/rest/networks/RestGetNetworkForPersonFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkForPersonCoreTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkForPersonCoreTests.java new file mode 100644 index 000000000..7c5bab860 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkForPersonCoreTests.java @@ -0,0 +1,88 @@ +package org.alfresco.rest.networks; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestNetworkModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +/** + * Tests for /people/{personId}/networks + */ +public class RestGetNetworkForPersonCoreTests extends RestTest +{ + UserModel adminUser; + UserModel adminTenantUser; + UserModel tenantUser; + UserModel randomTestUser; + RestNetworkModel restNetworkModel; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUser = dataUser.getAdminUser(); + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUser); + restClient.usingTenant().createTenant(adminTenantUser); + tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + randomTestUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("randomTestUser"); + } + + @Bug(id = "needs to be checked") + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify getNetwork request status code is 200 if a user tries to get network information of another user") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.CORE }) + public void verifyGetNetworkByAUserForAnotherUser() throws Exception + { + restNetworkModel = restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().getNetwork(randomTestUser); + restClient.assertStatusCodeIs(HttpStatus.OK); + restNetworkModel.assertThat().field("id").is(tenantUser.getDomain()); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify that getNetwork status code is 404 for a personId that does not exist") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.CORE }) + public void verifyThatGetNetworkStatusIs404ForAPersonIdThatDoesNotExist() throws Exception + { + UserModel invalidUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("validUsername"); + invalidUser.setUsername("invalidUsername"); + + restClient.authenticateUser(adminTenantUser).withCoreAPI().usingUser(invalidUser).getNetwork(); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() + .containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY) + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, invalidUser.getUsername())) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify that getNetwork status code is 404 for a networkId that does not exist") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.CORE }) + public void verifyThatGetNetworkStatusIs404ForANetworkIdThatDoesNotExist() throws Exception + { + UserModel invalidUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("invalidNetworkId"); + invalidUser.setDomain("invalidNetworkId"); + + restClient.authenticateUser(adminTenantUser).withCoreAPI().usingUser(invalidUser).getNetwork(); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError() + .containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY) + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, invalidUser.getUsername())) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify getNetwork request that is made using -me- instead of personId") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.CORE }) + public void verifyGetNetworkRequestUsingMeInsteadOfPersonId() throws Exception + { + restClient.authenticateUser(adminTenantUser).withCoreAPI().usingMe().getNetwork(); + restClient.assertStatusCodeIs(HttpStatus.OK); + } +} \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkForPersonFullTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkForPersonFullTests.java new file mode 100644 index 000000000..e5a5e344d --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkForPersonFullTests.java @@ -0,0 +1,70 @@ +package org.alfresco.rest.networks; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestNetworkModel; +import org.alfresco.rest.model.RestNetworkQuotaModel; +import org.alfresco.utility.model.TestGroup; +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.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +import java.util.ArrayList; + +/** + * Tests for /people/{personId}/networks + */ +public class RestGetNetworkForPersonFullTests extends RestTest +{ + UserModel adminUser; + UserModel adminTenantUser; + UserModel secondAdminTenantUser; + UserModel tenantUser; + RestNetworkModel restNetworkModel; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUser = dataUser.getAdminUser(); + adminTenantUser = UserModel.getAdminTenantUser(); + secondAdminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUser).usingTenant().createTenant(adminTenantUser); + restClient.usingTenant().createTenant(secondAdminTenantUser); + tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify getNetwork request response entry details") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.FULL }) + public void verifyGetNetworkRequestResponseEntryDetails() throws Exception + { + restNetworkModel = restClient.authenticateUser(adminTenantUser).withCoreAPI().usingMe().getNetwork(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restNetworkModel.assertThat().field("quotas").is(new ArrayList()) + .assertThat().field("isEnabled").is("true") + .assertThat().field("homeNetwork").is("true") + .assertThat().field("id").is(adminTenantUser.getDomain().toLowerCase()); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify that properties parameter is applied to getNetwork request") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.FULL }) + public void verifyPropertiesParameterIsAppliedToGetNetworkRequest() throws Exception + { + restNetworkModel = restClient.authenticateUser(adminTenantUser).withParams("properties=id").withCoreAPI().usingMe().getNetwork(); + restClient.assertStatusCodeIs(HttpStatus.OK); + restNetworkModel.assertThat().field("id").is(adminTenantUser.getDomain().toLowerCase()); + // TODO add assert that entry has only 1 field + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify getNetwork request status code is 404 for a network to which user does not belong") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.FULL }) + public void verifyGetNetworkRequestStatusCodeIs404ForANetworkToWhichTheUserDoesNotBelong() throws Exception + { + restClient.authenticateUser(adminTenantUser).withCoreAPI().usingAuthUser().getNetwork(secondAdminTenantUser); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND); + } +} diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkForPersonSanityTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkForPersonSanityTests.java index 697954a56..908d7991f 100644 --- a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkForPersonSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkForPersonSanityTests.java @@ -1,6 +1,8 @@ package org.alfresco.rest.networks; import org.alfresco.rest.RestTest; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; import org.alfresco.utility.model.UserModel; import org.alfresco.utility.report.Bug; @@ -10,11 +12,19 @@ import org.springframework.http.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; +/** + * Tests for /people/{personId}/networks + */ public class RestGetNetworkForPersonSanityTests extends RestTest { - private UserModel adminUserModel; + UserModel adminUserModel; UserModel adminTenantUser; UserModel tenantUser; + UserModel tenantSiteManager; + UserModel tenantSiteCollaborator; + UserModel tenantSiteContributor; + UserModel tenantSiteConsumer; + SiteModel tenantSite; @BeforeClass(alwaysRun = true) public void dataPreparation() throws Exception @@ -24,51 +34,92 @@ public class RestGetNetworkForPersonSanityTests extends RestTest restClient.authenticateUser(adminUserModel); restClient.usingTenant().createTenant(adminTenantUser); tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + tenantSiteManager = dataUser.usingUser(adminTenantUser).createUserWithTenant("tenantSiteManager"); + tenantSiteCollaborator = dataUser.usingUser(adminTenantUser).createUserWithTenant("tenantSiteCollaborator"); + tenantSiteContributor = dataUser.usingUser(adminTenantUser).createUserWithTenant("tenantSiteContributor"); + tenantSiteConsumer = dataUser.usingUser(adminTenantUser).createUserWithTenant("tenantSiteConsumer"); + tenantSite = dataSite.usingUser(tenantSiteManager).createPublicRandomSite(); + dataUser.usingUser(tenantSiteManager).addUserToSite(tenantSiteCollaborator, tenantSite, UserRole.SiteCollaborator); + dataUser.usingUser(tenantSiteManager).addUserToSite(tenantSiteContributor, tenantSite, UserRole.SiteContributor); + dataUser.usingUser(tenantSiteManager).addUserToSite(tenantSiteConsumer, tenantSite, UserRole.SiteConsumer); } @Bug(id = "MNT-16904") @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, - description = "Verify non existing user gets another exisiting network with Rest API and checks the forbidden status") - @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS, TestGroup.SANITY }) + description = "Verify non existing user gets another existing network with Rest API and checks the forbidden status") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) public void nonExistingTenantUserIsNotAuthorizedToRequest() throws Exception { UserModel tenantUser = new UserModel("nonexisting", "password"); tenantUser.setDomain(adminTenantUser.getDomain()); - restClient.authenticateUser(tenantUser); - restClient.withCoreAPI().usingAuthUser().getNetwork(adminTenantUser); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().getNetwork(adminTenantUser); restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED); } @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify tenant admin user gets specific network with Rest API and response is not empty") - @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS,TestGroup.SANITY }) + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) public void adminTenantChecksIfNetworkIsPresent() throws Exception { - restClient.authenticateUser(adminTenantUser); - restClient.withCoreAPI().usingUser(adminTenantUser).getNetwork(); + restClient.authenticateUser(adminTenantUser).withCoreAPI().usingUser(adminTenantUser).getNetwork(); + restClient.assertStatusCodeIs(HttpStatus.OK); + } + + @Bug(id = "needs to be checked") + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, + description = "Verify tenant user check network of admin user with Rest API") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) + public void tenantUserIsNotAuthorizedToCheckNetworkOfAdminUser() throws Exception + { + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().getNetwork(adminTenantUser); restClient.assertStatusCodeIs(HttpStatus.OK); } - @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, - description = "Verify tenant user is not authorized to check network of admin user with Rest API and checks the forbidden status") - @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS, TestGroup.SANITY }) - public void tenantUserIsNotAuthorizedToCheckNetworkOfAdminUser() throws Exception - { - restClient.authenticateUser(tenantUser); - restClient.withCoreAPI().usingAuthUser().getNetwork(adminTenantUser); - restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND); - } - @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify admin tenant user is not authorized to check network of another user with Rest API and checks the forbidden status") - @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS, TestGroup.SANITY }) + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) public void adminTenantUserIsNotAuthorizedToCheckNetworkOfAnotherUser() throws Exception { UserModel secondAdminTenantUser = UserModel.getAdminTenantUser(); restClient.usingTenant().createTenant(secondAdminTenantUser); UserModel secondTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("anotherTenant"); - restClient.authenticateUser(adminTenantUser); - restClient.withCoreAPI().usingAuthUser().getNetwork(secondTenantUser); + restClient.authenticateUser(adminTenantUser).withCoreAPI().usingAuthUser().getNetwork(secondTenantUser); restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND); } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, + description = "Verify site manager user gets specific network with Rest API and response is not empty") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) + public void siteManagerChecksIfNetworkIsPresent() throws Exception + { + restClient.authenticateUser(tenantSiteManager).withCoreAPI().usingAuthUser().getNetwork(); + restClient.assertStatusCodeIs(HttpStatus.OK); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, + description = "Verify site collaborator user gets specific network with Rest API and response is not empty") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) + public void siteCollaboratorChecksIfNetworkIsPresent() throws Exception + { + restClient.authenticateUser(tenantSiteCollaborator).withCoreAPI().usingAuthUser().getNetwork(); + restClient.assertStatusCodeIs(HttpStatus.OK); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, + description = "Verify site contributor user gets specific network with Rest API and response is not empty") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) + public void siteContributorChecksIfNetworkIsPresent() throws Exception + { + restClient.authenticateUser(tenantSiteContributor).withCoreAPI().usingAuthUser().getNetwork(); + restClient.assertStatusCodeIs(HttpStatus.OK); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, + description = "Verify site consumer user gets specific network with Rest API and response is not empty") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) + public void siteConsumerChecksIfNetworkIsPresent() throws Exception + { + restClient.authenticateUser(tenantSiteConsumer).withCoreAPI().usingAuthUser().getNetwork(); + restClient.assertStatusCodeIs(HttpStatus.OK); + } } From 72a7cb4273a32c9fc94177c64f9b6c069087db7e Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Thu, 12 Jan 2017 18:19:38 +0200 Subject: [PATCH 54/65] added full tests for GetNetwork and additional methods --- .../networks/RestGetNetworkFullTests.java | 103 ++++++++++++++++++ .../networks/RestGetNetworkSanityTests.java | 14 +-- 2 files changed, 110 insertions(+), 7 deletions(-) create mode 100644 e2e-test/java/org/alfresco/rest/networks/RestGetNetworkFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkFullTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkFullTests.java new file mode 100644 index 000000000..a5f43081b --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkFullTests.java @@ -0,0 +1,103 @@ +package org.alfresco.rest.networks; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestNetworkModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.json.JSONException; +import org.json.JSONObject; +import org.springframework.http.HttpStatus; +import org.testng.Assert; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +/** + * + * @author Cristina Axinte + * + */ +public class RestGetNetworkFullTests extends RestTest +{ + UserModel adminTenantUser, adminuser; + UserModel adminAnotherTenantUser; + SiteModel site; + UserModel tenantUser; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminuser = dataUser.getAdminUser(); + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminuser); + restClient.usingTenant().createTenant(adminTenantUser); + + adminAnotherTenantUser = UserModel.getAdminTenantUser(); + restClient.usingTenant().createTenant(adminAnotherTenantUser); + + tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("userTenant1"); + site = dataSite.usingUser(adminTenantUser).createPublicRandomSite(); + } + + @Bug(id = "ACE-5738") + @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify tenant admin user gets an invalid network with Rest API and checks the not found status") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.FULL }) + public void adminTenantGetsInvalidNetwork() throws Exception + { + restClient.authenticateUser(adminAnotherTenantUser); + adminAnotherTenantUser.setDomain("tenant.@%"); + + restClient.withCoreAPI().usingNetworks().getNetwork(adminAnotherTenantUser); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY) + .containsSummary(String.format(RestErrorModel.UNEXPECTED_TENANT, adminTenantUser.getDomain(), "@")) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @Bug(id = "needs to be checked") + @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify admin user gets an existing network successfully with Rest API") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.FULL }) + public void adminUserGetsExistingNetwork() throws Exception + { + restClient.authenticateUser(adminuser); + RestNetworkModel restNetworkModel = restClient.withCoreAPI().usingNetworks().getNetwork(adminTenantUser); + restClient.assertStatusCodeIs(HttpStatus.OK); + restNetworkModel.assertThat().fieldsCount().is("1"); + restNetworkModel.assertThat().field("id").is(adminTenantUser.getDomain()) + .and().field("homeNetwork").isNull() + .and().field("isEnabled").is("true"); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify tenant admin user gets network using properties parameter successfully with Rest API") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.FULL }) + public void adminTenantGetsNetworkUsingPropertiesParameter() throws Exception + { + restClient.authenticateUser(tenantUser); + JSONObject entryResponse= restClient.withCoreAPI().usingNetworks().usingParams("properties=id").getNetworkWithParams(adminTenantUser); + restClient.assertStatusCodeIs(HttpStatus.OK); + Assert.assertTrue(entryResponse.get("id").equals(adminTenantUser.getDomain().toLowerCase())); + assertJsonResponseDoesnotContainField(entryResponse, "homeNetwork"); + assertJsonResponseDoesnotContainField(entryResponse, "isEnabled"); + } + + private void assertJsonResponseDoesnotContainField(JSONObject entryResponse, String field) + { + try{ + entryResponse.get(field); + } + catch(JSONException ex) + { + Assert.assertTrue(ex.getMessage().equals(String.format("JSONObject[\"%s\"] not found.", field))); + } + } + + +} diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkSanityTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkSanityTests.java index 27fe6119a..cf0cd9e96 100644 --- a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkSanityTests.java @@ -39,7 +39,7 @@ public class RestGetNetworkSanityTests extends RestTest @Bug(id = "MNT-16904") @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify non existing user gets another exisiting network with Rest API and checks the forbidden status") - @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS, TestGroup.SANITY}) + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY}) public void nonExistingTenantUserIsNotAuthorizedToRequest() throws Exception { UserModel tenantUser = new UserModel("nonexisting", "password"); @@ -51,7 +51,7 @@ public class RestGetNetworkSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify tenant admin user gets specific network with Rest API and response is not empty") - @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS, TestGroup.SANITY }) + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) public void adminTenantChecksIfNetworkIsPresent() throws Exception { restClient.authenticateUser(adminTenantUser); @@ -119,7 +119,7 @@ public class RestGetNetworkSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify any tenant user gets another existing network with Rest API and checks the forbidden status") - @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS, TestGroup.SANITY }) + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) public void userTenantChecksIfAnotherExistingNetworkIsForbidden() throws Exception { restClient.authenticateUser(tenantUser); @@ -129,7 +129,7 @@ public class RestGetNetworkSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify manager tenant user gets its network with Rest API and response is not empty") - @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS, TestGroup.SANITY }) + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) public void tenantManagerUserChecksIfNetworkIsPresent() throws Exception { UserModel managerTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("manTenant"); @@ -142,7 +142,7 @@ public class RestGetNetworkSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify collaborator tenant user gets its network with Rest API and response is not empty") - @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS, TestGroup.SANITY }) + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) public void tenantCollaboratorUserChecksIfNetworkIsPresent() throws Exception { UserModel collaboratorTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("colTenant"); @@ -155,7 +155,7 @@ public class RestGetNetworkSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify consumer tenant user gets its network with Rest API and response is not empty") - @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS, TestGroup.SANITY }) + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) public void tenantConsumerUserChecksIfNetworkIsPresent() throws Exception { UserModel consumerTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("consTenant"); @@ -168,7 +168,7 @@ public class RestGetNetworkSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify contributor tenant user gets its network with Rest API and response is not empty") - @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS, TestGroup.SANITY }) + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) public void tenantContributorUserChecksIfItsNetworkIsPresent() throws Exception { UserModel contributorTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("contTenant"); From ea4ad7e0c93a16b19111fe74ee6f194b0966914b Mon Sep 17 00:00:00 2001 From: Andrei Rusu Date: Fri, 13 Jan 2017 09:59:36 +0200 Subject: [PATCH 55/65] added deleteCommentFullTests updated deleteCommentCoreTests --- ...Tests.java => DeleteCommentCoreTests.java} | 2 +- .../rest/comments/DeleteCommentFullTests.java | 185 ++++++++++++++++++ ...sts.java => DeleteCommentSanityTests.java} | 14 +- 3 files changed, 199 insertions(+), 2 deletions(-) rename e2e-test/java/org/alfresco/rest/comments/{DeleteCommentsCoreTests.java => DeleteCommentCoreTests.java} (97%) create mode 100644 e2e-test/java/org/alfresco/rest/comments/DeleteCommentFullTests.java rename e2e-test/java/org/alfresco/rest/comments/{DeleteCommentsSanityTests.java => DeleteCommentSanityTests.java} (83%) diff --git a/e2e-test/java/org/alfresco/rest/comments/DeleteCommentsCoreTests.java b/e2e-test/java/org/alfresco/rest/comments/DeleteCommentCoreTests.java similarity index 97% rename from e2e-test/java/org/alfresco/rest/comments/DeleteCommentsCoreTests.java rename to e2e-test/java/org/alfresco/rest/comments/DeleteCommentCoreTests.java index 83e63ef7e..bcfb1850c 100644 --- a/e2e-test/java/org/alfresco/rest/comments/DeleteCommentsCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/DeleteCommentCoreTests.java @@ -17,7 +17,7 @@ import org.springframework.http.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -public class DeleteCommentsCoreTests extends RestTest +public class DeleteCommentCoreTests extends RestTest { private UserModel adminUserModel; diff --git a/e2e-test/java/org/alfresco/rest/comments/DeleteCommentFullTests.java b/e2e-test/java/org/alfresco/rest/comments/DeleteCommentFullTests.java new file mode 100644 index 000000000..61f0a4386 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/comments/DeleteCommentFullTests.java @@ -0,0 +1,185 @@ +package org.alfresco.rest.comments; + +import org.alfresco.dataprep.CMISUtil.DocumentType; +import org.alfresco.rest.RestTest; +import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestCommentModel; +import org.alfresco.rest.model.RestCommentModelsCollection; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.data.DataUser.ListUserWithRoles; +import org.alfresco.utility.model.FileModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class DeleteCommentFullTests extends RestTest +{ + private UserModel adminUserModel, networkUserModel; + private SiteModel siteModel; + private RestCommentModel commentModel; + private RestCommentModelsCollection comments; + private ListUserWithRoles usersWithRoles; + private String comment = "This is a new comment"; + + @BeforeClass(alwaysRun=true) + public void dataPreparation() throws Exception + { + adminUserModel = dataUser.getAdminUser(); + networkUserModel = dataUser.createRandomTestUser(); + restClient.authenticateUser(adminUserModel); + siteModel = dataSite.usingUser(adminUserModel).createPrivateRandomSite(); + usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel,UserRole.SiteManager, UserRole.SiteConsumer, + UserRole.SiteCollaborator, UserRole.SiteContributor); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.COMMENTS }, + executionType = ExecutionType.REGRESSION, description = "Verify Manager user deletes comment created by admin" + + " and status code is 204. Check with getComments for validation") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void managerIsAbleToDeleteCommentCreatedByOthers() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(adminUserModel) + .withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingResource(file).deleteComment(commentModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListDoesNotContain("content", comment); + comments.getPagination().assertThat().field("totalItems").is("0").and().field("count").is("0"); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.COMMENTS }, + executionType = ExecutionType.REGRESSION, description = "Verify Collaborator user can delete comment created by self" + + " and status code is 204. Check with getComments for validation") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void collaboratorIsAbleToDeleteCommentCreatedBySelf() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restClient.withCoreAPI().usingResource(file).deleteComment(commentModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListDoesNotContain("content", comment); + comments.getPagination().assertThat().field("totalItems").is("0").and().field("count").is("0"); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.COMMENTS }, + executionType = ExecutionType.REGRESSION, description = "Verify Contributor user deletes comment created by self" + + " and status code is 204. Check with getComments for validation") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + @Bug(id = "ACE-4614") + public void contributorIsAbleToDeleteCommentCreatedBySelf() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)) + .withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restClient.withCoreAPI().usingResource(file).deleteComment(commentModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListDoesNotContain("content", comment); + comments.getPagination().assertThat().field("totalItems").is("0").and().field("count").is("0"); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.COMMENTS }, + executionType = ExecutionType.REGRESSION, description = "Verify Consumer user cannot delete comment created by admin" + + " and status code is 403. Check with getComments for validation and check default error model schema.") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void consumerIsNotAbleToDeleteCommentCreatedByOthersDefaultErrorModelSchema() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).addComment(comment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)) + .withCoreAPI().usingResource(file).deleteComment(commentModel); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + restClient.assertLastError().getErrorKey().contains("PermissionDenied"); + restClient.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + restClient.assertLastError().getDescriptionURL().contains("https://api-explorer.alfresco.com"); + restClient.assertLastError().getStackTrace().contains("For security reasons the stack trace is no longer displayed"); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", comment); + comments.getPagination().assertThat().field("totalItems").is("1").and().field("count").is("1"); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.COMMENTS }, + executionType = ExecutionType.REGRESSION, description = "Verify Manager can delete comment with version number") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void usingManagerDeleteCommentWithVersionNumber() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + dataContent.usingAdmin().usingResource(file).updateContent("updated content to increase version number"); + + commentModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).addComment(comment); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingResource(file).deleteComment(commentModel); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.COMMENTS }, + executionType = ExecutionType.REGRESSION, description = "Verify Manager user cannot delete comment with invalid node " + + "and status code is 404. Check with getComments for validation") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void usingManagerDeleteCommentWithInvalidNode() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).addComment(comment); + file.setNodeRef("invalid"); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingResource(file).deleteComment(commentModel); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(file.getNodeRef() + " was not found"); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(file.getNodeRef() + " was not found"); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS }, executionType = ExecutionType.REGRESSION, + description = "Verify deleteComment from node with invalid network id returns status code 401") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.COMMENTS, TestGroup.FULL }) + public void deleteCommentWithInvalidNetworkId() throws Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).addComment(comment); + networkUserModel.setDomain("invalidNetwork"); + restClient.authenticateUser(networkUserModel).withCoreAPI().usingResource(file).deleteComment(commentModel); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.COMMENTS }, + executionType = ExecutionType.REGRESSION, description = "Verify deleteComment from node with empty network id returns status code 401") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void deleteCommentWithEmptyNetworkId() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).addComment(comment); + networkUserModel.setDomain(""); + restClient.authenticateUser(networkUserModel).withCoreAPI().usingResource(file).deleteComment(commentModel); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED); + } + +} diff --git a/e2e-test/java/org/alfresco/rest/comments/DeleteCommentsSanityTests.java b/e2e-test/java/org/alfresco/rest/comments/DeleteCommentSanityTests.java similarity index 83% rename from e2e-test/java/org/alfresco/rest/comments/DeleteCommentsSanityTests.java rename to e2e-test/java/org/alfresco/rest/comments/DeleteCommentSanityTests.java index 3d23be26d..32ac39335 100644 --- a/e2e-test/java/org/alfresco/rest/comments/DeleteCommentsSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/DeleteCommentSanityTests.java @@ -18,7 +18,7 @@ import org.springframework.http.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -public class DeleteCommentsSanityTests extends RestTest +public class DeleteCommentSanityTests extends RestTest { private UserModel adminUserModel; @@ -81,6 +81,18 @@ public class DeleteCommentsSanityTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); } + @TestRail(section = { TestGroup.REST_API, + TestGroup.COMMENTS }, executionType = ExecutionType.SANITY, description = "Verify Consumer user cannot delete comments and status code returned is 403") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.SANITY }) + public void consumerIsNotAbleToDeleteComments() throws JsonToModelConversionException, Exception + { + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)); + comment = restClient.withCoreAPI().usingResource(document).addComment("New comment added by Manager"); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)); + restClient.withCoreAPI().usingResource(document).deleteComment(comment); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } + @TestRail(section = { TestGroup.REST_API,TestGroup.COMMENTS }, executionType = ExecutionType.SANITY, description = "Verify User gets status code 401 if authentication call fails") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.SANITY }) @Bug(id="MNT-16904") From af567fc3cc939f8fc133e5750aca21c9e8a90e9e Mon Sep 17 00:00:00 2001 From: cagache Date: Fri, 13 Jan 2017 10:26:01 +0200 Subject: [PATCH 56/65] updated 2 scenarios --- .../rest/comments/DeleteCommentFullTests.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/comments/DeleteCommentFullTests.java b/e2e-test/java/org/alfresco/rest/comments/DeleteCommentFullTests.java index 61f0a4386..8386b5a39 100644 --- a/e2e-test/java/org/alfresco/rest/comments/DeleteCommentFullTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/DeleteCommentFullTests.java @@ -113,11 +113,11 @@ public class DeleteCommentFullTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.CREATED); restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)) .withCoreAPI().usingResource(file).deleteComment(commentModel); - restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); - restClient.assertLastError().getErrorKey().contains("PermissionDenied"); - restClient.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); - restClient.assertLastError().getDescriptionURL().contains("https://api-explorer.alfresco.com"); - restClient.assertLastError().getStackTrace().contains("For security reasons the stack trace is no longer displayed"); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED) + .statusCodeIs(HttpStatus.FORBIDDEN) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE) + .containsErrorKey(RestErrorModel.PERMISSION_DENIED_ERRORKEY); comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); restClient.assertStatusCodeIs(HttpStatus.OK); @@ -136,6 +136,7 @@ public class DeleteCommentFullTests extends RestTest commentModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).addComment(comment); restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) .withCoreAPI().usingResource(file).deleteComment(commentModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); } @TestRail(section = { TestGroup.REST_API,TestGroup.COMMENTS }, From ffbc345a2eab4ac4deaac2d4ab0dfb3f3d264751 Mon Sep 17 00:00:00 2001 From: mionescu Date: Fri, 13 Jan 2017 10:34:23 +0200 Subject: [PATCH 57/65] test- formatting --- .../people/DeleteFavoriteSiteCoreTests.java | 45 +++++++++++++------ .../people/DeleteFavoriteSiteSanityTests.java | 37 ++++++++------- 2 files changed, 50 insertions(+), 32 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteCoreTests.java b/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteCoreTests.java index 265a878e7..4081e1775 100644 --- a/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteCoreTests.java @@ -7,7 +7,6 @@ import org.alfresco.utility.constants.UserRole; import org.alfresco.utility.model.SiteModel; import org.alfresco.utility.model.TestGroup; import org.alfresco.utility.model.UserModel; -import org.alfresco.utility.report.Bug; import org.alfresco.utility.testrail.ExecutionType; import org.alfresco.utility.testrail.annotation.TestRail; import org.springframework.http.HttpStatus; @@ -48,8 +47,12 @@ public class DeleteFavoriteSiteCoreTests extends RestTest public void inexistentUserIsNotAbleToRemoveFavoriteSite() throws Exception { UserModel inexistentUser = new UserModel("inexistenUser", "password"); - restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(inexistentUser).removeFavoriteSite(siteModel); - restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "inexistenUser")); + restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(inexistentUser) + .removeFavoriteSite(siteModel); + + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) + .assertLastError() + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "inexistenUser")); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) @@ -58,7 +61,9 @@ public class DeleteFavoriteSiteCoreTests extends RestTest public void userIsNotAbleToRemoveFavoriteSiteWithInexistentId() throws Exception { SiteModel inexistentSite = new SiteModel("inexistentSite"); - restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).removeFavoriteSite(inexistentSite); + restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel) + .removeFavoriteSite(inexistentSite); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND) .assertLastError() .containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, @@ -77,7 +82,9 @@ public class DeleteFavoriteSiteCoreTests extends RestTest dataUser.usingUser(userModel).addUserToSite(managerUser, siteModel, UserRole.SiteManager); dataSite.usingUser(managerUser).usingSite(siteModel).addSiteToFavorites(); - restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel); + restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser() + .removeFavoriteSite(siteModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); restClient.withCoreAPI().usingUser(managerUser).addFavoriteSite(siteModel); restClient.assertStatusCodeIs(HttpStatus.CREATED); @@ -92,9 +99,12 @@ public class DeleteFavoriteSiteCoreTests extends RestTest dataUser.usingUser(userModel).addUserToSite(managerUser, siteModel, UserRole.SiteManager); dataSite.usingUser(managerUser).usingSite(siteModel).addSiteToFavorites(); - restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel); + restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser() + .removeFavoriteSite(siteModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); - restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("id", siteModel.getId()); + restClient.withCoreAPI().usingAuthUser().getFavorites() + .assertThat().entriesListDoesNotContain("id", siteModel.getId()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) @@ -105,9 +115,12 @@ public class DeleteFavoriteSiteCoreTests extends RestTest SiteModel publicSiteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); restClient.authenticateUser(userModel).withCoreAPI().usingUser(userModel).addFavoriteSite(publicSiteModel); - restClient.withCoreAPI().usingAuthUser().removeFavoriteSite(publicSiteModel); + restClient.withCoreAPI().usingAuthUser() + .removeFavoriteSite(publicSiteModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); - restClient.withCoreAPI().usingAuthUser().getFavoriteSites().assertThat().entriesListDoesNotContain("id", publicSiteModel.getId()); + restClient.withCoreAPI().usingAuthUser().getFavoriteSites() + .assertThat().entriesListDoesNotContain("id", publicSiteModel.getId()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) @@ -118,9 +131,12 @@ public class DeleteFavoriteSiteCoreTests extends RestTest SiteModel moderatedSiteModel = dataSite.usingUser(adminUserModel).createModeratedRandomSite(); restClient.authenticateUser(userModel).withCoreAPI().usingUser(userModel).addFavoriteSite(moderatedSiteModel); - restClient.withCoreAPI().usingAuthUser().removeFavoriteSite(moderatedSiteModel); + restClient.withCoreAPI().usingAuthUser() + .removeFavoriteSite(moderatedSiteModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); - restClient.withCoreAPI().usingAuthUser().getFavoriteSites().assertThat().entriesListDoesNotContain("id", moderatedSiteModel.getId()); + restClient.withCoreAPI().usingAuthUser().getFavoriteSites() + .assertThat().entriesListDoesNotContain("id", moderatedSiteModel.getId()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE }) @@ -131,9 +147,12 @@ public class DeleteFavoriteSiteCoreTests extends RestTest SiteModel privateSiteModel = dataSite.usingUser(userModel).createPrivateRandomSite(); restClient.authenticateUser(userModel).withCoreAPI().usingUser(userModel).addFavoriteSite(privateSiteModel); - restClient.withCoreAPI().usingAuthUser().removeFavoriteSite(privateSiteModel); + restClient.withCoreAPI().usingAuthUser() + .removeFavoriteSite(privateSiteModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); - restClient.withCoreAPI().usingAuthUser().getFavoriteSites().assertThat().entriesListDoesNotContain("id", privateSiteModel.getId()); + restClient.withCoreAPI().usingAuthUser().getFavoriteSites() + .assertThat().entriesListDoesNotContain("id", privateSiteModel.getId()); } } \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteSanityTests.java b/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteSanityTests.java index 2e91ed8e2..7eb61bbc8 100644 --- a/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/people/DeleteFavoriteSiteSanityTests.java @@ -68,12 +68,12 @@ public class DeleteFavoriteSiteSanityTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); restClient.withCoreAPI().usingAuthUser().getFavorites() - .assertThat() - .entriesListDoesNotContain("targetGuid", siteModel1.getGuid()) - .and().entriesListDoesNotContain("id", siteModel1.getId()) - .and().entriesListDoesNotContain("description", siteModel1.getDescription()) - .and().entriesListDoesNotContain("visibility", siteModel1.getVisibility().toString()) - .and().entriesListDoesNotContain("title", siteModel1.getTitle()); + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel1.getGuid()) + .and().entriesListDoesNotContain("id", siteModel1.getId()) + .and().entriesListDoesNotContain("description", siteModel1.getDescription()) + .and().entriesListDoesNotContain("visibility", siteModel1.getVisibility().toString()) + .and().entriesListDoesNotContain("title", siteModel1.getTitle()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) @@ -90,12 +90,12 @@ public class DeleteFavoriteSiteSanityTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); restClient.withCoreAPI().usingAuthUser().getFavorites() - .assertThat() - .entriesListDoesNotContain("targetGuid", siteModel1.getGuid()) - .and().entriesListDoesNotContain("id", siteModel1.getId()) - .and().entriesListDoesNotContain("description", siteModel1.getDescription()) - .and().entriesListDoesNotContain("visibility", siteModel1.getVisibility().toString()) - .and().entriesListDoesNotContain("title", siteModel1.getTitle()); + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel1.getGuid()) + .and().entriesListDoesNotContain("id", siteModel1.getId()) + .and().entriesListDoesNotContain("description", siteModel1.getDescription()) + .and().entriesListDoesNotContain("visibility", siteModel1.getVisibility().toString()) + .and().entriesListDoesNotContain("title", siteModel1.getTitle()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) @@ -112,12 +112,12 @@ public class DeleteFavoriteSiteSanityTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); restClient.withCoreAPI().usingAuthUser().getFavorites() - .assertThat() - .entriesListDoesNotContain("targetGuid", siteModel1.getGuid()) - .and().entriesListDoesNotContain("id", siteModel1.getId()) - .and().entriesListDoesNotContain("description", siteModel1.getDescription()) - .and().entriesListDoesNotContain("visibility", siteModel1.getVisibility().toString()) - .and().entriesListDoesNotContain("title", siteModel1.getTitle()); + .assertThat() + .entriesListDoesNotContain("targetGuid", siteModel1.getGuid()) + .and().entriesListDoesNotContain("id", siteModel1.getId()) + .and().entriesListDoesNotContain("description", siteModel1.getDescription()) + .and().entriesListDoesNotContain("visibility", siteModel1.getVisibility().toString()) + .and().entriesListDoesNotContain("title", siteModel1.getTitle()); } @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) @@ -156,7 +156,6 @@ public class DeleteFavoriteSiteSanityTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.SANITY }) @TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify manager user is NOT Authorized to remove a site from its favorite sites list with Rest API when authentication fails (401)") - @Bug(id = "MNT-16904") public void managerUserNotAuthorizedFailsToRemoveFavoriteSite() throws Exception { UserModel managerUser = dataUser.usingAdmin().createRandomTestUser(); From a2387c14e88558520cf5ceb0b3bc4c3b14cad3c2 Mon Sep 17 00:00:00 2001 From: Valentin Popa Date: Fri, 13 Jan 2017 10:53:45 +0200 Subject: [PATCH 58/65] Remove not needed groups --- .../RestGetNetworksForPersonSanityTests.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonSanityTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonSanityTests.java index d1d4bb596..4f46e7402 100644 --- a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonSanityTests.java @@ -35,7 +35,7 @@ public class RestGetNetworksForPersonSanityTests extends RestTest @Bug(id = "MNT-16904") @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify non existing user gets another exisiting network with Rest API and checks the unauthorized status") - @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) + @Test(groups = { TestGroup.REST_API, TestGroup.SANITY, TestGroup.NETWORKS }) public void nonExistingTenantUserIsNotAuthorizedToRequest() throws Exception { UserModel tenantUser = new UserModel("nonexisting", "password"); @@ -48,7 +48,7 @@ public class RestGetNetworksForPersonSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify tenant admin user gets specific network with Rest API and response is not empty") - @Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) + @Test(groups = {TestGroup.REST_API, TestGroup.SANITY, TestGroup.NETWORKS }) public void adminTenantChecksIfNetworkIsPresent() throws Exception { restClient.authenticateUser(adminTenantUser); @@ -58,7 +58,7 @@ public class RestGetNetworksForPersonSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify tenant user is not authorized to check network of admin user with Rest API and checks the forbidden status") - @Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) + @Test(groups = {TestGroup.REST_API, TestGroup.SANITY, TestGroup.NETWORKS }) public void tenantUserIsNotAuthorizedToCheckNetworkOfAdminUser() throws Exception { restClient.authenticateUser(tenantUser); @@ -68,7 +68,7 @@ public class RestGetNetworksForPersonSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify admin tenant user is not authorized to check network of another user with Rest API and checks the forbidden status") - @Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) + @Test(groups = {TestGroup.REST_API, TestGroup.SANITY, TestGroup.NETWORKS }) public void adminTenantUserIsNotAuthorizedToCheckNetworkOfAnotherUser() throws Exception { UserModel secondAdminTenantUser = UserModel.getAdminTenantUser(); @@ -81,7 +81,7 @@ public class RestGetNetworksForPersonSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify tenant manager user gets specific network with Rest API and response is not empty") - @Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) + @Test(groups = {TestGroup.REST_API, TestGroup.SANITY, TestGroup.NETWORKS }) public void managerTenantChecksIfNetworkIsPresent() throws Exception { UserModel managerTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("managerTenant"); @@ -95,7 +95,7 @@ public class RestGetNetworksForPersonSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify tenant collaborator user gets specific network with Rest API and response is not empty") - @Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) + @Test(groups = {TestGroup.REST_API, TestGroup.SANITY, TestGroup.NETWORKS }) public void collaboratorTenantChecksIfNetworkIsPresent() throws Exception { UserModel collaboratorTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("collaboratorTenant"); @@ -109,7 +109,7 @@ public class RestGetNetworksForPersonSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify tenant contributor user gets specific network with Rest API and response is not empty") - @Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) + @Test(groups = {TestGroup.REST_API, TestGroup.SANITY, TestGroup.NETWORKS }) public void contributorTenantChecksIfNetworkIsPresent() throws Exception { UserModel contributorTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("contributorTenant"); @@ -123,7 +123,7 @@ public class RestGetNetworksForPersonSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify tenant consumer user gets specific network with Rest API and response is not empty") - @Test(groups = {TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.SANITY, TestGroup.COMMENTS, TestGroup.NETWORKS }) + @Test(groups = {TestGroup.REST_API, TestGroup.SANITY, TestGroup.NETWORKS }) public void consumerTenantChecksIfNetworkIsPresent() throws Exception { UserModel consumerTenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("consumerTenant"); From 5f712553df7e039fa622f6c70f833320ddb320e3 Mon Sep 17 00:00:00 2001 From: Cristina Jalba Date: Fri, 13 Jan 2017 11:47:27 +0200 Subject: [PATCH 59/65] Add AddFavorites Core tests --- .../rest/favorites/AddFavoritesFullTests.java | 267 ++++++++++++++++++ .../rest/favorites/GetFavoritesFullTests.java | 4 +- 2 files changed, 269 insertions(+), 2 deletions(-) create mode 100644 e2e-test/java/org/alfresco/rest/favorites/AddFavoritesFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesFullTests.java b/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesFullTests.java new file mode 100644 index 000000000..4460b3370 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/favorites/AddFavoritesFullTests.java @@ -0,0 +1,267 @@ +package org.alfresco.rest.favorites; + +import org.alfresco.dataprep.CMISUtil.DocumentType; +import org.alfresco.rest.RestTest; +import org.alfresco.rest.core.RestRequest; +import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestFileModel; +import org.alfresco.rest.model.RestFolderModel; +import org.alfresco.rest.model.RestPersonFavoritesModel; +import org.alfresco.rest.model.RestSiteModel; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.data.DataUser.ListUserWithRoles; +import org.alfresco.utility.model.FileModel; +import org.alfresco.utility.model.FolderModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class AddFavoritesFullTests extends RestTest +{ + private UserModel adminUserModel; + private SiteModel siteModel; + private ListUserWithRoles usersWithRoles; + private RestPersonFavoritesModel restPersonFavoritesModel; + + FileModel document; + FolderModel folder; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUserModel = dataUser.getAdminUser(); + siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); + usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, + UserRole.SiteContributor); + + document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + folder = dataContent.usingSite(siteModel).usingUser(adminUserModel).createFolder(); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Add to favorites a file for a Collaborator, check it was added") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void collaboratorIsAbleToAddFileToFavorites() throws Exception + { + restPersonFavoritesModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingAuthUser().addFileToFavorites(document); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restPersonFavoritesModel.assertThat().field("targetGuid").is(document.getNodeRefWithoutVersion()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Add to favorites a file for a Contributor, check it was added") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void contributorIsAbleToAddFileToFavorites() throws Exception + { + restPersonFavoritesModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)) + .withCoreAPI().usingAuthUser().addFileToFavorites(document); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restPersonFavoritesModel.assertThat().field("targetGuid").is(document.getNodeRefWithoutVersion()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Add to favorites a file for a Consumer, check it was added") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void consumerIsAbleToAddFileToFavorites() throws Exception + { + restPersonFavoritesModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)) + .withCoreAPI().usingAuthUser().addFileToFavorites(document); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restPersonFavoritesModel.assertThat().field("targetGuid").is(document.getNodeRefWithoutVersion()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Add to favorites a folder for a Collaborator, check it was added") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void collaboratorIsAbleToAddFolderToFavorites() throws Exception + { + restPersonFavoritesModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).addFolderToFavorites(folder); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restPersonFavoritesModel.assertThat().field("targetGuid").is(folder.getNodeRefWithoutVersion()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Add to favorites a folder for a Contributor, check it was added") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void contributorIsAbleToAddFolderToFavorites() throws Exception + { + restPersonFavoritesModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)) + .withCoreAPI().usingAuthUser().addFolderToFavorites(folder); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restPersonFavoritesModel.assertThat().field("targetGuid").is(folder.getNodeRefWithoutVersion()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Add to favorites a folder for a Consumer, check it was added") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void consumerIsAbleToAddFolderToFavorites() throws Exception + { + restPersonFavoritesModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)) + .withCoreAPI().usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).addFolderToFavorites(folder); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restPersonFavoritesModel.assertThat().field("targetGuid").is(folder.getNodeRefWithoutVersion()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Add to favorites a site for a Collaborator, check it was added") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void collaboratorIsAbleToAddSiteToFavorites() throws Exception + { + restPersonFavoritesModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restPersonFavoritesModel.assertThat().field("targetGuid").is(siteModel.getGuid()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Add to favorites a site for a Contributor, check it was added") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void contributorIsAbleToAddSiteToFavorites() throws Exception + { + restPersonFavoritesModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)) + .withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restPersonFavoritesModel.assertThat().field("targetGuid").is(siteModel.getGuid()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Add to favorites a site for a Consumer, check it was added") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void consumerIsAbleToAddSiteToFavorites() throws Exception + { + restPersonFavoritesModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)) + .withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restPersonFavoritesModel.assertThat().field("targetGuid").is(siteModel.getGuid()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Check that if user provides file in target but guid is of a site status code is 404") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void addSiteToFavoritesUsingFolderId() throws Exception + { + SiteModel newSiteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite(); + newSiteModel.setGuid(folder.getNodeRef()); + + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addSiteToFavorites(newSiteModel); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, folder.getNodeRef())); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Check that if user provides folder in target but guid is of a site status code is 404") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void addFolderToFavoritesUsingSiteId() throws Exception + { + FolderModel newFolder = dataContent.usingSite(siteModel).usingUser(adminUserModel).createFolder(); + newFolder.setNodeRef(siteModel.getGuid()); + + restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addFolderToFavorites(newFolder); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, + adminUserModel.getUsername(), siteModel.getGuid())); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify the response of favorite a site call is valid") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void verifyFavoriteASiteResponseIsValid() throws Exception + { + restPersonFavoritesModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restPersonFavoritesModel.assertThat().field("targetGuid").is(siteModel.getGuid()); + + RestSiteModel restSiteModel = restPersonFavoritesModel.getTarget().getSite(); + restSiteModel.assertThat().field("visibility").is(siteModel.getVisibility()).and() + .field("guid").is(siteModel.getGuid()).and() + .field("description").is(siteModel.getDescription()).and() + .field("id").is(siteModel.getId()).and() + .field("title").is(siteModel.getTitle()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify the response of favorite a file call is valid") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void verifyFavoriteAFileResponseIsValid() throws Exception + { + restPersonFavoritesModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingAuthUser().addFileToFavorites(document); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restPersonFavoritesModel.assertThat().field("targetGuid").is(document.getNodeRefWithoutVersion()); + + RestFileModel restFileModel = restPersonFavoritesModel.getTarget().getFile(); + restFileModel.assertThat().field("mimeType").is("text/plain").and() + .field("isFile").is("true").and() + .field("isFolder").is("false").and() + .field("createdBy").is(adminUserModel.getUsername()); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify the response of favorite a folder call is valid") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void verifyFavoriteAFolderResponseIsValid() throws Exception + { + restPersonFavoritesModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingAuthUser().addFolderToFavorites(folder); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + restPersonFavoritesModel.assertThat().field("targetGuid").is(folder.getNodeRef()); + + RestFolderModel restFolderModel = restPersonFavoritesModel.getTarget().getFolder(); + restFolderModel.assertThat().field("isFile").is("false").and() + .field("isFolder").is("true").and() + .field("createdBy").is(adminUserModel.getUsername()); + } + + @Bug(id = "REPO-1061") + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Check that if user does not have permission to favorite a site status code is 404") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void verifyFavoriteASiteIfTheUserDoesNotHavePermission() throws Exception + { + SiteModel privateSite = dataSite.usingUser(adminUserModel).createPrivateRandomSite(); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingAuthUser().addSiteToFavorites(privateSite); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, privateSite.getGuid())) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .containsErrorKey(RestErrorModel.NOT_FOUND_ERRORKEY) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @Bug(id = "MNT-16904") + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify the post favorites request when network id is invalid for tenant user") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL, TestGroup.NETWORKS}) + public void addFavoriteSitesWhenNetworkIdIsInvalid() throws JsonToModelConversionException, Exception + { + UserModel adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUserModel); + restClient.usingTenant().createTenant(adminTenantUser); + UserModel tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + + tenantUser.setDomain("invalidNetwork"); + restClient.authenticateUser(tenantUser).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED) + .assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify the response of favorite a sie with empty body at request") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void verifyFavoriteASiteWithEmptyBody() throws Exception + { + restClient.authenticateUser(adminUserModel).withCoreAPI(); + RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "", "people/{personId}/favorites", adminUserModel.getUsername()); + restClient.processModel(RestPersonFavoritesModel.class, request); + restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError() + .containsSummary(String.format(RestErrorModel.NO_CONTENT, "No content to map to Object due to end of input"));; + } +} diff --git a/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesFullTests.java b/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesFullTests.java index 382cbed41..9d553dcc1 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesFullTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/GetFavoritesFullTests.java @@ -85,7 +85,7 @@ public class GetFavoritesFullTests extends RestTest } @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, - description = "Verify get favorites when using invalid network id") + description = "Verify get favorites when using invalid network id for non-tenant user") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) public void getFavoritesWhenNetworkIdIsInvalid() throws Exception { @@ -171,7 +171,7 @@ public class GetFavoritesFullTests extends RestTest @Bug(id = "MNT-16904") @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, - description = "Verify the get favorites request when network id is invalid") + description = "Verify the get favorites request when network id is invalid for tenant user") @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL, TestGroup.NETWORKS}) public void getFavoriteSitesWhenNetworkIdIsInvalid() throws JsonToModelConversionException, Exception { From 0b93d0b94700103bc5acff4dd39386e4b146349a Mon Sep 17 00:00:00 2001 From: Andrei Rusu Date: Fri, 13 Jan 2017 11:49:20 +0200 Subject: [PATCH 60/65] UpdateCommentFullTests added --- .../{UpdateCommentsCoreTests.java => UpdateCommentCoreTests.java} | 0 ...dateCommentsSanityTests.java => UpdateCommentSanityTests.java} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename e2e-test/java/org/alfresco/rest/comments/{UpdateCommentsCoreTests.java => UpdateCommentCoreTests.java} (100%) rename e2e-test/java/org/alfresco/rest/comments/{UpdateCommentsSanityTests.java => UpdateCommentSanityTests.java} (100%) diff --git a/e2e-test/java/org/alfresco/rest/comments/UpdateCommentsCoreTests.java b/e2e-test/java/org/alfresco/rest/comments/UpdateCommentCoreTests.java similarity index 100% rename from e2e-test/java/org/alfresco/rest/comments/UpdateCommentsCoreTests.java rename to e2e-test/java/org/alfresco/rest/comments/UpdateCommentCoreTests.java diff --git a/e2e-test/java/org/alfresco/rest/comments/UpdateCommentsSanityTests.java b/e2e-test/java/org/alfresco/rest/comments/UpdateCommentSanityTests.java similarity index 100% rename from e2e-test/java/org/alfresco/rest/comments/UpdateCommentsSanityTests.java rename to e2e-test/java/org/alfresco/rest/comments/UpdateCommentSanityTests.java From 247af74991e6a3e1a347a5253c05882a04ad715a Mon Sep 17 00:00:00 2001 From: Cristina Axinte Date: Fri, 13 Jan 2017 11:51:30 +0200 Subject: [PATCH 61/65] move one core test from full class of tests and added new bug to a test --- .../networks/RestGetNetworkCoreTests.java | 41 +++++++++++++++++++ .../networks/RestGetNetworkFullTests.java | 8 ++-- .../networks/RestGetNetworkSanityTests.java | 10 ----- 3 files changed, 44 insertions(+), 15 deletions(-) create mode 100644 e2e-test/java/org/alfresco/rest/networks/RestGetNetworkCoreTests.java diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkCoreTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkCoreTests.java new file mode 100644 index 000000000..cdb116035 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkCoreTests.java @@ -0,0 +1,41 @@ +package org.alfresco.rest.networks; + +import org.alfresco.rest.RestTest; +import org.alfresco.utility.model.TestGroup; +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.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +/** + * + * @author Cristina Axinte + * + */ +public class RestGetNetworkCoreTests extends RestTest +{ + UserModel adminTenantUser; + UserModel tenantUser; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + UserModel adminuser = dataUser.getAdminUser(); + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminuser); + restClient.usingTenant().createTenant(adminTenantUser); + tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant"); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Verify tenant admin user gets non existing network with Rest API and checks the not found status") + @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.CORE }) + public void adminTenantChecksIfNonExistingNetworkIsNotFound() throws Exception + { + restClient.authenticateUser(adminTenantUser); + restClient.withCoreAPI().usingNetworks().getNetwork(UserModel.getRandomTenantUser()); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND); + } +} diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkFullTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkFullTests.java index a5f43081b..4b39e7d72 100644 --- a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkFullTests.java +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkFullTests.java @@ -60,14 +60,13 @@ public class RestGetNetworkFullTests extends RestTest .stackTraceIs(RestErrorModel.STACKTRACE); } - @Bug(id = "needs to be checked") + @Bug(id = "ACE-5745") @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, description = "Verify admin user gets an existing network successfully with Rest API") @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.FULL }) public void adminUserGetsExistingNetwork() throws Exception { - restClient.authenticateUser(adminuser); - RestNetworkModel restNetworkModel = restClient.withCoreAPI().usingNetworks().getNetwork(adminTenantUser); + RestNetworkModel restNetworkModel = restClient.authenticateUser(adminuser).withCoreAPI().usingNetworks().getNetwork(adminTenantUser); restClient.assertStatusCodeIs(HttpStatus.OK); restNetworkModel.assertThat().fieldsCount().is("1"); restNetworkModel.assertThat().field("id").is(adminTenantUser.getDomain()) @@ -80,8 +79,7 @@ public class RestGetNetworkFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.FULL }) public void adminTenantGetsNetworkUsingPropertiesParameter() throws Exception { - restClient.authenticateUser(tenantUser); - JSONObject entryResponse= restClient.withCoreAPI().usingNetworks().usingParams("properties=id").getNetworkWithParams(adminTenantUser); + JSONObject entryResponse= restClient.authenticateUser(tenantUser).withCoreAPI().usingNetworks().usingParams("properties=id").getNetworkWithParams(adminTenantUser); restClient.assertStatusCodeIs(HttpStatus.OK); Assert.assertTrue(entryResponse.get("id").equals(adminTenantUser.getDomain().toLowerCase())); assertJsonResponseDoesnotContainField(entryResponse, "homeNetwork"); diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkSanityTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkSanityTests.java index cf0cd9e96..a56e2cc0b 100644 --- a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworkSanityTests.java @@ -68,16 +68,6 @@ public class RestGetNetworkSanityTests extends RestTest restClient.withCoreAPI().usingNetworks().getNetwork().assertNetworkHasName(adminTenantUser).assertNetworkIsEnabled(); } - @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, - description = "Verify tenant admin user gets non existing network with Rest API and checks the not found status") - @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) - public void adminTenantChecksIfNonExistingNetworkIsNotFound() throws Exception - { - restClient.authenticateUser(adminTenantUser); - restClient.withCoreAPI().usingNetworks().getNetwork(UserModel.getRandomTenantUser()); - restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND); - } - @TestRail(section = { TestGroup.REST_API, TestGroup.NETWORKS }, executionType = ExecutionType.SANITY, description = "Verify tenant admin user gets another existing network with Rest API and checks the forbidden status") @Test(groups = { TestGroup.REST_API, TestGroup.NETWORKS, TestGroup.SANITY }) From be621f655d75b8f888f3830e68d0c9128af65e4b Mon Sep 17 00:00:00 2001 From: Andrei Rusu Date: Fri, 13 Jan 2017 11:52:16 +0200 Subject: [PATCH 62/65] updateCommentFullTests --- .../rest/comments/UpdateCommentCoreTests.java | 15 +- .../rest/comments/UpdateCommentFullTests.java | 286 ++++++++++++++++++ .../comments/UpdateCommentSanityTests.java | 4 +- 3 files changed, 296 insertions(+), 9 deletions(-) create mode 100644 e2e-test/java/org/alfresco/rest/comments/UpdateCommentFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/comments/UpdateCommentCoreTests.java b/e2e-test/java/org/alfresco/rest/comments/UpdateCommentCoreTests.java index 43ed657fb..1625945e8 100644 --- a/e2e-test/java/org/alfresco/rest/comments/UpdateCommentCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/UpdateCommentCoreTests.java @@ -21,7 +21,7 @@ import org.springframework.http.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -public class UpdateCommentsCoreTests extends RestTest +public class UpdateCommentCoreTests extends RestTest { private UserModel adminUserModel; private FileModel document; @@ -74,21 +74,22 @@ public class UpdateCommentsCoreTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.COMMENTS }, executionType = ExecutionType.REGRESSION, description = "Verify updated comment by Manager is listed when calling getComments and status code is 200") - @Bug(id="REPO-1011") +// @Bug(id="REPO-1011") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) public void updatedCommentByManagerIsListed() throws JsonToModelConversionException, Exception { - restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)); - commentModel = restClient.withCoreAPI().usingResource(document).addComment("This is a new comment added by collaborator"); - restClient.withCoreAPI().usingResource(document).updateComment(commentModel, "This is the updated comment with Collaborator user"); + commentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingResource(document).addComment("This is a new comment added by collaborator"); + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI() + .usingResource(document).updateComment(commentModel, "This is the updated comment with Manager user"); comments = restClient.withCoreAPI().usingResource(document).getNodeComments(); restClient.assertStatusCodeIs(HttpStatus.OK); - comments.assertThat().entriesListContains("content", "This is the updated comment with Collaborator user"); + comments.assertThat().entriesListContains("content", "This is the updated comment with Manager user"); } @TestRail(section = { TestGroup.REST_API, TestGroup.COMMENTS }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator user can not update comments of another user and status code is 200") - @Bug(id="MNT-2502",description="seems it's one old issue: also logged as MNT-2502, MNT-2346") +// @Bug(id="MNT-2502",description="seems it's one old issue: also logged as MNT-2502, MNT-2346") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.CORE }) public void collaboratorIsNotAbleToUpdateCommentOfAnotherUser() throws JsonToModelConversionException, Exception { diff --git a/e2e-test/java/org/alfresco/rest/comments/UpdateCommentFullTests.java b/e2e-test/java/org/alfresco/rest/comments/UpdateCommentFullTests.java new file mode 100644 index 000000000..aa1b74dad --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/comments/UpdateCommentFullTests.java @@ -0,0 +1,286 @@ +package org.alfresco.rest.comments; + +import org.alfresco.dataprep.CMISUtil; +import org.alfresco.dataprep.CMISUtil.DocumentType; +import org.alfresco.rest.RestTest; +import org.alfresco.rest.exception.JsonToModelConversionException; +import org.alfresco.rest.model.RestCommentModel; +import org.alfresco.rest.model.RestCommentModelsCollection; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.utility.constants.UserRole; +import org.alfresco.utility.data.DataUser; +import org.alfresco.utility.model.FileModel; +import org.alfresco.utility.model.SiteModel; +import org.alfresco.utility.model.TestGroup; +import org.alfresco.utility.model.UserModel; +import org.alfresco.utility.report.Bug; +import org.alfresco.utility.testrail.ExecutionType; +import org.alfresco.utility.testrail.annotation.TestRail; +import org.apache.commons.lang.RandomStringUtils; +import org.springframework.http.HttpStatus; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class UpdateCommentFullTests extends RestTest +{ + private UserModel adminUserModel, networkUserModel; + private SiteModel siteModel; + private RestCommentModel commentModel, returnedCommentModel; + private RestCommentModelsCollection comments; + private DataUser.ListUserWithRoles usersWithRoles; + private String firstComment = "This is a new comment"; + private String updatedComment = "This is the updated comment"; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUserModel = dataUser.getAdminUser(); + networkUserModel = dataUser.createRandomTestUser(); + restClient.authenticateUser(adminUserModel); + siteModel = dataSite.usingUser(adminUserModel).createPrivateRandomSite(); + usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, + UserRole.SiteConsumer, UserRole.SiteContributor); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL}, executionType= ExecutionType.REGRESSION, + description= "Verify Manager user can update a comment with a large string") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void managerIsAbleToUpdateACommentWithALargeString() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + String longString = RandomStringUtils.randomAlphanumeric(10000); + + commentModel = restClient.authenticateUser(adminUserModel) + .withCoreAPI().usingResource(file).addComment(firstComment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + returnedCommentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingResource(file).updateComment(commentModel, longString); + restClient.assertStatusCodeIs(HttpStatus.OK); + returnedCommentModel.assertThat().field("content").is(longString); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL}, executionType= ExecutionType.REGRESSION, + description= "Verify Manager user can update a comment with a short string") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void managerIsAbleToUpdateACommentWithAShortString() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + String shortString = RandomStringUtils.randomAlphanumeric(2); + + commentModel = restClient.authenticateUser(adminUserModel) + .withCoreAPI().usingResource(file).addComment(firstComment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + returnedCommentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingResource(file).updateComment(commentModel, shortString); + restClient.assertStatusCodeIs(HttpStatus.OK); + returnedCommentModel.assertThat().field("content").is(shortString); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL}, executionType= ExecutionType.REGRESSION, + description= "Verify Collaborator user can update a comment with special characters") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void collaboratorIsAbleToUpdateACommentThatContainsSpecialChars() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + String specialChars = "!@#$%^&*()'\".,<>-_+=|\\"; + + commentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingResource(file).addComment(firstComment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + returnedCommentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingResource(file).updateComment(commentModel, specialChars); + restClient.assertStatusCodeIs(HttpStatus.OK); + returnedCommentModel.assertThat().field("content").is(specialChars); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL}, executionType= ExecutionType.REGRESSION, + description= "Check that you cannot update comment with Consumer then call getComments and check new comment is not listed") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void cannotUpdateCommentWithConsumerCallGetComments() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingResource(file).addComment(firstComment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingResource(file).updateComment(commentModel, updatedComment); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", firstComment) + .and().entriesListDoesNotContain("content", updatedComment) + .and().paginationField("totalItems").is("1"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL}, executionType= ExecutionType.REGRESSION, + description= "Update comment with Contributor then call getComments and check new comment is listed") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + @Bug(id = "ACE-4614") + public void updateCommentWithContributorCallGetComments() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)) + .withCoreAPI().usingResource(file).addComment(firstComment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingResource(file).updateComment(commentModel, updatedComment); + restClient.assertStatusCodeIs(HttpStatus.OK); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", updatedComment) + .and().entriesListDoesNotContain("content", firstComment) + .and().paginationField("totalItems").is("1"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL}, executionType= ExecutionType.REGRESSION, + description= "Update comment with Collaborator then call getComments and check new comment is listed") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void updateCommentWithCollaboratorCallGetComments() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingResource(file).addComment(firstComment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingResource(file).updateComment(commentModel, updatedComment); + restClient.assertStatusCodeIs(HttpStatus.OK); + + comments = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).getNodeComments(); + restClient.assertStatusCodeIs(HttpStatus.OK); + comments.assertThat().entriesListContains("content", updatedComment) + .and().entriesListDoesNotContain("content", firstComment) + .and().paginationField("totalItems").is("1"); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL}, executionType= ExecutionType.REGRESSION, + description= "Update comment with Manager then check modified by information in response") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void updateCommentWithManagerCheckModifiedBy() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + UserModel manager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager); + + commentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)) + .withCoreAPI().usingResource(file).addComment(firstComment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + returnedCommentModel = restClient.authenticateUser(manager).withCoreAPI().usingResource(file).updateComment(commentModel, updatedComment); + restClient.assertStatusCodeIs(HttpStatus.OK); + returnedCommentModel.assertThat().field("modifiedBy.id").is(manager.getUsername()) + .and().field("content").is(updatedComment); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL}, executionType= ExecutionType.REGRESSION, + description= "Delete comment with Admin then try to update it") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void deleteCommentThenTryToUpdateIt() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(adminUserModel) + .withCoreAPI().usingResource(file).addComment(firstComment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + restClient.withCoreAPI().usingResource(file).deleteComment(commentModel); + restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT); + + restClient.withCoreAPI().usingResource(file).updateComment(commentModel, updatedComment); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL}, executionType= ExecutionType.REGRESSION, + description= "Verify Manager user can update a comment with multi byte content") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void managerIsAbleToUpdateACommentWithMultiByteContent() throws JsonToModelConversionException, Exception + { + //TODO update comment with multi-byte content - verify + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + String multiByte = "\ufeff\u6768\u6728\u91d1"; + + commentModel = restClient.authenticateUser(adminUserModel) + .withCoreAPI().usingResource(file).addComment(firstComment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + returnedCommentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingResource(file).updateComment(commentModel, multiByte); + restClient.assertStatusCodeIs(HttpStatus.OK); + returnedCommentModel.assertThat().field("content").is(multiByte); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL}, executionType= ExecutionType.REGRESSION, + description= "Verify Admin user can update a comment with properties parameter") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void adminIsAbleToUpdateACommentWithPropertiesParameter() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(adminUserModel) + .withCoreAPI().usingResource(file).addComment(firstComment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + UserModel manager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager); + + returnedCommentModel = restClient.authenticateUser(manager) + .withParams("properties=createdBy,modifiedBy,canEdit,canDelete").withCoreAPI().usingResource(file).updateComment(commentModel, updatedComment); + restClient.assertStatusCodeIs(HttpStatus.OK); + returnedCommentModel.assertThat().field("createdBy.id").is(adminUserModel.getUsername()) + .assertThat().field("modifiedBy.id").is(manager.getUsername()) + .assertThat().fieldsCount().is(4); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.FULL }, executionType = ExecutionType.REGRESSION, + description = "Update comment with invalid node") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void updateCommentUsingInvalidNodeId() throws JsonToModelConversionException, Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(CMISUtil.DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(adminUserModel) + .withCoreAPI().usingResource(file).addComment(firstComment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + file.setNodeRef(RandomStringUtils.randomAlphanumeric(20)); + restClient.withCoreAPI().usingResource(file).updateComment(commentModel, updatedComment); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, file.getNodeRef())); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Verify update comment from node with invalid network id returns status code 401") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void updateCommentWithInvalidNetworkId() throws Exception + { + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(adminUserModel).withCoreAPI().usingResource(file).addComment(firstComment); + networkUserModel.setDomain("invalidNetwork"); + restClient.authenticateUser(networkUserModel).withCoreAPI().usingResource(file).updateComment(commentModel, updatedComment); + restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED); + } + + @TestRail(section={TestGroup.REST_API, TestGroup.FULL, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION, + description= "Verify User can not update comment to a not joined private site. Status code returned is 403") + @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) + public void userCanNotUpdateCommentToANotJoinedPrivateSiteDefaultErrorModelSchema() throws Exception + { + UserModel newUser = dataUser.createRandomTestUser(); + FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(CMISUtil.DocumentType.TEXT_PLAIN); + + commentModel = restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)) + .withCoreAPI().usingResource(file).addComment(firstComment); + restClient.assertStatusCodeIs(HttpStatus.CREATED); + + restClient.authenticateUser(newUser).withCoreAPI().usingResource(file).updateComment(commentModel, updatedComment); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + restClient.assertLastError().getErrorKey().contains(RestErrorModel.PERMISSION_DENIED_ERRORKEY); + restClient.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + restClient.assertLastError().getDescriptionURL().contains("https://api-explorer.alfresco.com"); + restClient.assertLastError().getStackTrace().contains("For security reasons the stack trace is no longer displayed"); + } +} \ No newline at end of file diff --git a/e2e-test/java/org/alfresco/rest/comments/UpdateCommentSanityTests.java b/e2e-test/java/org/alfresco/rest/comments/UpdateCommentSanityTests.java index 05badefac..87756ff4e 100644 --- a/e2e-test/java/org/alfresco/rest/comments/UpdateCommentSanityTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/UpdateCommentSanityTests.java @@ -19,7 +19,7 @@ import org.springframework.http.HttpStatus; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -public class UpdateCommentsSanityTests extends RestTest +public class UpdateCommentSanityTests extends RestTest { private UserModel adminUserModel; private FileModel document; @@ -93,7 +93,7 @@ public class UpdateCommentsSanityTests extends RestTest @TestRail(section = { TestGroup.REST_API, TestGroup.COMMENTS }, executionType = ExecutionType.SANITY, description = "Verify Collaborator user can update his own comment and status code is 200") - @Bug(id="REPO-1011") +// @Bug(id="REPO-1011") @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.SANITY }) public void collaboratorIsAbleToUpdateHisComment() throws JsonToModelConversionException, Exception { From 6268a04db0123d2f001989b56ad8d3c562d09891 Mon Sep 17 00:00:00 2001 From: "NESS\\P3700299" Date: Fri, 13 Jan 2017 12:08:13 +0200 Subject: [PATCH 63/65] added 3 tests to full --- .../rest/favorites/GetFavoriteFullTests.java | 82 ++++++++++++++++++- 1 file changed, 79 insertions(+), 3 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteFullTests.java b/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteFullTests.java index 6d9d2d43c..c7c68feba 100644 --- a/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteFullTests.java +++ b/e2e-test/java/org/alfresco/rest/favorites/GetFavoriteFullTests.java @@ -16,6 +16,7 @@ import org.alfresco.utility.report.Bug; 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; @@ -121,11 +122,86 @@ public class GetFavoriteFullTests extends RestTest { { UserModel collaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator); restClient.authenticateUser(collaborator); - restClient.withCoreAPI().usingUser(collaborator).addSiteToFavorites(siteModel); + restClient.withCoreAPI().usingUser(collaborator).addFileToFavorites(fileModel); - RestPersonFavoritesModel favoriteSite = restClient.authenticateUser(collaborator).withParams("properties=tas") + RestPersonFavoritesModel favoriteFile = restClient.authenticateUser(collaborator).withParams("properties=tas") .withCoreAPI().usingAuthUser().getFavorite(fileModel.getNodeRefWithoutVersion()); restClient.assertStatusCodeIs(HttpStatus.OK); - favoriteSite.assertThat().fieldsCount().is(0); + favoriteFile.assertThat().fieldsCount().is(0); + } + + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify all values from get favorite rest api for a file") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void verifyRequestFieldsforGetFavoriteFile() throws JsonToModelConversionException, Exception + { + UserModel contributor = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor); + restClient.authenticateUser(contributor); + restClient.withCoreAPI().usingUser(contributor).addFileToFavorites(fileModel); + + RestPersonFavoritesModel favoriteFile = restClient.authenticateUser(contributor) + .withCoreAPI().usingAuthUser().getFavorite(fileModel.getNodeRefWithoutVersion()); + restClient.assertStatusCodeIs(HttpStatus.OK); + + favoriteFile.assertThat().field("targetGuid").is(fileModel.getNodeRefWithoutVersion()) + .and().field("target.file.isFile").is("true") + .and().field("target.file.mimeType").is("text/plain") + .and().field("target.file.isFolder").is("false") + .and().field("target.file.createdBy").is(adminUserModel.getUsername()) + .and().field("target.file.versionLabel").is("1.0") + .and().field("target.file.name").is(fileModel.getName()) + .and().field("target.file.parentId").is(folderModel.getNodeRef()) + .and().field("target.file.guid").is(fileModel.getNodeRefWithoutVersion()) + .and().field("target.file.modifiedBy").is(adminUserModel.getUsername()) + .and().field("target.file.id").is(fileModel.getNodeRefWithoutVersion()); + } + + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify all values from get favorite rest api for a site") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void verifyRequestFieldsforGetFavoriteSite() throws JsonToModelConversionException, Exception + { + UserModel contributor = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor); + restClient.authenticateUser(contributor); + restClient.withCoreAPI().usingUser(contributor).addFavoriteSite(siteModel); + + RestPersonFavoritesModel favoriteSite = restClient.authenticateUser(contributor) + .withCoreAPI().usingAuthUser().getFavorite(siteModel.getGuid()); + restClient.assertStatusCodeIs(HttpStatus.OK); + + favoriteSite.assertThat().field("targetGuid").is(siteModel.getGuid()) + .and().field("target.site.role").is(UserRole.SiteContributor.toString()) + .and().field("target.site.visibility").is(Site.Visibility.PUBLIC.toString()) + .and().field("target.site.guid").is(siteModel.getGuid()) + .and().field("target.site.description").is(siteModel.getDescription()) + .and().field("target.site.id").is(siteModel.getId()) + .and().field("target.site.preset").is("site-dashboard") + .and().field("target.site.title").is(siteModel.getTitle()); + } + + + @TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, + description = "Verify all values from get favorite rest api for a folder") + @Test(groups = { TestGroup.REST_API, TestGroup.FAVORITES, TestGroup.FULL }) + public void verifyRequestFieldsforGetFavoriteFolder() throws JsonToModelConversionException, Exception + { + UserModel contributor = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor); + restClient.authenticateUser(contributor); + restClient.withCoreAPI().usingUser(contributor).addFolderToFavorites(folderModel); + + RestPersonFavoritesModel favoriteFolder = restClient.authenticateUser(contributor) + .withCoreAPI().usingAuthUser().getFavorite(folderModel.getNodeRef()); + restClient.assertStatusCodeIs(HttpStatus.OK); + + favoriteFolder.assertThat().field("targetGuid").is(folderModel.getNodeRef()) + .and().field("target.folder.isFile").is("false") + .and().field("target.folder.isFolder").is("true") + .and().field("target.folder.createdBy").is(adminUserModel.getUsername()) + .and().field("target.folder.name").is(folderModel.getName()) + .and().field("target.folder.guid").is(folderModel.getNodeRef()) + .and().field("target.folder.modifiedBy").is(adminUserModel.getUsername()) + .and().field("target.folder.id").is(folderModel.getNodeRef()); } } \ No newline at end of file From f646552458d081f412d25fbd02c30a0afb3af1da Mon Sep 17 00:00:00 2001 From: Valentin Popa Date: Fri, 13 Jan 2017 12:29:57 +0200 Subject: [PATCH 64/65] Added full tests for networks membership --- .../RestGetNetworksForPersonFullTests.java | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonFullTests.java diff --git a/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonFullTests.java b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonFullTests.java new file mode 100644 index 000000000..6a4232416 --- /dev/null +++ b/e2e-test/java/org/alfresco/rest/networks/RestGetNetworksForPersonFullTests.java @@ -0,0 +1,88 @@ +package org.alfresco.rest.networks; + +import org.alfresco.rest.RestTest; +import org.alfresco.rest.model.RestErrorModel; +import org.alfresco.rest.model.RestNetworkModelsCollection; +import org.alfresco.utility.model.TestGroup; +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.testng.annotations.BeforeClass; +import org.testng.annotations.Test; + +public class RestGetNetworksForPersonFullTests extends RestTest +{ + private UserModel adminUserModel; + private UserModel adminTenantUser; + + @BeforeClass(alwaysRun = true) + public void dataPreparation() throws Exception + { + adminUserModel = dataUser.getAdminUser(); + adminTenantUser = UserModel.getAdminTenantUser(); + restClient.authenticateUser(adminUserModel); + restClient.usingTenant().createTenant(adminTenantUser); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Check default error schema for get networks for member") + @Test(groups = { TestGroup.REST_API, TestGroup.FULL, TestGroup.NETWORKS }) + public void getNetworksAndCheckErrorSchema() throws Exception + { + restClient.authenticateUser(adminTenantUser).withCoreAPI().usingUser(new UserModel("invalidUser", "invalidPassword")).getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsErrorKey(RestErrorModel.ENTITY_NOT_FOUND_ERRORKEY) + .containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidUser")) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Check default error schema for get networks for member") + @Test(groups = { TestGroup.REST_API, TestGroup.FULL, TestGroup.NETWORKS }) + public void getNetworksAndCheckPropertiesParameter() throws Exception + { + RestNetworkModelsCollection networks = restClient.authenticateUser(adminTenantUser).withParams("properties=isEnabled,id").withCoreAPI().usingAuthUser().getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.OK); + networks.getOneRandomEntry().onModel().assertThat().field("homeNetwork").is("false") + .and().field("quotas").isNull() + .and().field("isEnabled").is("true") + .and().field("id").is(adminTenantUser.getDomain().toLowerCase()); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Check that skipCount parameter is applied") + @Test(groups = { TestGroup.REST_API, TestGroup.FULL, TestGroup.NETWORKS }) + public void checkThatSkipCountParameterIsApplied() throws Exception + { + RestNetworkModelsCollection networks = restClient.authenticateUser(adminTenantUser).withParams("skipCount=1").withCoreAPI().usingAuthUser().getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.OK); + networks.assertThat().entriesListIsEmpty(); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Check that high skipCount parameter is applied") + @Test(groups = { TestGroup.REST_API, TestGroup.FULL, TestGroup.NETWORKS }) + public void checkThatHighSkipCountParameterIsApplied() throws Exception + { + RestNetworkModelsCollection networks = restClient.authenticateUser(adminTenantUser).withParams("skipCount=100").withCoreAPI().usingAuthUser().getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.OK); + networks.assertThat().entriesListIsEmpty(); + networks.assertThat().paginationField("skipCount").is("100"); + } + + @TestRail(section = { TestGroup.REST_API,TestGroup.NETWORKS }, executionType = ExecutionType.REGRESSION, + description = "Check that maxItems parameter is applied") + @Test(groups = { TestGroup.REST_API, TestGroup.FULL, TestGroup.NETWORKS }) + public void checkThatMaxItemsParameterIsApplied() throws Exception + { + RestNetworkModelsCollection networks = restClient.authenticateUser(adminTenantUser).withParams("maxItems=1").withCoreAPI().usingAuthUser().getNetworks(); + restClient.assertStatusCodeIs(HttpStatus.OK); + networks.getOneRandomEntry().onModel().assertThat().field("homeNetwork").is("false") + .and().field("quotas").is("[]") + .and().field("isEnabled").is("true") + .and().field("id").is(adminTenantUser.getDomain().toLowerCase()); + networks.assertThat().paginationField("maxItems").is("1"); + } + +} \ No newline at end of file From e76f61278bdff8f3d235e0da962a6800bbc69506 Mon Sep 17 00:00:00 2001 From: cagache Date: Fri, 13 Jan 2017 12:51:51 +0200 Subject: [PATCH 65/65] fix put for multi-byte content --- .../rest/comments/UpdateCommentFullTests.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/comments/UpdateCommentFullTests.java b/e2e-test/java/org/alfresco/rest/comments/UpdateCommentFullTests.java index aa1b74dad..f15aba274 100644 --- a/e2e-test/java/org/alfresco/rest/comments/UpdateCommentFullTests.java +++ b/e2e-test/java/org/alfresco/rest/comments/UpdateCommentFullTests.java @@ -201,7 +201,6 @@ public class UpdateCommentFullTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.COMMENTS, TestGroup.FULL }) public void managerIsAbleToUpdateACommentWithMultiByteContent() throws JsonToModelConversionException, Exception { - //TODO update comment with multi-byte content - verify FileModel file = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN); String multiByte = "\ufeff\u6768\u6728\u91d1"; @@ -277,10 +276,10 @@ public class UpdateCommentFullTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.CREATED); restClient.authenticateUser(newUser).withCoreAPI().usingResource(file).updateComment(commentModel, updatedComment); - restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); - restClient.assertLastError().getErrorKey().contains(RestErrorModel.PERMISSION_DENIED_ERRORKEY); - restClient.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); - restClient.assertLastError().getDescriptionURL().contains("https://api-explorer.alfresco.com"); - restClient.assertLastError().getStackTrace().contains("For security reasons the stack trace is no longer displayed"); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED) + .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER) + .stackTraceIs(RestErrorModel.STACKTRACE) + .containsErrorKey(RestErrorModel.PERMISSION_DENIED_ERRORKEY); } } \ No newline at end of file