Merge branch 'master' into TAS-2039

This commit is contained in:
Valentin Popa
2016-12-07 17:13:27 +02:00
85 changed files with 3593 additions and 314 deletions
@@ -50,6 +50,9 @@ public abstract class RestTest extends AbstractTestNGSpringContextTests
@Autowired
protected DataLink dataLink;
@Autowired
protected DataDiscussion dataDiscussion;
@BeforeClass(alwaysRun = true)
public void checkServerHealth() throws Exception
@@ -5,17 +5,12 @@ 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.rest.model.RestTagModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.RandomData;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.FileType;
import org.alfresco.utility.model.LinkModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
@@ -61,7 +56,7 @@ public class AddCommentCoreTests extends RestTest
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingResource(file).addComment(comment);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, file.getNodeRef()));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, file.getNodeRef()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.COMMENTS }, executionType = ExecutionType.REGRESSION,
@@ -85,7 +80,7 @@ public class AddCommentCoreTests extends RestTest
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingResource(document).addComment("");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(ErrorModel.NULL_ARGUMENT, "comment"));
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.NULL_ARGUMENT, "comment"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.COMMENTS }, executionType = ExecutionType.REGRESSION,
@@ -128,7 +123,7 @@ public class AddCommentCoreTests extends RestTest
restClient.authenticateUser(member)
.withCoreAPI().usingResource(file).addComment(comment);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.COMMENTS }, executionType = ExecutionType.REGRESSION,
@@ -141,7 +136,7 @@ public class AddCommentCoreTests extends RestTest
restClient.authenticateUser(member)
.withCoreAPI().usingResource(document).addComment(comment);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.COMMENTS }, executionType = ExecutionType.REGRESSION,
@@ -156,7 +151,7 @@ public class AddCommentCoreTests extends RestTest
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingResource(file).addComment(comment);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(ErrorModel.CANNOT_COMMENT);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(RestErrorModel.CANNOT_COMMENT);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.COMMENTS }, executionType = ExecutionType.REGRESSION,
@@ -171,6 +166,6 @@ public class AddCommentCoreTests extends RestTest
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingResource(file).addComment(comment);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(ErrorModel.CANNOT_COMMENT);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(RestErrorModel.CANNOT_COMMENT);
}
}
@@ -3,13 +3,10 @@ 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.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.ErrorModel;
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.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
@@ -88,7 +85,7 @@ public class AddCommentSanityTests extends RestTest
restClient.withCoreAPI().usingResource(document).addComment(contentSiteConsumer);
restClient
.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.COMMENTS }, executionType = ExecutionType.SANITY, description = "Verify unauthenticated user gets status code 401 on post comments call")
@@ -97,7 +94,7 @@ 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);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -3,15 +3,14 @@ package org.alfresco.rest.comments;
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.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.RandomData;
import org.alfresco.utility.model.ErrorModel;
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;
@@ -105,16 +104,15 @@ public class AddCommentsSanityTests extends RestTest
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer))
.withCoreAPI().usingResource(document).addComments(comment1, comment2);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.COMMENTS }, executionType = ExecutionType.SANITY, description = "Verify unauthenticated user gets status code 401 on post multiple comments call")
@Bug(id="MNT-16904")
public void unauthenticatedUserIsNotAbleToAddComments() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(new UserModel("random user", "random password"))
.withCoreAPI().usingResource(document).addComments(comment1, comment2);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -4,9 +4,9 @@ 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.ErrorModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
@@ -46,7 +46,7 @@ public class DeleteCommentsCoreTests extends RestTest
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingResource(document).deleteComment(comment);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -3,6 +3,7 @@ package org.alfresco.rest.comments;
import org.alfresco.dataprep.CMISUtil;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestCommentModelsCollection;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
@@ -61,7 +62,7 @@ public class GetCommentsCoreTests extends RestTest
restClient.authenticateUser(adminUserModel).withCoreAPI()
.usingResource(nonexistentFile).getNodeComments();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, nonexistentFile.getNodeRef()));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, nonexistentFile.getNodeRef()));
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION,
@@ -75,7 +76,7 @@ public class GetCommentsCoreTests extends RestTest
restClient.authenticateUser(adminUserModel).withCoreAPI()
.usingResource(fileWithNodeRefFromLink).getNodeComments();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(ErrorModel.UNABLE_TO_LOCATE);
.assertLastError().containsSummary(RestErrorModel.UNABLE_TO_LOCATE);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION,
@@ -85,7 +86,7 @@ public class GetCommentsCoreTests extends RestTest
restClient.authenticateUser(userModel).withCoreAPI()
.usingResource(document).getNodeComments();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION,
@@ -103,22 +104,20 @@ public class GetCommentsCoreTests extends RestTest
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION,
description= "Verify get comments from node with invalid network id returns status code 401")
@Bug(id = "MNT-16904")
public void getCommentsWithInvalidNetwork() throws Exception
{
networkUserModel.setDomain("invalidNetwork");
restClient.authenticateUser(userModel).withCoreAPI().usingResource(document).getNodeComments();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION,
description= "Verify get comments from node with empty network id returns status code 401")
@Bug(id = "MNT-16904")
public void getCommentsWithEmptyNetwork() throws Exception
{
networkUserModel.setDomain("");
restClient.authenticateUser(userModel).withCoreAPI().usingResource(document).getNodeComments();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
}
@@ -5,6 +5,7 @@ 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.*;
@@ -86,7 +87,7 @@ public class UpdateCommentsCoreTests extends RestTest
commentModel = restClient.withCoreAPI().usingResource(document).addComment("This is a new comment added by admin");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingResource(document).updateComment(commentModel, "This is the updated comment with Collaborator user");
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -4,14 +4,10 @@ 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.ErrorModel;
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.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
@@ -85,7 +81,7 @@ public class UpdateCommentsSanityTests extends RestTest
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingResource(document).updateComment(commentModel, "This is the updated comment with Consumer user");
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -109,7 +105,7 @@ 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);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.SANITY }, executionType = ExecutionType.SANITY, description = "Verify update comment with inexistent nodeId returns status code 404")
@@ -135,7 +131,7 @@ public class UpdateCommentsSanityTests extends RestTest
comment.setId(id);
restClient.withCoreAPI().usingResource(document).updateComment(comment, "This is the updated comment.");
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, id));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, id));
}
}
@@ -3,12 +3,12 @@ package org.alfresco.rest.favorites;
import org.alfresco.dataprep.CMISUtil.DocumentType;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestCommentModel;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestPersonFavoritesModel;
import org.alfresco.rest.model.RestTagModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.FolderModel;
import org.alfresco.utility.model.LinkModel;
@@ -63,7 +63,7 @@ public class AddFavoritesCoreTests extends RestTest
site.setGuid(link.getNodeRef());
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(site);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, site.getGuid().split("/")[3]));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, site.getGuid().split("/")[3]));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
@@ -72,7 +72,7 @@ public class AddFavoritesCoreTests extends RestTest
{
restClient.withCoreAPI().usingUser(new UserModel("random_user", "random_password")).addSiteToFavorites(siteModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, "random_user"));
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "random_user"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
@@ -84,7 +84,7 @@ public class AddFavoritesCoreTests extends RestTest
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(site);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, "random_guid"));
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "random_guid"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION,
@@ -106,7 +106,7 @@ public class AddFavoritesCoreTests extends RestTest
document.setNodeRef(folder.getNodeRef());
restClient.withCoreAPI().usingAuthUser().addFileToFavorites(document);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(ErrorModel.RELATIONSHIP_NOT_FOUND,
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND,
adminUserModel.getUsername(), folder.getNodeRefWithoutVersion()));
document.setNodeRef(nodeRef);
@@ -187,7 +187,7 @@ public class AddFavoritesCoreTests extends RestTest
file.setNodeRef(returnedModel.getId());
restClient.authenticateUser(adminUserModel).withCoreAPI().usingAuthUser().addFileToFavorites(file);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(ErrorModel.RELATIONSHIP_NOT_FOUND,
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND,
adminUserModel.getUsername(), returnedModel.getId()));
}
@@ -199,7 +199,7 @@ public class AddFavoritesCoreTests extends RestTest
siteModel.setGuid(document.getNodeRefWithoutVersion());
restClient.withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, document.getNodeRefWithoutVersion()));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, document.getNodeRefWithoutVersion()));
siteModel.setGuid(guid);
}
@@ -212,7 +212,7 @@ public class AddFavoritesCoreTests extends RestTest
folder.setNodeRef(document.getNodeRef());
restClient.withCoreAPI().usingAuthUser().addFolderToFavorites(folder);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, document.getNodeRef()));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, document.getNodeRef()));
folder.setNodeRef(nodeRef);
}
@@ -7,6 +7,7 @@ import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -102,6 +103,6 @@ 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);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -2,9 +2,9 @@ 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.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
@@ -97,7 +97,7 @@ public class DeleteFavoritesSanityTests extends RestTest
restClient.authenticateUser(siteCollaborator).withCoreAPI().usingAuthUser().addSiteToFavorites(siteModel);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI()
.usingAuthUser().deleteSiteFromFavorites(siteModel)
.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@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")
@@ -108,7 +108,7 @@ public class DeleteFavoritesSanityTests extends RestTest
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer))
.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel)
.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@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")
@@ -120,7 +120,7 @@ public class DeleteFavoritesSanityTests extends RestTest
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingAuthUser().deleteSiteFromFavorites(siteModel)
.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.FAVORITES }, executionType = ExecutionType.SANITY, description = "Verify user gets status code 401 if authentication call fails")
@@ -3,16 +3,12 @@ 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.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.ErrorModel;
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.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
@@ -138,7 +134,7 @@ public class GetFavoriteSanityTests extends RestTest
.getFavorite(siteModel.getGuid());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUsername()));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUsername()));
}
@TestRail(section = { TestGroup.REST_API,
@@ -149,7 +145,7 @@ public class GetFavoriteSanityTests extends RestTest
.withCoreAPI().usingUser(adminUserModel).getFavorite(siteModel.getGuid());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, adminUserModel.getUsername()));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, adminUserModel.getUsername()));
}
@TestRail(section = { TestGroup.REST_API,
@@ -160,7 +156,7 @@ public class GetFavoriteSanityTests extends RestTest
.usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).getFavorite(siteModel.getGuid());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUsername()));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUsername()));
}
@TestRail(section = { TestGroup.REST_API,
@@ -172,7 +168,7 @@ public class GetFavoriteSanityTests extends RestTest
siteManager.setPassword("wrongPassword");
restClient.authenticateUser(siteManager).withCoreAPI()
.usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).getFavorite(siteModel.getGuid());
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -2,6 +2,7 @@ package org.alfresco.rest.favorites;
import org.alfresco.dataprep.CMISUtil;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestPersonFavoritesModelsCollection;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
@@ -198,7 +199,7 @@ public class GetFavoritesCoreTests extends RestTest
userFavorites = restClient.withCoreAPI().usingAuthUser()
.where().or().getFavorites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(ErrorModel.INVALID_ARGUMENT, "WHERE query"));
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_ARGUMENT, "WHERE query"));
}
@TestRail(section = { TestGroup.REST_API,
@@ -229,6 +230,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")
@TestRail(section = { TestGroup.REST_API,
TestGroup.FAVORITES }, executionType = ExecutionType.REGRESSION, description = "Verify request using personId that does not exist returns status 404")
public void checkFavoritesWhenPersonIdDoesNotExist() throws Exception
@@ -238,6 +240,6 @@ public class GetFavoritesCoreTests extends RestTest
restClient.authenticateUser(adminUserModel).withCoreAPI()
.usingUser(someUser).getFavorites();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, "someUser"));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "someUser"));
}
}
@@ -3,15 +3,11 @@ 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.rest.model.RestPersonFavoritesModelsCollection;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.ErrorModel;
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.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
@@ -153,7 +149,7 @@ public class GetFavoritesSanityTests extends RestTest
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer))
.withCoreAPI().usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).getFavorites();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUsername()));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUsername()));
}
@TestRail(section = { TestGroup.REST_API,
@@ -163,7 +159,7 @@ public class GetFavoritesSanityTests extends RestTest
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI()
.usingUser(adminUserModel).getFavorites();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, adminUserModel.getUsername()));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, adminUserModel.getUsername()));
}
@TestRail(section = { TestGroup.REST_API,
@@ -173,7 +169,7 @@ public class GetFavoritesSanityTests extends RestTest
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator))
.getFavorites();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUsername()));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator).getUsername()));
}
@TestRail(section = { TestGroup.REST_API,
@@ -184,6 +180,6 @@ public class GetFavoritesSanityTests extends RestTest
UserModel siteManager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager);
siteManager.setPassword("wrongPassword");
restClient.authenticateUser(siteManager).withCoreAPI().usingAuthUser().getFavorites();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -4,6 +4,7 @@ import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestFavoriteSiteModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -95,6 +96,6 @@ public class AddFavoriteSiteSanityTests extends RestTest
managerUser.setPassword("newpassword");
restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().addFavoriteSite(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -0,0 +1,101 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.exception.DataPreparationException;
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.BeforeMethod;
import org.testng.annotations.Test;
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public class AddSiteMembershipRequestCoreTests extends RestTest
{
private UserModel adminUser;
private UserModel newMember;
private SiteModel siteModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUser).createModeratedRandomSite();
}
@BeforeMethod
public void setUp() throws DataPreparationException
{
newMember = dataUser.createRandomTestUser();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify addSiteMembershipRequest Rest API status code is 400 for a user that has already been invited")
public void addSiteMembershipRequestStatusCodeIs400ReceivedForAUserThatIsAlreadyInvited() throws Exception
{
dataUser.addUserToSite(newMember, siteModel, UserRole.SiteContributor);
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingMe()
.addSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST);
restClient.assertLastError().containsSummary(String.format(RestErrorModel.ALREADY_Site_MEMBER, newMember.getUsername(), siteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify addSiteMembershipRequest Rest API status code is 404 for a user that does not exist")
public void addSiteMembershipRequestStatusCodeIs404ReceivedForAUserThatDoesNotExist() throws Exception
{
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingUser(new UserModel("invalidUser", "password")).addSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
restClient.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidUser"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify addSiteMembershipRequest Rest API status code is 404 for a site that does not exist")
public void addSiteMembershipRequestStatusCodeIs404ReceivedForASiteThatDoesNotExist() throws Exception
{
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingMe().addSiteMembershipRequest(new SiteModel("invalidSiteID"));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
restClient.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), "invalidSiteID"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify addSiteMembershipRequest Rest API status code is 400 for empty request body")
public void addSiteMembershipRequestStatusCodeIs400ForEmptyRequestBody() throws Exception
{
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingMe().addSiteMembershipRequest("");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify addSiteMembershipRequest Rest API status code is 201 for request with empty message")
public void addSiteMembershipRequestStatusCodeIs201ForRequestWithEmptyMessage() throws Exception
{
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingMe().addSiteMembershipRequest("", siteModel, "New request");
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify addSiteMembershipRequest Rest API status code is 201 for request with empty title")
public void addSiteMembershipRequestStatusCodeIs201ForRequestWithEmptyTitle() throws Exception
{
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingMe().addSiteMembershipRequest("Please accept me", siteModel, "");
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
}
@@ -9,6 +9,7 @@ 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.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -121,11 +122,9 @@ public class AddSiteMembershipRequestSanityTests extends RestTest
@Bug(id = "MNT-16557")
public void unauthenticatedUserIsNotAbleToCreateSiteMembershipRequest() throws JsonToModelConversionException, Exception
{
requestModel = restClient.authenticateUser(new UserModel("random user", "random password"))
restClient.authenticateUser(new UserModel("random user", "random password"))
.withCoreAPI()
.usingUser(newMember).addSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
requestModel.assertThat().field("id").isNotEmpty()
.assertThat().field("site").isNotEmpty();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -1,12 +1,13 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.ErrorModel;
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;
@@ -29,8 +30,8 @@ public class DeleteFavoriteSiteCoreTests extends RestTest
adminUserModel = dataUser.getAdminUser();
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, 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);
@@ -39,35 +40,29 @@ public class DeleteFavoriteSiteCoreTests extends RestTest
restClient.withCoreAPI().usingMe().removeFavoriteSite(siteModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@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.SANITY, description = "Verify inexistent user is not able to remove a site from favorites and response is 404")
public void inexistentUserIsNotAbleToRemoveFavoriteSite() throws Exception
{
restClient.authenticateUser(adminUserModel);
dataSite.usingUser(adminUserModel).usingSite(siteModel).addSiteToFavorites();
UserModel inexistentUser = new UserModel("inexistenUser", "password");
restClient.withCoreAPI().usingUser(inexistentUser).removeFavoriteSite(siteModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(ErrorModel.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"));
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, 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
{
restClient.authenticateUser(adminUserModel);
dataSite.usingUser(adminUserModel).usingSite(siteModel).addSiteToFavorites();
SiteModel inexistentSite = new SiteModel("inexistentSite");
restClient.withCoreAPI().usingUser(adminUserModel).removeFavoriteSite(inexistentSite);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(adminUserModel).removeFavoriteSite(inexistentSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(ErrorModel.RELATIONSHIP_NOT_FOUND, adminUserModel.getUsername(), inexistentSite.getTitle()));
.containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, adminUserModel.getUsername(), inexistentSite.getTitle()));
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PEOPLE }, executionType = ExecutionType.SANITY, description = "Verify manager user removes a site from its favorites abd add 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();
@@ -80,8 +75,8 @@ public class DeleteFavoriteSiteCoreTests extends RestTest
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@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.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();
@@ -93,7 +88,7 @@ public class DeleteFavoriteSiteCoreTests extends RestTest
restClient.withCoreAPI().usingAuthUser().getFavorites().assertThat().entriesListDoesNotContain("id", siteModel.getId());
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION,
@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
{
@@ -105,7 +100,7 @@ public class DeleteFavoriteSiteCoreTests extends RestTest
restClient.withCoreAPI().usingAuthUser().getFavoriteSites().assertThat().entriesListDoesNotContain("id", publicSiteModel.getId());
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION,
@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
{
@@ -117,7 +112,7 @@ public class DeleteFavoriteSiteCoreTests extends RestTest
restClient.withCoreAPI().usingAuthUser().getFavoriteSites().assertThat().entriesListDoesNotContain("id", moderatedSiteModel.getId());
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.COMMENTS}, executionType= ExecutionType.REGRESSION,
@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
{
@@ -129,4 +124,4 @@ public class DeleteFavoriteSiteCoreTests extends RestTest
restClient.withCoreAPI().usingAuthUser().getFavoriteSites().assertThat().entriesListDoesNotContain("id", privateSiteModel.getId());
}
}
}
@@ -1,11 +1,10 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.http.HttpStatus;
@@ -112,9 +111,10 @@ 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(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Bug(id = "MNT-16904")
@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)")
@@ -127,6 +127,6 @@ public class DeleteFavoriteSiteSanityTests extends RestTest
managerUser.setPassword("newpassword");
restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().removeFavoriteSite(siteModel1);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -0,0 +1,253 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
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.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public class DeleteSiteMemberCoreTests extends RestTest
{
private UserModel userModel;
private UserModel managerModel;
private SiteModel publicSiteModel;
private SiteModel moderatedSiteModel;
private SiteModel privateSiteModel;
private UserModel adminUserModel;
private UserModel secondUserModel;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
secondUserModel = dataUser.createRandomTestUser();
secondUserModel.setUserRole(UserRole.SiteCollaborator);
userModel = dataUser.createRandomTestUser();
userModel.setUserRole(UserRole.SiteCollaborator);
managerModel = dataUser.createRandomTestUser();
managerModel.setUserRole(UserRole.SiteManager);
adminUserModel = dataUser.getAdminUser();
publicSiteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
moderatedSiteModel = dataSite.usingUser(adminUserModel).createModeratedRandomSite();
privateSiteModel = dataSite.usingUser(adminUserModel).createPrivateRandomSite();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user removes a site member using '-me-' in place of personId and response is successful (204)")
public void removeSiteMemberWithSuccessUsingMeAsPersonId() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(userModel);
restClient.authenticateUser(userModel).withCoreAPI().usingMe().deleteSiteMember(publicSiteModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user can't remove a site membership if doesn't have access to personId and response is 422")
public void notAbleToRemoveSiteMemberWithNoAccessToPersonId() throws Exception
{
UserModel user = dataUser.createRandomTestUser();
dataSite.usingUser(user).createPublicRandomSite();
userModel.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(userModel);
restClient.authenticateUser(user).withCoreAPI().usingUser(userModel).deleteSiteMember(publicSiteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user can't remove a site membership of an inexistent uer and response is 404")
public void userIsNotAbleToRemoveInexistentSiteMember() throws Exception
{
UserModel inexistentUser = new UserModel("inexistenUser", "password");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(inexistentUser).deleteSiteMember(publicSiteModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUser.getUsername()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove a member of an inexistent site and response is 404")
public void userIsNotAbleToRemoveMembershipOfInexistentSite() throws Exception
{
SiteModel inexistentSite = new SiteModel("inexistentSite");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(userModel).deleteSiteMember(inexistentSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, userModel.getUsername(), inexistentSite.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove a member of an empty site id and response is 404")
public void userIsNotAbleToRemoveMembershipOfEmptySiteId() throws Exception
{
SiteModel inexistentSite = new SiteModel("");
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(userModel).deleteSiteMember(inexistentSite);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(RestErrorModel.DELETE_EMPTY_ARGUMENT);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove a regular member of a public site and response is 422")
public void regularUserIsNotAbleToRemoveRegularUserSiteMembershipFromPublicSite() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(secondUserModel);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(userModel);
restClient.authenticateUser(secondUserModel).withCoreAPI().usingUser(userModel).deleteSiteMember(publicSiteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove a regular member a moderated site and response is 422")
public void regularUserIsNotAbleToRemoveRegularUserSiteMembershipFromModeratedSite() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(secondUserModel);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(userModel);
restClient.authenticateUser(secondUserModel).withCoreAPI().usingUser(userModel).deleteSiteMember(moderatedSiteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, moderatedSiteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove a regular member of a private site and response is 422")
public void regularUserIsNotAbleToRemoveRegularUserSiteMembershipFromPrivateSite() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(userModel);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(secondUserModel);
restClient.authenticateUser(secondUserModel).withCoreAPI().usingUser(userModel).deleteSiteMember(privateSiteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, privateSiteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is able to remove a regular member of a public site and response is 204")
public void adminIsAbleToRemoveRegularUserSiteMembershipFromPublicSite() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(userModel);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(userModel).deleteSiteMember(publicSiteModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is able to remove a regular member of a moderated site and response is 204")
public void adminIsAbleToRemoveRegularUserSiteMembershipFromModeratedSite() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(userModel);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(userModel).deleteSiteMember(moderatedSiteModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is able to remove a regular member of a private site and response is 204")
public void adminIsAbleToRemoveRegularUserSiteMembershipFromPrivateSite() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(userModel);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingUser(userModel).deleteSiteMember(privateSiteModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove admin membership from public site and response is 422")
public void regularUserIsNotAbleToRemoveAdminSiteMembershipFromPublicSite() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(managerModel);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(userModel);
restClient.authenticateUser(userModel).withCoreAPI().usingUser(adminUserModel).deleteSiteMember(publicSiteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove admin membership from moderated site and response is 422")
public void regularUserIsNotAbleToRemoveAdminSiteMembershipFromModeratedSite() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(managerModel);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(userModel);
restClient.authenticateUser(userModel).withCoreAPI().usingUser(adminUserModel).deleteSiteMember(moderatedSiteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, moderatedSiteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify user is not able to remove admin membership from private site and response is 422")
public void regularUserIsNotAbleToRemoveAdminSiteMembershipFromPrivateSite() throws Exception
{
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(managerModel);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(userModel);
restClient.authenticateUser(userModel).withCoreAPI().usingUser(adminUserModel).deleteSiteMember(privateSiteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, privateSiteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is able to remove the membership of a manager from a public site and response is 204")
public void adminIsAbleToRemoveManagerSiteMembershipOfPublicSite() throws Exception
{
UserModel secondManager = dataUser.createRandomTestUser();
secondManager.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(secondManager);
restClient.withCoreAPI().usingSite(publicSiteModel).addPerson(managerModel);
restClient.withCoreAPI().usingUser(managerModel).deleteSiteMember(publicSiteModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is able to remove the membership of a manager from a moderated site and response is 204")
public void adminIsAbleToRemoveManagerSiteMembershipOfModeratedSite() throws Exception
{
UserModel secondManager = dataUser.createRandomTestUser();
secondManager.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(secondManager);
restClient.withCoreAPI().usingSite(moderatedSiteModel).addPerson(managerModel);
restClient.withCoreAPI().usingUser(managerModel).deleteSiteMember(moderatedSiteModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify admin is able to remove the membership of a manager from a private site and response is 204")
public void adminIsAbleToRemoveManagerSiteMembershipOfPrivateSite() throws Exception
{
UserModel secondManager = dataUser.createRandomTestUser();
secondManager.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(secondManager);
restClient.withCoreAPI().usingSite(privateSiteModel).addPerson(managerModel);
restClient.withCoreAPI().usingUser(managerModel).deleteSiteMember(privateSiteModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify collaborator is not able to remove the membership of a manager from a public site and response is 204")
public void userIsNotAbleToRemoveManagerSiteMembershipOfPublicSite() throws Exception
{
UserModel secondManager = dataUser.createRandomTestUser();
secondManager.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(publicSiteModel).addPerson(secondManager);
restClient.withCoreAPI().usingSite(publicSiteModel).addPerson(userModel);
restClient.withCoreAPI().usingSite(publicSiteModel).addPerson(managerModel);
restClient.authenticateUser(userModel).withCoreAPI().usingUser(managerModel).deleteSiteMember(publicSiteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, publicSiteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify collaborator is not able to remove the membership of a manager from a moderated site and response is 204")
public void userIsNotAbleToRemoveManagerSiteMembershipOfModeratedSite() throws Exception
{
UserModel secondManager = dataUser.createRandomTestUser();
secondManager.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(moderatedSiteModel).addPerson(secondManager);
restClient.withCoreAPI().usingSite(publicSiteModel).addPerson(userModel);
restClient.withCoreAPI().usingSite(moderatedSiteModel).addPerson(managerModel);
restClient.authenticateUser(userModel).withCoreAPI().usingUser(managerModel).deleteSiteMember(moderatedSiteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, moderatedSiteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify collaborator is not able to remove the membership of a manager from a private site and response is 204")
public void userIsNotAbleToRemoveManagerSiteMembershipOfPrivateSite() throws Exception
{
UserModel secondManager = dataUser.createRandomTestUser();
secondManager.setUserRole(UserRole.SiteManager);
restClient.authenticateUser(adminUserModel).withCoreAPI().usingSite(privateSiteModel).addPerson(secondManager);
restClient.withCoreAPI().usingSite(privateSiteModel).addPerson(userModel);
restClient.withCoreAPI().usingSite(privateSiteModel).addPerson(managerModel);
restClient.authenticateUser(userModel).withCoreAPI().usingUser(managerModel).deleteSiteMember(privateSiteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, privateSiteModel.getId()));
}
}
@@ -2,10 +2,10 @@ 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;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
@@ -77,7 +77,7 @@ public class DeleteSiteMemberSanityTests extends RestTest
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingUser(newUser).deleteSiteMember(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(ErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -92,7 +92,7 @@ public class DeleteSiteMemberSanityTests extends RestTest
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingUser(newUser).deleteSiteMember(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(ErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -107,7 +107,7 @@ public class DeleteSiteMemberSanityTests extends RestTest
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingUser(newUser).deleteSiteMember(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(ErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY).assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@Bug(id="MNT-16904")
@@ -2,14 +2,12 @@ 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.data.RandomData;
import org.alfresco.utility.exception.DataPreparationException;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
@@ -103,7 +101,7 @@ public class DeleteSiteMembershipRequestSanityTests extends RestTest
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator))
.withCoreAPI()
.usingAuthUser().deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Bug(id="MNT-16916")
@@ -121,7 +119,7 @@ public class DeleteSiteMembershipRequestSanityTests extends RestTest
.withCoreAPI()
.usingAuthUser().deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Bug(id="MNT-16916")
@@ -138,7 +136,7 @@ public class DeleteSiteMembershipRequestSanityTests extends RestTest
.withCoreAPI()
.usingAuthUser().deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Bug(id="MNT-16916")
@@ -155,9 +153,10 @@ public class DeleteSiteMembershipRequestSanityTests extends RestTest
.withCoreAPI()
.usingAuthUser().deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Bug(id = "MNT-16904")
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES },
executionType = ExecutionType.SANITY,
description = "Failed authentication get site member call returns status code 401")
@@ -170,6 +169,6 @@ public class DeleteSiteMembershipRequestSanityTests extends RestTest
restClient.authenticateUser(inexistentUser)
.withCoreAPI()
.usingAuthUser().deleteSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -1,12 +1,11 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.model.ErrorModel;
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;
@@ -39,7 +38,7 @@ public class GetFavoriteSiteCoreTests extends RestTest
restClient.authenticateUser(userModel).withCoreAPI().usingUser(someUser).getFavoriteSite(site1);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, "someUser"));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "someUser"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -51,7 +50,7 @@ public class GetFavoriteSiteCoreTests extends RestTest
restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser().getFavoriteSite(nonExistentSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.RELATIONSHIP_NOT_FOUND, userModel.getUsername(), nonExistentSite.getId()));
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, userModel.getUsername(), nonExistentSite.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -61,6 +60,6 @@ public class GetFavoriteSiteCoreTests extends RestTest
{
restClient.authenticateUser(userModel).withCoreAPI().usingUser(dataUser.getAdminUser()).getFavoriteSite(site1);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
}
@@ -1,12 +1,10 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
@@ -123,7 +121,7 @@ public class GetFavoriteSiteSanityTests extends RestTest
dataSite.usingUser(managerUser).usingSite(siteModel2).addSiteToFavorites();
restClient.authenticateUser(managerUser).withCoreAPI().usingUser(userModel).getFavoriteSite(siteModel1);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Bug(id = "MNT-16904")
@@ -139,6 +137,6 @@ public class GetFavoriteSiteSanityTests extends RestTest
managerUser.setPassword("newpassword");
restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().getFavoriteSite(siteModel1);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -1,12 +1,10 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteModelsCollection;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
@@ -40,7 +38,7 @@ public class GetFavoriteSitesSanityTests extends RestTest
dataSite.usingUser(anotherUser).usingSite(siteModel).addSiteToFavorites();
restClient.authenticateUser(managerUser).withCoreAPI().usingUser(anotherUser).getFavoriteSites();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -55,7 +53,7 @@ public class GetFavoriteSitesSanityTests extends RestTest
dataSite.usingUser(contributorUser).usingSite(siteModel).addSiteToFavorites();
restClient.authenticateUser(collaboratorUser).withCoreAPI().usingUser(contributorUser).getFavoriteSites();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -70,7 +68,7 @@ public class GetFavoriteSitesSanityTests extends RestTest
dataSite.usingUser(contributorUser2).usingSite(siteModel).addSiteToFavorites();
restClient.authenticateUser(contributorUser).withCoreAPI().usingUser(contributorUser2).getFavoriteSites();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -85,7 +83,7 @@ public class GetFavoriteSitesSanityTests extends RestTest
dataSite.usingUser(collaboratorUser).usingSite(siteModel).addSiteToFavorites();
restClient.authenticateUser(consumerUser).withCoreAPI().usingUser(collaboratorUser).getFavoriteSites();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -128,6 +126,6 @@ public class GetFavoriteSitesSanityTests extends RestTest
anyUser.setPassword("newpassword");
restClient.authenticateUser(anyUser).withCoreAPI().usingAuthUser().getFavoriteSites();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -3,11 +3,12 @@ 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.UserRole;
import org.alfresco.utility.data.DataUser;
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;
@@ -23,9 +24,9 @@ import org.testng.annotations.Test;
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES, TestGroup.SANITY })
public class GetPeopleActivitiesSanityTests extends RestTest
{
UserModel userModel;
UserModel userModel, unauthenticatedUser;
SiteModel siteModel;
UserModel searchedUser;
private DataUser.ListUserWithRoles usersWithRoles;
private RestActivityModelsCollection restActivityModelsCollection;
@BeforeClass(alwaysRun = true)
@@ -34,6 +35,9 @@ public class GetPeopleActivitiesSanityTests extends RestTest
userModel = dataUser.createRandomTestUser();
siteModel = dataSite.usingUser(userModel).createPublicRandomSite();
dataContent.usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN);
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
unauthenticatedUser = dataUser.usingAdmin().createRandomTestUser();
unauthenticatedUser.setPassword("newpassword");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES },
@@ -41,8 +45,7 @@ public class GetPeopleActivitiesSanityTests extends RestTest
description = "Verify manager user gets its activities with Rest API and response is successful")
public void managerUserShouldGetPeopleActivitiesList() throws Exception
{
UserModel managerUser = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(userModel).addUserToSite(managerUser, siteModel, UserRole.SiteManager);
UserModel managerUser = usersWithRoles.getOneUserWithRole(UserRole.SiteManager);
dataContent.usingUser(managerUser).usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN);
restActivityModelsCollection = restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().getPersonActivities();
@@ -56,8 +59,7 @@ public class GetPeopleActivitiesSanityTests extends RestTest
description = "Verify collaborator user gets its activities with Rest API and response is successful")
public void collaboratorUserShouldGetPeopleActivitiesList() throws Exception
{
UserModel collaboratorUser = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(userModel).addUserToSite(collaboratorUser, siteModel, UserRole.SiteCollaborator);
UserModel collaboratorUser = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator);
dataContent.usingUser(collaboratorUser).usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN);
restActivityModelsCollection = restClient.authenticateUser(collaboratorUser).withCoreAPI().usingAuthUser().getPersonActivities();
@@ -71,8 +73,7 @@ public class GetPeopleActivitiesSanityTests extends RestTest
description = "Verify contributor user gets its activities with Rest API and response is successful")
public void contributorUserShouldGetPeopleActivitiesList() throws Exception
{
UserModel contributorUser = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(userModel).addUserToSite(contributorUser, siteModel, UserRole.SiteContributor);
UserModel contributorUser = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor);
dataContent.usingUser(contributorUser).usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN);
restActivityModelsCollection = restClient.authenticateUser(contributorUser).withCoreAPI().usingAuthUser().getPersonActivities();
@@ -86,8 +87,7 @@ public class GetPeopleActivitiesSanityTests extends RestTest
description = "Verify consumer user gets its activities with Rest API and response is successful")
public void consumerUserShouldGetPeopleActivitiesList() throws Exception
{
UserModel consumerUser = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(userModel).addUserToSite(consumerUser, siteModel, UserRole.SiteConsumer);
UserModel consumerUser = usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer);
restActivityModelsCollection = restClient.authenticateUser(consumerUser).withCoreAPI().usingAuthUser().getPersonActivities();
restClient.assertStatusCodeIs(HttpStatus.OK);
@@ -105,18 +105,13 @@ public class GetPeopleActivitiesSanityTests extends RestTest
restActivityModelsCollection.assertThat().entriesListIsNotEmpty().and().entriesListContains("siteId", siteModel.getId())
.and().paginationExist();
}
@Bug(id = "MNT-16904")
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.ACTIVITIES },
executionType = ExecutionType.SANITY,
description = "Verify manager user is NOT Authorized to gets another user activities with Rest API")
public void managerUserShouldGetPeopleActivitiesListIsNotAuthorized() throws Exception
description = "Verify unauthenticated user is NOT Authorized to gets another user activities with Rest API")
public void unauthenticatedUserShouldNotGetPeopleActivitiesList() throws Exception
{
UserModel managerUser = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(userModel).addUserToSite(managerUser, siteModel, UserRole.SiteManager);
managerUser.setPassword("newpassword");
restClient.authenticateUser(managerUser).withCoreAPI().usingUser(userModel).getPersonActivities();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.authenticateUser(unauthenticatedUser).withCoreAPI().usingUser(userModel).getPersonActivities();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -5,6 +5,7 @@ import org.alfresco.rest.model.RestPreferenceModel;
import org.alfresco.utility.constants.PreferenceName;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -114,6 +115,6 @@ public class GetPeoplePreferenceSanityTests extends RestTest
restClient.authenticateUser(managerUser)
.withCoreAPI().usingAuthUser().getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId());
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -0,0 +1,74 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.utility.constants.PreferenceName;
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;
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public class GetPeoplePreferencesCoreTests extends RestTest
{
UserModel userModel;
SiteModel siteModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
userModel = dataUser.createRandomTestUser();
siteModel = dataSite.usingUser(userModel).createPublicRandomSite();
dataSite.usingUser(userModel).usingSite(siteModel).addSiteToFavorites();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION,
description = "Verify user is Forbidden to get a specific preference for another user with Rest API and response is 403")
public void userDoesNotHaveAccessToFavoriteSitesOfAnotherUser() throws Exception
{
UserModel secondUser = dataUser.createRandomTestUser();
restClient.authenticateUser(secondUser).withCoreAPI().usingUser(userModel)
.getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId());
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
restClient.assertLastError().containsSummary("Permission was denied");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION,
description = "Verify manager fails to get a specific preference for an invalid user with Rest API and response is 404")
public void statusNotFoundIsReturnedForAPersonIDThatDoesNotExist() throws Exception
{
restClient.authenticateUser(userModel).withCoreAPI().usingUser(new UserModel("invalidPersonID", "password"))
.getPersonPreferenceInformation(PreferenceName.SITES_FAVORITES_PREFIX + siteModel.getId());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
restClient.assertLastError().containsSummary("The entity with id: personId is null. was not found");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES }, executionType = ExecutionType.REGRESSION,
description = "Verify manager fails to get a specific preference for an invalid preference with Rest API and response is 404")
public void statusNotFoundIsReturnedForAPreferenceNameThatDoesNotExist() throws Exception
{
restClient.authenticateUser(userModel).withCoreAPI().usingAuthUser()
.getPersonPreferenceInformation("invalidPreferenceName");
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 invalidPreferenceName", userModel.getUsername()));
}
@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")
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());
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()));
}
}
@@ -5,6 +5,7 @@ import org.alfresco.rest.model.RestPreferenceModelsCollection;
import org.alfresco.utility.constants.PreferenceName;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -114,7 +115,7 @@ public class GetPeoplePreferencesSanityTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.PREFERENCES },
executionType = ExecutionType.SANITY,
description = "Verify manager user is NOT Authorized to gets its preferences with Rest API when authentication fails(401)")
public void managerUserGetsPeoplePreferencesIsNotAUthorized() throws Exception
public void managerUserGetsPeoplePreferencesIsNotAuthorized() throws Exception
{
UserModel managerUser = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(userModel).addUserToSite(managerUser, siteModel, UserRole.SiteManager);
@@ -122,6 +123,6 @@ public class GetPeoplePreferencesSanityTests extends RestTest
managerUser.setPassword("newpassword");
restClient.authenticateUser(managerUser).withCoreAPI().usingAuthUser().getPersonPreferences();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -1,10 +1,10 @@
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.data.DataUser;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
@@ -139,6 +139,6 @@ public class GetPeopleSanityTests extends RestTest
.withCoreAPI()
.usingUser(searchedNonUser)
.getPerson();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, ""));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, ""));
}
}
@@ -0,0 +1,159 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteEntry;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
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 11/28/2016.
*/
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public class GetSiteMembershipCoreTests extends RestTest
{
UserModel regularUser, publicSiteManager, privateSiteManager, moderatedSiteManager, adminUser;
SiteModel publicSite, privateSite, moderatedSite;
private DataUser.ListUserWithRoles publicSiteUsers;
private RestSiteEntry restSiteEntry;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
regularUser = dataUser.createRandomTestUser();
privateSiteManager = dataUser.createRandomTestUser();
moderatedSiteManager = dataUser.createRandomTestUser();
publicSite = dataSite.usingAdmin().createPublicRandomSite();
privateSite = dataSite.usingAdmin().createPrivateRandomSite();
moderatedSite = dataSite.usingAdmin().createModeratedRandomSite();
publicSiteUsers = dataUser.addUsersWithRolesToSite(publicSite,
UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
publicSiteManager = publicSiteUsers.getOneUserWithRole(UserRole.SiteManager);
dataUser.usingAdmin().addUserToSite(privateSiteManager, privateSite, UserRole.SiteManager);
dataUser.usingAdmin().addUserToSite(moderatedSiteManager, moderatedSite, UserRole.SiteManager);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify request using -me- string in place of personId returns site membership information for currently authenticated user.")
public void getSiteMembershipUsingMe() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator));
restSiteEntry = restClient.withCoreAPI().usingMe().getSiteMembership(publicSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteEntry.assertThat().field("role").is(UserRole.SiteCollaborator)
.and().field("id").is(publicSite.getId())
.and().field("site").isNotEmpty();
}
@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
{
UserModel someUser = new UserModel("someUser", DataUser.PASSWORD);
restClient.authenticateUser(regularUser).withCoreAPI().usingUser(someUser).getSiteMembership(publicSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "someUser"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify get site membership for a site returns status 404 when siteId does not exist.")
public void getSiteMembershipUsingNonExistentSiteId() throws Exception
{
SiteModel someSite = new SiteModel("someSite");
restClient.authenticateUser(regularUser).withCoreAPI().usingAuthUser().getSiteMembership(someSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, regularUser.getUsername(), "someSite"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify get site membership for a site returns status 404 when personId is not a site member.")
public void getSiteMembershipForPersonThatIsNotSiteMember() throws Exception
{
restClient.authenticateUser(publicSiteManager).withCoreAPI()
.usingUser(regularUser).getSiteMembership(publicSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, regularUser.getUsername(), publicSite.getTitle()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user is not able to retrieve site membership information of a private site member.")
public void regularUserIsNotAbleToRetrieveSiteMembershipForPrivateSiteManager() throws Exception
{
restClient.authenticateUser(regularUser).withCoreAPI()
.usingUser(privateSiteManager).getSiteMembership(privateSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, privateSiteManager.getUsername(), privateSite.getTitle()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to retrieve site membership information of a moderated site member.")
public void regularUserGetsSiteMembershipForModeratedSiteMember() throws Exception
{
restSiteEntry = restClient.authenticateUser(regularUser).withCoreAPI()
.usingUser(moderatedSiteManager).getSiteMembership(moderatedSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteEntry.assertThat().field("role").is(UserRole.SiteManager)
.and().field("id").is(moderatedSite.getId())
.and().field("site").isNotEmpty();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify regular user is able to retrieve site membership information of a public site member.")
public void regularUserGetsSiteMembershipForPublicSiteMember() throws Exception
{
restSiteEntry = restClient.authenticateUser(regularUser).withCoreAPI()
.usingUser(publicSiteManager).getSiteMembership(publicSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteEntry.assertThat().field("role").is(UserRole.SiteManager)
.and().field("id").is(publicSite.getId())
.and().field("site").isNotEmpty();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify if Admin user is able to retrieve site membership information of him.")
public void adminGetsSiteMembershipForHim() throws Exception
{
restSiteEntry = restClient.authenticateUser(adminUser).withCoreAPI()
.usingUser(adminUser).getSiteMembership(privateSite);
restClient.assertStatusCodeIs(HttpStatus.OK);
restSiteEntry.assertThat().field("role").is(UserRole.SiteManager)
.and().field("id").is(privateSite.getId())
.and().field("site").isNotEmpty();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify if Admin user is able to retrieve site membership information of him.")
public void getSiteMembershipAfterRemovingASiteMember() throws Exception
{
UserModel publicSiteConsumer = publicSiteUsers.getOneUserWithRole(UserRole.SiteConsumer);
restClient.authenticateUser(publicSiteManager).withCoreAPI()
.usingSite(publicSite).deleteSiteMember(publicSiteConsumer);
restClient.authenticateUser(publicSiteManager).withCoreAPI()
.usingUser(publicSiteConsumer).getSiteMembership(publicSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, publicSiteConsumer.getUsername(), publicSite.getTitle()));
}
}
@@ -0,0 +1,191 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.exception.DataPreparationException;
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;
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public class GetSiteMembershipInformationCoreTests extends RestTest
{
private SiteModel publicSiteModel;
private SiteModel moderatedSiteModel;
private SiteModel privateSiteModel;
private UserModel userModel;
UserModel leaveSiteUserModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws DataPreparationException
{
userModel = dataUser.createRandomTestUser();
leaveSiteUserModel = dataUser.createRandomTestUser();
publicSiteModel = dataSite.usingUser(userModel).createPublicRandomSite();
moderatedSiteModel = dataSite.usingUser(userModel).createModeratedRandomSite();
privateSiteModel = dataSite.usingUser(userModel).createPrivateRandomSite();
dataUser.addUserToSite(leaveSiteUserModel, publicSiteModel, UserRole.SiteCollaborator);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify site manager is able to retrieve site membership information with -me- as personId")
public void siteManagerCanRetrieveSiteMembershipInformationWithMeAsPersonId() throws Exception
{
restClient.authenticateUser(userModel)
.withCoreAPI()
.usingMe()
.getSitesMembershipInformation()
.assertThat().entriesListIsNotEmpty()
.and().paginationExist()
.and().paginationField("count").isNot("0");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify site manager is not able to retrieve site membership information for a personId that does not exist")
public void siteManagerCantRetrieveSiteMembershipInformationForAPersonIdThatDoesNotExist() throws Exception
{
restClient.authenticateUser(userModel)
.withCoreAPI()
.usingUser(new UserModel("invalidPersonId", "password"))
.getSitesMembershipInformation()
.assertThat().entriesListIsEmpty();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
restClient.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidPersonId"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify if get site membership information request returns status code 400 when invalid maxItems parameter is used")
public void getSiteMembershipInformationRequestReturns400ForInvalidMaxItemsParameter() throws Exception
{
restClient.authenticateUser(userModel)
.withParams("maxItems=0")
.withCoreAPI()
.usingAuthUser()
.getSitesMembershipInformation()
.assertThat().entriesListIsEmpty();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST);
restClient.assertLastError().containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS);
restClient.withParams("maxItems=-1")
.withCoreAPI()
.usingAuthUser()
.getSitesMembershipInformation()
.assertThat().entriesListIsEmpty();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST);
restClient.assertLastError().containsSummary(RestErrorModel.ONLY_POSITIVE_VALUES_MAXITEMS);
restClient.withParams("maxItems=test")
.withCoreAPI()
.usingAuthUser()
.getSitesMembershipInformation()
.assertThat().entriesListIsEmpty();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST);
restClient.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "test"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify if get site membership information request returns status code 200 for valid maxItems parameter")
public void getSiteMembershipInformationRequestReturns200ForValidMaxItemsParameter() throws Exception
{
restClient.authenticateUser(userModel)
.withParams("maxItems=5")
.withCoreAPI()
.usingAuthUser()
.getSitesMembershipInformation()
.assertThat().entriesListIsNotEmpty()
.getPagination().assertThat().field("maxItems").is("5");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify if get site membership information request returns status code 400 when invalid skipCount parameter is used")
public void getSiteMembershipInformationRequestReturns400ForInvalidSkipCountParameter() throws Exception
{
restClient.authenticateUser(userModel)
.withParams("skipCount=-1")
.withCoreAPI()
.usingAuthUser()
.getSitesMembershipInformation()
.assertThat().entriesListIsEmpty();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST);
restClient.assertLastError().containsSummary(RestErrorModel.NEGATIVE_VALUES_SKIPCOUNT);
restClient.withParams("skipCount=test")
.withCoreAPI()
.usingAuthUser()
.getSitesMembershipInformation()
.assertThat().entriesListIsEmpty();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST);
restClient.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "test"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify if get site membership information request returns status code 200 for valid skipCount parameter")
public void getSiteMembershipInformationRequestReturns200ForValidSkipCountParameter() throws Exception
{
restClient.authenticateUser(userModel)
.withParams("skipCount=1")
.withCoreAPI()
.usingAuthUser()
.getSitesMembershipInformation()
.assertThat().entriesListIsNotEmpty()
.getPagination().assertThat().field("skipCount").is("1");
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify site manager is able to retrieve public sites")
public void siteManagerCheckThatPublicSitesAreRetrieved() throws Exception
{
restClient.authenticateUser(userModel)
.withCoreAPI()
.usingAuthUser()
.getSitesMembershipInformation()
.assertThat().entriesListContains("id", publicSiteModel.getId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify site manager is able to retrieve moderated sites")
public void siteManagerCheckThatModeratedSitesAreRetrieved() throws Exception
{
restClient.authenticateUser(userModel)
.withCoreAPI()
.usingAuthUser()
.getSitesMembershipInformation()
.assertThat().entriesListContains("id", moderatedSiteModel.getId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify site manager is able to retrieve private sites")
public void siteManagerCheckThatPrivateSitesAreRetrieved() throws Exception
{
restClient.authenticateUser(userModel)
.withCoreAPI()
.usingAuthUser()
.getSitesMembershipInformation()
.assertThat().entriesListContains("id", privateSiteModel.getId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE }, executionType = ExecutionType.REGRESSION,
description = "Verify site member is able to leave site")
public void siteMemberIsAbleToLeaveSite() throws Exception
{
restClient.authenticateUser(leaveSiteUserModel).withCoreAPI().usingAuthUser().deleteSiteMember(publicSiteModel);
restClient.authenticateUser(leaveSiteUserModel)
.withCoreAPI()
.usingAuthUser()
.getSitesMembershipInformation()
.assertThat().entriesListIsEmpty();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}
@@ -0,0 +1,165 @@
package org.alfresco.rest.people;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
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.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 getSiteMembershipRequests (get /people/{personId}/site-membership-requests) RestAPI call
*
* @author Bogdan Bocancea
*/
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public class GetSiteMembershipRequestCoreTests extends RestTest
{
UserModel userModel;
SiteModel siteModel;
UserModel newMember;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
userModel = dataUser.createRandomTestUser();
siteModel = dataSite.usingUser(userModel).createModeratedRandomSite();
newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingAuthUser().addSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
}
@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)")
public void unauthorizedContributorUserFailsToGetSiteMembershipRequests() throws Exception
{
UserModel contributor = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(userModel).addUserToSite(contributor, siteModel, UserRole.SiteContributor);
contributor.setPassword("newpassword");
restClient.authenticateUser(contributor)
.withCoreAPI()
.usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify collaborator user fails to get all site membership requests of a specific person with Rest API when the authentication fails (401)")
public void unauthorizedCollaboratorUserFailsToGetSiteMembershipRequests() throws Exception
{
UserModel collaborator = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(userModel).addUserToSite(collaborator, siteModel, UserRole.SiteContributor);
collaborator.setPassword("newpassword");
restClient.authenticateUser(collaborator)
.withCoreAPI()
.usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify consumer user fails to get all site membership requests of a specific person with Rest API when the authentication fails (401)")
public void unauthorizedConsumerUserFailsToGetSiteMembershipRequests() throws Exception
{
UserModel consumer = dataUser.usingAdmin().createRandomTestUser();
dataUser.usingUser(userModel).addUserToSite(consumer, siteModel, UserRole.SiteContributor);
consumer.setPassword("newpassword");
restClient.authenticateUser(consumer)
.withCoreAPI()
.usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify a user gets all its own site membership requests using '-me-' with Rest API and response is successful (200)")
public void usingMeGetSiteMembershipRequestsWithSuccess() throws Exception
{
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingMe().getSiteMembershipRequest(siteModel)
.assertThat().field("id").is(siteModel.getId());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify site manager can't get site membership requests for inexistent user and response is not found (404)")
public void siteManagerCantGetSiteMembershipRequestsInexistentUser() throws Exception
{
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingUser(UserModel.getRandomUserModel()).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, ""));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify user can get site membership requests on site with no requests and response is successful (200)")
public void userCantGetSiteMembershipRequestsWithNoRequests() throws Exception
{
UserModel noRequestUser = dataUser.createRandomTestUser();
restClient.authenticateUser(noRequestUser)
.withCoreAPI()
.usingMe().getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, noRequestUser.getUsername(), siteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify site manager can't get site membership requests on public site and response is not found (404)")
public void siteManagerCantGetPublicSiteMembershipRequests() throws Exception
{
UserModel publicUser = dataUser.createRandomTestUser();
SiteModel publicSite = dataSite.usingUser(userModel).createPublicRandomSite();
restClient.authenticateUser(publicUser)
.withCoreAPI()
.usingAuthUser().addSiteMembershipRequest(publicSite);
restClient.authenticateUser(userModel)
.withCoreAPI()
.usingUser(publicUser).getSiteMembershipRequest(publicSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, publicUser.getUsername(), publicSite.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify site manager can't get site membership requests on private site and response is not found (404)")
public void siteManagerCantGetPrivateSiteMembershipRequests() throws Exception
{
UserModel privateUser = dataUser.createRandomTestUser();
SiteModel privateSite = dataSite.usingUser(userModel).createPrivateRandomSite();
restClient.authenticateUser(privateUser)
.withCoreAPI()
.usingAuthUser().addSiteMembershipRequest(privateSite);
restClient.authenticateUser(userModel)
.withCoreAPI()
.usingUser(privateUser).getSiteMembershipRequest(privateSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, privateUser.getUsername(), privateSite.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION,
description = "Verify site manager can't get site membership requests for inexistent site and response is not found (404)")
public void siteManagerCantGetSiteMembershipRequestsForInexistentSite() throws Exception
{
SiteModel inexistentSite = SiteModel.getRandomSiteModel();
restClient.authenticateUser(userModel)
.withCoreAPI()
.usingMe().getSiteMembershipRequest(inexistentSite);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, userModel.getUsername(), inexistentSite.getId()));
}
}
@@ -8,6 +8,7 @@ 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.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -128,6 +129,6 @@ public class GetSiteMembershipRequestSanityTests extends RestTest
.addSiteMembershipRequest(siteModel);
restClient.withCoreAPI().usingUser(newMember).getSiteMembershipRequest(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -124,11 +124,10 @@ public class GetSiteMembershipRequestsSanityTests extends RestTest
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.OK);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -6,6 +6,7 @@ import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.exception.DataPreparationException;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -115,6 +116,6 @@ public class GetSiteMembershipSanityTests extends RestTest
.withCoreAPI()
.usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.getSiteMembership(siteModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -6,6 +6,7 @@ import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.exception.DataPreparationException;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -116,6 +117,6 @@ public class GetSitesMembershipInformationSanityTests extends RestTest
.withCoreAPI()
.usingUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.getSitesMembershipInformation();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -0,0 +1,167 @@
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.utility.exception.DataPreparationException;
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.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@Test(groups = { TestGroup.REST_API, TestGroup.PEOPLE, TestGroup.CORE })
public class UpdateSiteMembershipRequestCoreTests extends RestTest
{
private SiteModel siteModel;
private UserModel managerUser;
private String updatedMessage;
private RestSiteMembershipRequestModel returnedResponse;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws DataPreparationException
{
managerUser = dataUser.createRandomTestUser();
siteModel = dataSite.usingUser(managerUser).createModeratedRandomSite();
updatedMessage = "Please review my request";
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION, description = "Verify unauthorized user is not able to update user site membership request")
public void unauthorizedUserIsNotAbleToUpdateSiteMembershipRequest() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingAuthUser()
.addSiteMembershipRequest(siteModel);
newMember.setPassword("fakePass");
restClient.withCoreAPI()
.usingUser(newMember).updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED)
.assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION, description = "Verify user is able to update its own site membership request using -me-")
public void usingMeUpdateSiteMembershipRequest() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingAuthUser()
.addSiteMembershipRequest(siteModel);
returnedResponse = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedResponse.assertMembershipRequestMessageIs(updatedMessage)
.and().field("id").is(siteModel.getId())
.and().field("modifiedAt").isNotEmpty();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION, description = "Verify inexistent user is not able to update its own site membership request")
public void inexistentUserCannotUpdateSiteMembershipRequest() throws Exception
{
UserModel inexistentUser = UserModel.getRandomUserModel();
restClient.authenticateUser(managerUser)
.withCoreAPI().usingUser(inexistentUser)
.updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUser.getUsername()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION, description = "Verify user is not able to update its own site membership request for inexistent site")
public void userCannotUpdateSiteMembershipRequestForInexistentSite() throws Exception
{
SiteModel randomSite = SiteModel.getRandomSiteModel();
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember).withCoreAPI()
.usingMe()
.updateSiteMembershipRequest(randomSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), randomSite.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION, description = "Verify user is able not to update its own site membership request for public site")
public void userCannotUpdateSiteMembershipRequestForPublicSite() throws Exception
{
SiteModel publicSite = dataSite.usingUser(managerUser).createPublicRandomSite();
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingAuthUser()
.addSiteMembershipRequest(publicSite);
restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(publicSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), publicSite.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION, description = "Verify user is not able to update its own site membership request for private site")
public void userCannotUpdateSiteMembershipRequestForPrivateSite() throws Exception
{
SiteModel privateSite = dataSite.usingUser(managerUser).createPrivateRandomSite();
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingAuthUser()
.addSiteMembershipRequest(privateSite);
restClient.withCoreAPI().usingMe()
.updateSiteMembershipRequest(privateSite, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, newMember.getUsername(), privateSite.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION, description = "Verify user is able to update its own site membership request with initial message")
public void userCanUpdateSiteMembershipRequestWithInitialMessage() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingAuthUser()
.addSiteMembershipRequest(updatedMessage, siteModel, "Accept me");
returnedResponse = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedResponse.assertMembershipRequestMessageIs(updatedMessage)
.and().field("id").is(siteModel.getId())
.and().field("modifiedAt").isNotEmpty();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION, description = "Verify user is able to update its own site membership request with different message")
public void userCanUpdateSiteMembershipRequestWithDifferentMessage() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingAuthUser()
.addSiteMembershipRequest("", siteModel, "Accept me");
returnedResponse = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedResponse.assertMembershipRequestMessageIs(updatedMessage)
.and().field("id").is(siteModel.getId())
.and().field("modifiedAt").isNotEmpty();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
executionType = ExecutionType.REGRESSION, description = "Verify modifiedAt field for update siteMembership request call")
public void verifyModifiedAtForUpdateSiteMembershipRequest() throws Exception
{
UserModel newMember = dataUser.createRandomTestUser();
restClient.authenticateUser(newMember)
.withCoreAPI()
.usingAuthUser()
.addSiteMembershipRequest(siteModel);
String firstModifiedAt = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(siteModel, "first message").getModifiedAt();
String secondModifiedAt = restClient.withCoreAPI().usingMe().updateSiteMembershipRequest(siteModel, "second message").getModifiedAt();
Assert.assertNotEquals(firstModifiedAt, secondModifiedAt);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}
@@ -2,13 +2,13 @@ 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.DataSite;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.data.RandomData;
import org.alfresco.utility.exception.DataPreparationException;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
@@ -80,7 +80,7 @@ public class UpdateSiteMembershipRequestSanityTests extends RestTest
.usingUser(newMember).updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -101,7 +101,7 @@ public class UpdateSiteMembershipRequestSanityTests extends RestTest
.updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -120,7 +120,7 @@ public class UpdateSiteMembershipRequestSanityTests extends RestTest
.usingUser(newMember).updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -141,7 +141,7 @@ public class UpdateSiteMembershipRequestSanityTests extends RestTest
.updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -163,7 +163,7 @@ public class UpdateSiteMembershipRequestSanityTests extends RestTest
.updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PEOPLE },
@@ -184,6 +184,6 @@ public class UpdateSiteMembershipRequestSanityTests extends RestTest
.updateSiteMembershipRequest(siteModel, updatedMessage);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
}
@@ -3,12 +3,12 @@ package org.alfresco.rest.ratings;
import org.alfresco.dataprep.CMISUtil.DocumentType;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestCommentModel;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestRatingModel;
import org.alfresco.rest.model.RestTagModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.exception.DataPreparationException;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.FolderModel;
import org.alfresco.utility.model.LinkModel;
@@ -58,7 +58,7 @@ public class AddRatingCoreTests extends RestTest
public void unknownRatingSchemeReturnsBadRequest() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).addInvalidRating("{\"id\":\"invalidRate\"}");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(ErrorModel.INVALID_RATING, "invalidRate"));
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.INVALID_RATING, "invalidRate"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.REGRESSION,
@@ -67,7 +67,7 @@ public class AddRatingCoreTests extends RestTest
{
document.setNodeRef(RandomStringUtils.randomAlphanumeric(10));
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).likeDocument();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, document.getNodeRef()));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, document.getNodeRef()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.REGRESSION,
@@ -162,7 +162,7 @@ public class AddRatingCoreTests extends RestTest
public void addRateUsingEmptyRatingObject() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).addInvalidRating("");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(ErrorModel.NO_CONTENT,
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.NO_CONTENT,
"No content to map to Object due to end of input"));
}
@@ -171,7 +171,7 @@ public class AddRatingCoreTests extends RestTest
public void addRateUsingEmptyValueForId() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).addInvalidRating("{\"id\":\"\"}");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(ErrorModel.NO_CONTENT,
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.NO_CONTENT,
"N/A (through reference chain: org.alfresco.rest.api.model.NodeRating[\"id\"])"));
}
@@ -180,10 +180,10 @@ public class AddRatingCoreTests extends RestTest
public void addRateUsingEmptyValueForMyRating() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).addInvalidRating("{\"id\":\"likes\", \"myRating\":\"\"}");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(ErrorModel.NULL_LIKE_RATING));
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.NULL_LIKE_RATING));
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).addInvalidRating("{\"id\":\"fiveStar\", \"myRating\":\"\"}");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(ErrorModel.NULL_FIVESTAR_RATING));
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.NULL_FIVESTAR_RATING));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.REGRESSION,
@@ -194,10 +194,10 @@ public class AddRatingCoreTests extends RestTest
document.setNodeRef(comment.getId());
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).likeDocument();
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(String.format(ErrorModel.CANNOT_RATE));
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(String.format(RestErrorModel.CANNOT_RATE));
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).rateStarsToDocument(5);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(String.format(ErrorModel.CANNOT_RATE));
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(String.format(RestErrorModel.CANNOT_RATE));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.REGRESSION,
@@ -208,10 +208,10 @@ public class AddRatingCoreTests extends RestTest
document.setNodeRef(tag.getId());
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).likeDocument();
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(String.format(ErrorModel.CANNOT_RATE));
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(String.format(RestErrorModel.CANNOT_RATE));
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).rateStarsToDocument(5);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(String.format(ErrorModel.CANNOT_RATE));
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(String.format(RestErrorModel.CANNOT_RATE));
}
}
@@ -6,11 +6,7 @@ import org.alfresco.rest.model.RestRatingModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.exception.DataPreparationException;
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.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
@@ -117,7 +113,7 @@ public class AddRatingSanityTests extends RestTest
public void unauthenticatedUserIsNotAbleToLikeDocument() throws Exception
{
restClient.authenticateUser(new UserModel("random user", "random password")).withCoreAPI().usingResource(document).likeDocument();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -173,7 +169,7 @@ public class AddRatingSanityTests extends RestTest
restClient.assertStatusCodeIs(HttpStatus.CREATED);
returnedRatingModel.assertThat().field("myRating").is(String.valueOf(3))
.and().field("id").is("fiveStar")
.and().field("aggregate").isNotEmpty();;
.and().field("aggregate").isNotEmpty();
}
@TestRail(section = { TestGroup.REST_API,
@@ -182,6 +178,6 @@ public class AddRatingSanityTests extends RestTest
public void unauthenticatedUserIsNotAbleToRateStarsToDocument() throws Exception
{
restClient.authenticateUser(new UserModel("random user", "random password")).withCoreAPI().usingResource(document).rateStarsToDocument(5);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -0,0 +1,140 @@
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;
import org.alfresco.utility.exception.DataPreparationException;
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.BeforeMethod;
import org.testng.annotations.Test;
@Test(groups = { TestGroup.REST_API, TestGroup.RATINGS, TestGroup.CORE })
public class DeleteRatingCoreTests extends RestTest
{
private SiteModel siteModel;
private UserModel adminUser;
private FolderModel folderModel;
private FileModel document;
private ListUserWithRoles usersWithRoles;
private RestRatingModel returnedRatingModel;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUser).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel,
UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
}
@BeforeMethod()
public void setUp() throws DataPreparationException, Exception {
folderModel = dataContent.usingUser(adminUser).usingSite(siteModel).createFolder();
document = dataContent.usingUser(adminUser).usingResource(folderModel).createContent(DocumentType.TEXT_PLAIN);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that if ratingId provided is unknown status code returned is 400")
public void deleteInvalidRating() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).deleteInvalidRating("random_rating");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.INVALID_RATING, "random_rating"));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that if nodeId does not exist status code returned is 404")
public void deleteRatingUsingInvalidDocument() throws Exception
{
document.setNodeRef("random_value");
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).deleteLikeRating();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "random_value"));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.REGRESSION,
description = "Delete rating stars for a document that was not rated")
@Bug(id = "MNT-17181")
public void deleteStarsForANotRatedDocument() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).deleteFiveStarRating();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.REGRESSION,
description = "Delete like rating for a document that was not liked")
@Bug(id = "MNT-17181")
public void deleteLikeForANotLikedDocument() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).deleteLikeRating();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.REGRESSION,
description = "Delete like for a file then add it again")
public void likeDocumentAfterLikeRatingIsDeleted() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI().usingResource(document).likeDocument();
restClient.withCoreAPI().usingResource(document).deleteLikeRating();
returnedRatingModel = restClient.withCoreAPI().usingResource(document).likeDocument();
restClient.assertStatusCodeIs(HttpStatus.CREATED);
returnedRatingModel.assertThat().field("myRating").is("true")
.and().field("id").is("likes")
.and().field("aggregate").isNotEmpty();
}
@TestRail(section = {TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.REGRESSION,
description = "Delete stars for a file then add them again")
public void addStarsToDocumentAfterRatingIsDeleted() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingResource(document).rateStarsToDocument(5);
restClient.withCoreAPI().usingResource(document).deleteFiveStarRating();
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
returnedRatingModel = restClient.withCoreAPI().usingResource(document).rateStarsToDocument(5);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
returnedRatingModel.assertThat().field("myRating").is("5")
.and().field("id").is("fiveStar")
.and().field("aggregate").isNotEmpty();
}
@TestRail(section = {TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.REGRESSION,
description = "Delete rating of a document using site manager")
public void deleteDocumentRatingUsingManager() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingResource(document).rateStarsToDocument(5);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingResource(document).likeDocument();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingResource(document).deleteFiveStarRating();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager)).withCoreAPI().usingResource(document).deleteLikeRating();
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingResource(document).getRatings().assertNodeIsLiked().assertNodeHasFiveStarRating();
}
@TestRail(section = {TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.REGRESSION,
description = "One user is not able to delete like of another user")
public void deleteLikeOfAnotherUser() throws Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor)).withCoreAPI().usingResource(document).likeDocument();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator)).withCoreAPI().usingResource(document).deleteLikeRating();
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingResource(document).getRatings().assertNodeIsLiked();
}
}
@@ -6,11 +6,7 @@ import org.alfresco.rest.model.RestRatingModelsCollection;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.exception.DataPreparationException;
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.model.*;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
@@ -160,8 +156,9 @@ public class DeleteRatingSanityTests extends RestTest
.assertNodeHasNoFiveStarRating()
.and().entriesListIsNotEmpty()
.and().paginationExist();
}
}
@Bug(id = "MNT-16904")
@TestRail(section = {TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.SANITY,
description = "Verify unauthenticated user is not able to remove its own rating of a document")
public void unauthenticatedUserIsNotAbleToDeleteRatings() throws Exception
@@ -175,10 +172,10 @@ public class DeleteRatingSanityTests extends RestTest
restClient.authenticateUser(new UserModel("random user", "random password"));
restClient.withCoreAPI().usingResource(document).deleteLikeRating();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
restClient.withCoreAPI().usingResource(document).deleteFiveStarRating();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.SANITY,
@@ -197,9 +194,9 @@ public class DeleteRatingSanityTests extends RestTest
restClient.authenticateUser(userB);
restClient.authenticateUser(userB).withCoreAPI().usingResource(document).deleteLikeRating();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
restClient.withCoreAPI().usingResource(document).deleteFiveStarRating();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -2,11 +2,11 @@ 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;
import org.alfresco.utility.exception.DataPreparationException;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.FolderModel;
import org.alfresco.utility.model.SiteModel;
@@ -150,9 +150,9 @@ public class GetRatingSanityTests extends RestTest
restClient.authenticateUser(new UserModel("random user", "random password"));
restClient.withCoreAPI().usingResource(document).getLikeRating();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(ErrorModel.AUTHENTICATION_FAILED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
restClient.withCoreAPI().usingResource(document).getFiveStarRating();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(ErrorModel.AUTHENTICATION_FAILED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -2,9 +2,9 @@ package org.alfresco.rest.ratings;
import org.alfresco.dataprep.CMISUtil;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestRatingModel;
import org.alfresco.utility.exception.DataPreparationException;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
@@ -66,7 +66,7 @@ public class GetRatingsCoreTests extends RestTest {
.likeDocument();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError()
.containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, document.getNodeRef()));
.containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, document.getNodeRef()));
}
@TestRail(section = { TestGroup.REST_API,
@@ -2,17 +2,16 @@ 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;
import org.alfresco.utility.exception.DataPreparationException;
import org.alfresco.utility.model.ErrorModel;
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;
@@ -120,7 +119,6 @@ public class GetRatingsSanityTests extends RestTest
@TestRail(section = {TestGroup.REST_API, TestGroup.RATINGS }, executionType = ExecutionType.SANITY,
description = "Verify unauthenticated user is not able to retrieve document ratings")
@Bug(id = "MNT-16904")
public void unauthenticatedUserIsNotAbleToRetrieveRatings() throws Exception
{
restClient.authenticateUser(adminUser);
@@ -130,6 +128,6 @@ public class GetRatingsSanityTests extends RestTest
restClient.authenticateUser(new UserModel("random user", "random password"));
restClient.withCoreAPI().usingResource(document).getRatings();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(ErrorModel.AUTHENTICATION_FAILED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -4,6 +4,7 @@ import org.alfresco.rest.RestTest;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -105,6 +106,6 @@ 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);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -5,6 +5,7 @@ import org.alfresco.rest.model.RestSiteContainerModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -108,6 +109,6 @@ public class GetSiteContainerSanityTests extends RestTest
dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager);
restClient.authenticateUser(userModel)
.withCoreAPI().usingSite(siteModel).getSiteContainer(siteContainerModel.onModel());
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -0,0 +1,209 @@
package org.alfresco.rest.sites;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.constants.ContainerName;
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.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public class GetSiteContainersCoreTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel publicSiteModel, publicSiteWithContainers;
private SiteModel moderatedSiteModel, privateSiteModel;
private ListUserWithRoles publicSiteUsers;
private ListUserWithRoles publicSiteWithContainersUsers;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
publicSiteModel = dataSite.usingAdmin().createPublicRandomSite();
publicSiteWithContainers = dataSite.usingAdmin().createPublicRandomSite();
moderatedSiteModel = dataSite.usingAdmin().createModeratedRandomSite();
privateSiteModel = dataSite.usingAdmin().createPrivateRandomSite();
publicSiteUsers = dataUser
.addUsersWithRolesToSite(publicSiteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
publicSiteWithContainersUsers = dataUser
.addUsersWithRolesToSite(publicSiteWithContainers, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
dataLink.usingAdmin().usingSite(publicSiteWithContainers).createRandomLink();
dataDiscussion.usingAdmin().usingSite(publicSiteWithContainers).createRandomDiscussion();
dataLink.usingAdmin().usingSite(moderatedSiteModel).createRandomLink();
dataDiscussion.usingAdmin().usingSite(moderatedSiteModel).createRandomDiscussion();
dataLink.usingAdmin().usingSite(privateSiteModel).createRandomLink();
dataDiscussion.usingAdmin().usingSite(privateSiteModel).createRandomDiscussion();
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 200 with valid maxItems parameter")
public void getContainersWithValidMaxItems() throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteManager))
.withParams("maxItems=5")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3)
.and().entriesListContains("folderId" ,ContainerName.documentLibrary.toString())
.and().entriesListContains("folderId", ContainerName.links.toString())
.and().entriesListContains("folderId", ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.withParams("maxItems=1")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(1);
restClient.withParams("maxItems=3")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(1)
.and().entriesListContains("folderId", ContainerName.documentLibrary.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 400 when invalid maxItems parameter is used")
public void getContainersWithMaxItemsZero () throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteManager))
.withParams("maxItems=0")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary("Only positive values supported for maxItems");
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 400 when invalid maxItems parameter is used")
public void getContainersWithMaxItemsCharacter () throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withParams("maxItems=test")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "test"));
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 200 when maxItems parameter starts with multiple zero")
public void getContainersWithMaxItemsMultipleZero () throws Exception
{
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withParams("maxItems=000007")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 200 when valid skipCount parameter is used")
public void getSitesWithValidSkipCount() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteManager)).withParams("skipCount=1")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(0);
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("skipCount=1")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(2);
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteConsumer)).withParams("skipCount=2")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(1);
restClient.assertStatusCodeIs(HttpStatus.OK);
restClient.authenticateUser(publicSiteWithContainersUsers.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("skipCount=0")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 400 when invalid skipCount parameter is used")
public void getSitesWithSkipCountCharacter() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("skipCount=abc")
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "abc"));
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 200 when skipCount parameter starts with multiple zero")
public void getSitesWithSkipCountMultipleZero() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator)).withParams("skipCount=00002")
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(1);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if get site container request returns status code 400 when invalid skipCount parameter is used")
public void getSiteContainerWithNonExistentSite() throws Exception
{
restClient.authenticateUser(publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator))
.withCoreAPI().usingSite("NonExistentSiteId").getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "NonExistentSiteId"));
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site container request returns status 200 for private site")
public void getSiteContainerForPrivateSite() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(privateSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(3);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site container request returns status 200 for moderated site")
public void getSiteContainerForModeratedSite() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(moderatedSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(3);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site container request returns status 200 for several containers")
public void getSiteContainerForSeveralItems() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(publicSiteWithContainers).getSiteContainers()
.assertThat().entriesListCountIs(3)
.and().entriesListContains("folderId" ,ContainerName.documentLibrary.toString())
.and().entriesListContains("folderId", ContainerName.links.toString())
.and().entriesListContains("folderId", ContainerName.discussions.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site container request returns status 200 for one container")
public void getSiteContainerWithOneItem() throws Exception
{
restClient.authenticateUser(adminUserModel)
.withCoreAPI().usingSite(publicSiteModel).getSiteContainers()
.assertThat().entriesListCountIs(1)
.and().entriesListContains("folderId" ,ContainerName.documentLibrary.toString());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}
@@ -7,6 +7,7 @@ import org.alfresco.utility.data.DataSite;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -112,6 +113,6 @@ public class GetSiteContainersSanityTests extends RestTest
dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager);
restClient.authenticateUser(userModel)
.withCoreAPI().usingSite(siteModel).getSiteContainers();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -2,10 +2,10 @@ package org.alfresco.rest.sites;
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.ErrorModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
@@ -44,7 +44,7 @@ public class GetSiteCoreTests extends RestTest
restClient.authenticateUser(userModel).withCoreAPI()
.usingSite("NonExistentSiteId").getSite();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, "NonExistentSiteId"));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "NonExistentSiteId"));
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
@@ -107,7 +107,7 @@ public class GetSiteCoreTests extends RestTest
restSiteModel = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(privateSite).getSite();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, privateSite.getTitle()));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, privateSite.getTitle()));
}
}
@@ -0,0 +1,166 @@
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;
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
*
*/
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public class GetSiteMemberCoreTests extends RestTest
{
private UserModel adminUser;
private SiteModel siteModel;
private ListUserWithRoles usersWithRoles;
private UserModel manager, consumer, collaborator, contributor;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUser = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUser).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
consumer = dataUser.createRandomTestUser();
dataUser.addUserToSite(consumer, siteModel, UserRole.SiteConsumer);
manager = usersWithRoles.getOneUserWithRole(UserRole.SiteManager);
collaborator = usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator);
contributor = usersWithRoles.getOneUserWithRole(UserRole.SiteContributor);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role doesn't get a site member of inexistent site and status code is Not Found (404)")
public void getSiteMemberOfInexistentSite() throws Exception
{
SiteModel invalidSite = new SiteModel("invalidSite");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(invalidSite).getSiteMember(consumer);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, consumer.getUsername(), invalidSite.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role doesn't get non site member of inexistent site and status code is Not Found (404)")
public void getSiteMemberForNonSiteMember() throws Exception
{
UserModel nonMember = dataUser.createRandomTestUser();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(nonMember);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, nonMember.getUsername(), siteModel.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role doesn't get not existing site member and status code is Not Found (404)")
public void getSiteMemberForInexistentSiteMember() throws Exception
{
UserModel inexistentUser = new UserModel("inexistentUser", "password");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(inexistentUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUser.getUsername()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role can get site member using \"-me-\" in place of personId")
public void getSiteMemberUsingMeForPersonId() throws Exception
{
UserModel manager = dataUser.createRandomTestUser();
dataUser.addUserToSite(manager, siteModel, UserRole.SiteManager);
UserModel meUser = new UserModel("-me-", "password");
restClient.authenticateUser(manager);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(meUser)
.assertThat().field("id").is(manager.getUsername())
.and().field("role").is(manager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role can get site member for empty siteId")
public void getSiteMemberForEmptySiteId() throws Exception
{
SiteModel emptySite = new SiteModel("");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(emptySite).getSiteMember(consumer);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, consumer.getUsername(), emptySite.getId()));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Manager role gets site member with Manager role and status code is OK (200)")
public void getSiteManagerMemberWithManagerRole() throws Exception
{
UserModel anotherManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(anotherManager, siteModel, UserRole.SiteManager);
restClient.authenticateUser(manager);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(anotherManager)
.assertThat().field("id").is(anotherManager.getUsername())
.and().field("role").is(anotherManager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Collaborator role gets site member with Manager role and status code is OK (200)")
public void getSiteManagerMemberWithCollaboratorRole() throws Exception
{
restClient.authenticateUser(collaborator);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(manager)
.assertThat().field("id").is(manager.getUsername())
.and().field("role").is(manager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Consumer role gets site member with Manager role and status code is OK (200)")
public void getSiteManagerMemberWithConsumerRole() throws Exception
{
restClient.authenticateUser(consumer);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(manager)
.assertThat().field("id").is(manager.getUsername())
.and().field("role").is(manager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets site member with Manager role and status code is OK (200)")
public void getSiteManagerMemberWithContributorRole() throws Exception
{
restClient.authenticateUser(contributor);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(manager)
.assertThat().field("id").is(manager.getUsername())
.and().field("role").is(manager.getUserRole());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify user with Contributor role gets admin site member and status code is OK (200)")
public void getSiteAdminManagerMember() throws Exception
{
restClient.authenticateUser(contributor);
restClient.withCoreAPI().usingSite(siteModel).getSiteMember(adminUser)
.assertThat().field("id").is(adminUser.getUsername())
.and().field("role").is(UserRole.SiteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}
@@ -6,6 +6,7 @@ import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.exception.DataPreparationException;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -100,6 +101,6 @@ 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);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -0,0 +1,139 @@
package org.alfresco.rest.sites;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMemberModelsCollection;
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.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 11/23/2016.
*/
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public class GetSiteMembersCoreTests extends RestTest
{
private UserModel userModel, publicSiteContributor, privateSiteConsumer, moderatedSiteManager, admin;
private SiteModel publicSite, privateSite, moderatedSite, moderatedSite2;
private RestSiteMemberModelsCollection siteMembers;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
admin = dataUser.getAdminUser();
userModel = dataUser.createRandomTestUser();
publicSiteContributor = dataUser.createRandomTestUser();
moderatedSiteManager = dataUser.createRandomTestUser();
privateSiteConsumer = dataUser.createRandomTestUser();
publicSite = dataSite.usingAdmin().createPublicRandomSite();
privateSite = dataSite.usingAdmin().createPrivateRandomSite();
moderatedSite = dataSite.usingAdmin().createModeratedRandomSite();
moderatedSite2 = dataSite.usingAdmin().createModeratedRandomSite();
dataUser.addUserToSite(publicSiteContributor, publicSite, UserRole.SiteContributor);
dataUser.addUserToSite(moderatedSiteManager, moderatedSite, UserRole.SiteManager);
dataUser.addUserToSite(privateSiteConsumer, privateSite, UserRole.SiteConsumer);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site members call returns status code 404 if siteId does not exist")
public void checkStatusCodeForNonExistentSiteId() throws Exception
{
restClient.authenticateUser(publicSiteContributor).withCoreAPI()
.usingSite("NonExistentSiteId").getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "NonExistentSiteId"));
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site members call returns status code 400 for invalid maxItems")
public void checkStatusCodeForInvalidMaxItems() throws Exception
{
restClient.authenticateUser(publicSiteContributor).withParams("maxItems=0")
.withCoreAPI().usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary("Only positive values supported for maxItems");
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify get site members call returns status code 400 for invalid skipCount ")
public void checkStatusCodeForInvalidSkipCount() throws Exception
{
restClient.authenticateUser(publicSiteContributor).withParams("skipCount=A")
.withCoreAPI().usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary("Invalid paging parameter skipCount:A");
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets public site members and status code is 200")
public void getPublicSiteMembers() throws Exception
{
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(publicSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", admin.getUsername())
.and().entriesListContains("id", publicSiteContributor.getUsername())
.and().paginationField("count").is("2");
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets moderated site members and status code is 200")
public void getModeratedSiteMembers() throws Exception
{
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", admin.getUsername())
.and().entriesListContains("id", moderatedSiteManager.getUsername())
.and().paginationField("count").is("2");
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user gets private site members if he is a member of that site and status code is 200")
public void getPrivateSiteMembersByASiteMember() throws Exception
{
siteMembers = restClient.authenticateUser(privateSiteConsumer).withCoreAPI()
.usingSite(privateSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", admin.getUsername())
.and().entriesListContains("id", privateSiteConsumer.getUsername())
.and().paginationField("count").is("2");
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user doesn't get private site members if he is not a member of that site and status code is 404")
public void getPrivateSiteMembersByNotASiteMember() throws Exception
{
restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(privateSite).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, privateSite.getTitle()));
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if user gets moderated site members after the adding of a new member and status code is 200")
public void getSiteMembersAfterAddingNewMember() throws Exception
{
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite2).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", admin.getUsername())
.and().paginationField("count").is("1");
restClient.authenticateUser(admin).withCoreAPI().usingSite(moderatedSite2).addPerson(privateSiteConsumer);
siteMembers = restClient.authenticateUser(userModel).withCoreAPI()
.usingSite(moderatedSite2).getSiteMembers();
restClient.assertStatusCodeIs(HttpStatus.OK);
siteMembers.assertThat().entriesListContains("id", admin.getUsername())
.and().entriesListContains("id", privateSiteConsumer.getUsername())
.and().paginationField("count").is("2");
}
}
@@ -8,6 +8,7 @@ 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.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -117,6 +118,6 @@ public class GetSiteSanityTests extends RestTest
restClient.authenticateUser(userModel).withParams("maxItems=10000")
.withCoreAPI()
.getSites();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -1,11 +1,12 @@
package org.alfresco.rest.sites;
import java.util.List;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestSiteModel;
import org.alfresco.rest.model.RestSiteModelsCollection;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.RandomData;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
@@ -17,15 +18,13 @@ import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import java.util.List;
/**
* Created by Claudia Agache on 11/22/2016.
*/
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public class GetSitesCoreTests extends RestTest
{
private UserModel userModel, privateSiteManager, privateSiteConsumer;
private UserModel regularUser, privateSiteManager, privateSiteConsumer;
private SiteModel publicSite, privateSite, moderatedSite, deletedSite;
private RestSiteModelsCollection sites;
private SiteModel siteModel;
@@ -33,7 +32,7 @@ public class GetSitesCoreTests extends RestTest
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
userModel = dataUser.createRandomTestUser();
regularUser = dataUser.createRandomTestUser();
privateSiteManager = dataUser.createRandomTestUser();
privateSiteConsumer = dataUser.createRandomTestUser();
siteModel = new SiteModel(RandomData.getRandomName("0-PublicSite"));
@@ -48,27 +47,27 @@ public class GetSitesCoreTests extends RestTest
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify invalid request returns status code 400 for invalid maxItems")
public void checkStatusCodeForInvalidMaxItems() throws Exception
description= "Verify if get sites request returns status code 400 when invalid maxItems parameter is used")
public void getSitesWithInvalidMaxItems() throws Exception
{
restClient.authenticateUser(userModel).withParams("maxItems=0")
restClient.authenticateUser(regularUser).withParams("maxItems=0=09")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary("Only positive values supported for maxItems");
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify invalid request returns status code 400 for invalid skipCount")
public void checkStatusCodeForInvalidSkipCount() throws Exception
description= "Verify if get sites request returns status code 400 when invalid skipCount parameter is used")
public void getSitesWithInvalidSkipCount() throws Exception
{
restClient.authenticateUser(userModel).withParams("skipCount=A")
restClient.authenticateUser(regularUser).withParams("skipCount=A")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary("Invalid paging parameter skipCount:A");
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify User gets sites ordered by name ascendant and status code is 200")
description= "Verify if User gets sites ordered by title ascending and status code is 200")
public void getSitesOrderedByNameASC() throws Exception
{
sites = restClient.authenticateUser(privateSiteManager).withParams("orderBy=title ASC")
@@ -82,10 +81,10 @@ public class GetSitesCoreTests extends RestTest
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if any user gets all public and moderated sites and status code is 200")
public void userGetsOnlyPublicAndModeratedSites() throws Exception
description= "Verify if a regular user gets all public and moderated sites and status code is 200")
public void regularUserGetsOnlyPublicAndModeratedSites() throws Exception
{
sites = restClient.authenticateUser(userModel).withParams("maxItems=5000")
sites = restClient.authenticateUser(regularUser).withParams("maxItems=5000")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListContains("title", publicSite.getTitle())
@@ -95,7 +94,7 @@ public class GetSitesCoreTests extends RestTest
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if a member of a private site gets the private site, all public sites and all moderated sites. Verify if status code is 200")
public void userGetsSitesVisibleForHim() throws Exception
public void privateSiteMemberGetsSitesVisibleForHim() throws Exception
{
sites = restClient.authenticateUser(privateSiteConsumer).withParams("maxItems=5000")
.withCoreAPI().getSites();
@@ -109,7 +108,7 @@ public class GetSitesCoreTests extends RestTest
description= "Verify if a site is not retrieved anymore after deletion and status code is 200")
public void checkDeletedSiteIsNotRetrieved() throws Exception
{
sites = restClient.authenticateUser(userModel).withParams("maxItems=5000").withCoreAPI().getSites();
sites = restClient.authenticateUser(regularUser).withParams("maxItems=5000").withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.OK);
sites.assertThat().entriesListContains("title", deletedSite.getTitle());
@@ -3,16 +3,14 @@ package org.alfresco.rest.sites;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataSite;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
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.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@@ -108,6 +106,6 @@ public class GetSitesSanityTests extends RestTest
dataUser.addUserToSite(userModel, siteModel, UserRole.SiteManager);
restClient.authenticateUser(userModel).withParams("maxItems=1000")
.withCoreAPI().getSites();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -0,0 +1,254 @@
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;
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
*
*/
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public class RemoveSiteMemberCoreTests extends RestTest
{
private SiteModel siteModel;
private UserModel adminUserModel;
private ListUserWithRoles usersWithRoles;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws DataPreparationException
{
adminUserModel = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteManager, UserRole.SiteCollaborator,
UserRole.SiteConsumer, UserRole.SiteContributor);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can NOT delete site member for an inexistent user and gets status code 404, 'Not Found'")
public void managerIsNotAbleToDeleteInexistentSiteMember() throws Exception
{
UserModel inexistentUser = new UserModel("inexistentUser", "password");
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(inexistentUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, inexistentUser.getUsername()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can NOT delete site member for a non site member and gets status code 400, 'Bad Request'")
public void managerIsNotAbleToDeleteNotSiteMember() throws Exception
{
UserModel nonMember = dataUser.createRandomTestUser();
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(nonMember);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_ARGUMENT, "argument"));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can NOT delete site member for an invalid site and gets status code 404, 'Not Found'")
public void managerIsNotAbleToDeleteSiteMemberOfInvalidSite() throws Exception
{
SiteModel invalidSite = new SiteModel("invalidSite");
UserModel testUserModel = dataUser.createRandomTestUser();
dataUser.addUserToSite(testUserModel, siteModel, UserRole.SiteConsumer);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(invalidSite).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.RELATIONSHIP_NOT_FOUND, testUserModel.getUsername(), invalidSite.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can delete a site member with manager role")
public void siteManagerIsAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
UserModel anothermanager = dataUser.createRandomTestUser();
dataUser.addUserToSite(anothermanager, siteModel, UserRole.SiteManager);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(siteModel).deleteSiteMember(anothermanager);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", anothermanager.getUsername());
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can delete site member using \"-me-\" in place of personId")
public void managerIsAbleToDeleteSiteMemberUsingMe() throws Exception
{
UserModel manager = dataUser.createRandomTestUser();
dataUser.addUserToSite(manager, siteModel, UserRole.SiteManager);
UserModel meUser = new UserModel("-me-", "password");
restClient.authenticateUser(manager);
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(meUser);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", manager.getUsername());
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site collaborator cannot delete a site member with Manager role and gets status code 422")
public void siteCollaboratorIsNotAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
UserModel managerForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(managerForDelete, siteModel, UserRole.SiteManager);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(managerForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site contributor cannot delete site member with Manager role and gets status code 422")
public void siteContributorIsNotAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
UserModel managerForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(managerForDelete, siteModel, UserRole.SiteManager);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(managerForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site consumer cannot delete site member with Manager role and gets status code 422")
public void siteConsumerIsNotAbleToDeleteSiteMemberWithManagerRole() throws Exception
{
UserModel managerForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(managerForDelete, siteModel, UserRole.SiteManager);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(managerForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site collaborator cannot delete a site member with Contributor role and gets status code 422")
public void siteCollaboratorIsNotAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
UserModel contributorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(contributorForDelete, siteModel, UserRole.SiteContributor);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(contributorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site contributor cannot delete site member with Contributor role and gets status code 422")
public void siteContributorIsNotAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
UserModel contributorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(contributorForDelete, siteModel, UserRole.SiteContributor);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(contributorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site consumer cannot delete site member with Contributor role and gets status code 422")
public void siteConsumerIsNotAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
UserModel contributorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(contributorForDelete, siteModel, UserRole.SiteContributor);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(contributorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can delete a site member with Contributor role")
public void siteManagerIsAbleToDeleteSiteMemberWithContributorRole() throws Exception
{
UserModel contributorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(contributorForDelete, siteModel, UserRole.SiteContributor);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(siteModel).deleteSiteMember(contributorForDelete);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", contributorForDelete.getUsername());
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site collaborator cannot delete a site member with Collaborator role and gets status code 422")
public void siteCollaboratorIsNotAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
UserModel collaboratorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(collaboratorForDelete, siteModel, UserRole.SiteCollaborator);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(collaboratorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site contributor cannot delete site member with Collaborator role and gets status code 422")
public void siteContributorIsNotAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
UserModel collaboratorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(collaboratorForDelete, siteModel, UserRole.SiteCollaborator);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(collaboratorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that site consumer cannot delete site member with Collaborator role and gets status code 422")
public void siteConsumerIsNotAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
UserModel collaboratorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(collaboratorForDelete, siteModel, UserRole.SiteCollaborator);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(collaboratorForDelete);
restClient.assertStatusCodeIs(HttpStatus.UNPROCESSABLE_ENTITY)
.assertLastError().containsSummary(String.format(RestErrorModel.NOT_SUFFICIENT_PERMISSIONS, siteModel.getId()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager can delete a site member with Collaborator role")
public void siteManagerIsAbleToDeleteSiteMemberWithCollaboratorRole() throws Exception
{
UserModel collaboratorForDelete = dataUser.createRandomTestUser();
dataUser.addUserToSite(collaboratorForDelete, siteModel, UserRole.SiteCollaborator);
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager))
.withCoreAPI().usingSite(siteModel).deleteSiteMember(collaboratorForDelete);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withCoreAPI().usingSite(siteModel).getSiteMembers()
.assertThat().entriesListDoesNotContain("id", collaboratorForDelete.getUsername());
}
}
@@ -2,16 +2,15 @@ package org.alfresco.rest.sites;
import org.alfresco.rest.RestTest;
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.StatusModel;
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.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
@@ -23,9 +22,6 @@ import org.testng.annotations.Test;
@Test(groups = {TestGroup.REST_API, TestGroup.SITES, TestGroup.SANITY})
public class RemoveSiteMemberSanityTests extends RestTest
{
@Autowired
DataUser dataUser;
private SiteModel siteModel;
private UserModel adminUserModel;
private ListUserWithRoles usersWithRoles;
@@ -47,7 +43,7 @@ public class RemoveSiteMemberSanityTests extends RestTest
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that site manager can delete site member and gets status code 204, 'No Content'")
public void siteManagerIsAbleToDeleteSiteMember() throws Exception{
public void siteManagerIsAbleToDeleteSiteMemberWithConsumerRole() throws Exception{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
@@ -58,7 +54,7 @@ public class RemoveSiteMemberSanityTests extends RestTest
@Bug(id="ACE-5444")
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that site collaborator cannot delete site member and gets status code 403, 'Forbidden'")
public void siteCollaboratorIsNotAbleToDeleteSiteMember() throws Exception{
public void siteCollaboratorIsNotAbleToDeleteSiteMemberWithConsumerRole() throws Exception{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
@@ -70,7 +66,7 @@ public class RemoveSiteMemberSanityTests extends RestTest
@Bug(id="ACE-5444")
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that site contributor cannot delete site member and gets status code 403, 'Forbidden'")
public void siteContributorIsNotAbleToDeleteSiteMember() throws Exception{
public void siteContributorIsNotAbleToDeleteSiteMemberWithConsumerRole() throws Exception{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingSite(siteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
@@ -82,7 +78,7 @@ public class RemoveSiteMemberSanityTests extends RestTest
@Bug(id="ACE-5444")
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that site consumer cannot delete site member and gets status code 403, 'Forbidden'")
public void siteConsumerIsNotAbleToDeleteSiteMember() throws Exception{
public void siteConsumerIsNotAbleToDeleteSiteMemberWithConsumerRole() throws Exception{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer))
.withCoreAPI().usingSite(siteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN);
@@ -101,7 +97,8 @@ public class RemoveSiteMemberSanityTests extends RestTest
restClient.withCoreAPI().getSites().assertThat().entriesListDoesNotContain("id", testUserModel.getUsername());
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Bug(id="MNT-16904")
@TestRail(section = {TestGroup.REST_API, TestGroup.SITES }, executionType = ExecutionType.SANITY,
description = "Verify that unauthenticated user is not able to delete site member")
public void unauthenticatedUserIsNotAuthorizedToDeleteSiteMember() throws Exception{
@@ -109,6 +106,6 @@ public class RemoveSiteMemberSanityTests extends RestTest
restClient.authenticateUser(inexistentUser)
.withCoreAPI().usingSite(siteModel).deleteSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -0,0 +1,199 @@
package org.alfresco.rest.sites;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.core.JsonBodyGenerator;
import org.alfresco.rest.core.RestRequest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestSiteMemberModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
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.HttpMethod;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
/**
* Created by Claudia Agache on 11/29/2016.
*/
@Test(groups = { TestGroup.REST_API, TestGroup.SITES, TestGroup.CORE })
public class UpdateSiteMemberCoreTests extends RestTest
{
private UserModel adminUser, regularUser, anotherManager;
private SiteModel publicSite;
private ListUserWithRoles publicSiteUsers;
private RestSiteMemberModel updatedMember;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
publicSite = dataSite.usingUser(adminUser).createPublicRandomSite();
publicSiteUsers = dataUser.addUsersWithRolesToSite(publicSite, UserRole.SiteManager, UserRole.SiteCollaborator, UserRole.SiteConsumer,
UserRole.SiteContributor);
anotherManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(anotherManager, publicSite, UserRole.SiteManager);
regularUser = dataUser.createRandomTestUser();
regularUser.setUserRole(UserRole.SiteConsumer);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 404 when nonexistent siteId is used")
public void updateSiteMemberOfNonexistentSite() throws Exception
{
SiteModel deletedSite = dataSite.usingUser(adminUser).createPublicRandomSite();
dataUser.addUserToSite(regularUser, deletedSite, UserRole.SiteConsumer);
dataSite.deleteSite(deletedSite);
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite(deletedSite).updateSiteMember(regularUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, deletedSite.getId()));
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 400 when personId is not member of the site")
public void updateNotASiteMember() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite(publicSite).updateSiteMember(regularUser);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.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")
@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")
public void updateNonexistentSiteMember() throws Exception
{
UserModel nonexistentUser = new UserModel("nonexistentUser", DataUser.PASSWORD);
nonexistentUser.setUserRole(UserRole.SiteContributor);
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite(publicSite).updateSiteMember(nonexistentUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, nonexistentUser.getUsername()));
}
@Bug(id="REPO-1660")
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if a manager is able to downgrade to contributor using -me- string in place of personId.")
public void updateSiteManagerToSiteContributorUsingMe() throws Exception
{
UserModel meManager = dataUser.createRandomTestUser();
dataUser.addUserToSite(meManager, publicSite, UserRole.SiteManager);
UserModel meUser = new UserModel("-me-", "password");
meUser.setUserRole(UserRole.SiteContributor);
updatedMember = restClient.authenticateUser(meManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(meUser);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(meManager.getUsername())
.and().field("role").is(meUser.getUserRole());
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 404 when empty siteId is used")
public void updateSiteMemberUsingEmptySiteId() throws Exception
{
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite("").updateSiteMember(regularUser);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, ""));
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 405 when empty personId is used")
public void updateSiteMemberUsingEmptyPersonId() throws Exception
{
UserModel emptyUser = new UserModel("", DataUser.PASSWORD);
emptyUser.setUserRole(UserRole.SiteCollaborator);
restClient.authenticateUser(adminUser).withCoreAPI()
.usingSite(publicSite).updateSiteMember(emptyUser);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED)
.assertLastError().containsSummary(RestErrorModel.PUT_EMPTY_ARGUMENT);
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if update site member request returns status code 400 when invalid role is used")
public void updateSiteMemberUsingInvalidRole() throws Exception
{
restClient.authenticateUser(anotherManager).withCoreAPI();
UserModel siteConsumer = publicSiteUsers.getOneUserWithRole(UserRole.SiteConsumer);
String json = JsonBodyGenerator.keyValueJson("role","invalidRole");
RestRequest request = RestRequest.requestWithBody(HttpMethod.PUT, json, "sites/{siteId}/members/{personId}", publicSite.getId(), siteConsumer.getUsername());
restClient.processModel(RestSiteMemberModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.UNKNOWN_ROLE, "invalidRole"));
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update another site manager to site collaborator")
public void managerUpdateSiteManagerToSiteCollaborator() throws Exception
{
UserModel siteManager = publicSiteUsers.getOneUserWithRole(UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteCollaborator);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername())
.and().field("role").is(siteManager.getUserRole());
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site contributor to site manager")
public void managerUpdateSiteContributorToSiteManager() throws Exception
{
UserModel siteContributor = publicSiteUsers.getOneUserWithRole(UserRole.SiteContributor);
siteContributor.setUserRole(UserRole.SiteManager);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteContributor);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteContributor.getUsername())
.and().field("role").is(siteContributor.getUserRole());
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site collaborator to site manager")
public void managerUpdateSiteCollaboratorToSiteManager() throws Exception
{
UserModel siteCollaborator = publicSiteUsers.getOneUserWithRole(UserRole.SiteCollaborator);
siteCollaborator.setUserRole(UserRole.SiteManager);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteCollaborator);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteCollaborator.getUsername())
.and().field("role").is(siteCollaborator.getUserRole());
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to update site consumer to site manager")
public void managerUpdateSiteConsumerToSiteManager() throws Exception
{
UserModel siteConsumer = publicSiteUsers.getOneUserWithRole(UserRole.SiteConsumer);
siteConsumer.setUserRole(UserRole.SiteManager);
updatedMember = restClient.authenticateUser(anotherManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteConsumer);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteConsumer.getUsername())
.and().field("role").is(siteConsumer.getUserRole());
}
@TestRail(section={TestGroup.REST_API, TestGroup.CORE, TestGroup.SITES}, executionType= ExecutionType.REGRESSION,
description= "Verify if manager is able to downgrade himself to site consumer")
public void managerDowngradeHimselfToSiteConsumer() throws Exception
{
UserModel siteManager = publicSiteUsers.getOneUserWithRole(UserRole.SiteManager);
siteManager.setUserRole(UserRole.SiteConsumer);
updatedMember = restClient.authenticateUser(siteManager).withCoreAPI()
.usingSite(publicSite).updateSiteMember(siteManager);
restClient.assertStatusCodeIs(HttpStatus.OK);
updatedMember.assertThat().field("id").is(siteManager.getUsername())
.and().field("role").is(siteManager.getUserRole());
}
}
@@ -4,6 +4,7 @@ import org.alfresco.rest.RestTest;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -103,6 +104,6 @@ public class UpdateSiteMemberSanityTests extends RestTest
restClient.authenticateUser(inexistentUser);
testUserModel.setUserRole(UserRole.SiteCollaborator);
restClient.withCoreAPI().usingSite(siteModel).updateSiteMember(testUserModel);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
}
}
@@ -0,0 +1,150 @@
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.RestTagModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser.ListUserWithRoles;
import org.alfresco.utility.data.RandomData;
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.apache.commons.lang.RandomStringUtils;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@Test(groups = { TestGroup.REST_API, TestGroup.TAGS, TestGroup.CORE })
public class AddTagCoreTests extends RestTest
{
private UserModel adminUserModel;
private UserModel testUser;
private FileModel document;
private SiteModel siteModel;
private ListUserWithRoles usersWithRoles;
private String tagValue;
private RestTagModel returnedModel;
private FolderModel folderModel;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
testUser = dataUser.createRandomTestUser();
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(CMISUtil.DocumentType.TEXT_PLAIN);
folderModel = dataContent.usingUser(adminUserModel).usingSite(siteModel).createFolder();
}
@BeforeMethod(alwaysRun = true)
public void generateRandomTag()
{
tagValue = RandomData.getRandomName("tag");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that adding empty tag returns status code 400")
public void emptyTagTest() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(adminUserModel);
returnedModel = restClient.withCoreAPI().usingResource(document).addTag("");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.NULL_ARGUMENT, "tag"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that adding tag with user that has no permissions returns status code 403")
public void addTagWithUserThatDoesNotHavePermissions() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(testUser);
returnedModel = restClient.withCoreAPI().usingResource(document).addTag(tagValue);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that adding tag to a node that does not exist returns status code 404")
public void addTagToInexistentNode() throws JsonToModelConversionException, Exception
{
FileModel document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(CMISUtil.DocumentType.TEXT_PLAIN);
String nodeRef = RandomStringUtils.randomAlphanumeric(10);
document.setNodeRef(nodeRef);
restClient.authenticateUser(adminUserModel);
returnedModel = restClient.withCoreAPI().usingResource(document).addTag(tagValue);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, nodeRef));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that adding tag to a node that does not accepts tags returns status code 405")
public void addTagToANodeThatDoesNotAcceptsTags() throws JsonToModelConversionException, Exception
{
FileModel document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(CMISUtil.DocumentType.TEXT_PLAIN);
restClient.authenticateUser(adminUserModel);
returnedModel = restClient.withCoreAPI().usingResource(document).addTag(tagValue);
document.setNodeRef(returnedModel.getId());
restClient.withCoreAPI().usingResource(document).addTag(tagValue);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED).assertLastError().containsSummary(RestErrorModel.CANNOT_TAG);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager is able to tag a file")
public void managerIsAbleToTagAFile() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
returnedModel = restClient.withCoreAPI().usingResource(document).addTag(tagValue);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
returnedModel.assertThat().field("tag").is(tagValue).and().field("id").isNotEmpty();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that manager is able to tag a folder")
public void managerIsAbleToTagAFolder() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
returnedModel = restClient.withCoreAPI().usingResource(folderModel).addTag(tagValue);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
returnedModel.assertThat().field("tag").is(tagValue).and().field("id").isNotEmpty();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that tagged file can be tagged again")
public void addTagToATaggedFile() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(adminUserModel);
returnedModel = restClient.withCoreAPI().usingResource(document).addTag(tagValue);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
returnedModel.assertThat().field("tag").is(tagValue).and().field("id").isNotEmpty();
returnedModel = restClient.withCoreAPI().usingResource(document).addTag(tagValue);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
returnedModel.assertThat().field("tag").is(tagValue).and().field("id").isNotEmpty();
returnedModel = restClient.withCoreAPI().usingResource(document).addTag("random_tag_value");
restClient.assertStatusCodeIs(HttpStatus.CREATED);
returnedModel.assertThat().field("tag").is("random_tag_value").and().field("id").isNotEmpty();
restClient.withCoreAPI().usingResource(document).getNodeTags().assertThat()
.entriesListContains("tag", tagValue.toLowerCase())
.and().entriesListContains("tag", "random_tag_value");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that user cannot add invalid tag")
public void addInvalidTag() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(adminUserModel);
returnedModel = restClient.withCoreAPI().usingResource(document).addTag("-1~!|@#$%^&*()_=");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.INVALID_TAG, "|"));
}
}
@@ -3,11 +3,11 @@ 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.RestTagModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.RandomData;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
@@ -89,7 +89,7 @@ public class AddTagSanityTests extends RestTest
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingResource(document).addTag(tagValue);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -111,7 +111,7 @@ public class AddTagSanityTests extends RestTest
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingResource(document).addTag(tagValue);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -3,11 +3,11 @@ 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;
import org.alfresco.utility.data.RandomData;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
@@ -90,7 +90,7 @@ public class AddTagsSanityTests extends RestTest
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingResource(document).addTags(tag1, tag2);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -111,7 +111,7 @@ public class AddTagsSanityTests extends RestTest
public void consumerIsNotAbleToAddTags() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer)).withCoreAPI().usingResource(document).addTags(tag1, tag2);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -3,11 +3,11 @@ 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.RestTagModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.RandomData;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
@@ -85,7 +85,7 @@ public class DeleteTagSanityTests extends RestTest
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingResource(document).deleteTag(tag);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -110,7 +110,7 @@ public class DeleteTagSanityTests extends RestTest
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingResource(document).deleteTag(tag);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@Bug(id="MNT-16904")
@@ -3,16 +3,12 @@ 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;
import org.alfresco.utility.data.RandomData;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
import org.alfresco.utility.model.*;
import org.alfresco.utility.testrail.ExecutionType;
import org.alfresco.utility.testrail.annotation.TestRail;
import org.springframework.http.HttpStatus;
@@ -115,11 +111,10 @@ public class GetNodeTagsSanityTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS },
executionType = ExecutionType.SANITY, description = "Verify unauthenticated user is not able to get node tags")
@Bug(id="MNT-16904")
public void unauthenticatedUserIsNotAbleToRetrieveNodeTags() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(new UserModel("random user", "random password"));
restClient.withCoreAPI().usingResource(document).getNodeTags();
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -0,0 +1,71 @@
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.data.RandomData;
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.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@Test(groups = { TestGroup.REST_API, TestGroup.TAGS, TestGroup.CORE })
public class GetTagCoreTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel siteModel;
private FileModel document;
private String tagValue;
private RestTagModel tag;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
document = dataContent.usingSite(siteModel).usingUser(adminUserModel).createContent(DocumentType.TEXT_PLAIN);
}
@BeforeMethod(alwaysRun = true)
public void setUp() throws Exception {
tagValue = RandomData.getRandomName("tag");
restClient.authenticateUser(adminUserModel);
tag = restClient.withCoreAPI().usingResource(document).addTag(tagValue);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that if tag id is invalid status code returned is 400")
public void invalidTagIdTest() throws JsonToModelConversionException, Exception
{
tag.setId("random_tag_value");
restClient.withCoreAPI().getTag(tag);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND).assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "random_tag_value"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Retrieve and validate the id of a tag added to a file")
public void validateTagIdTest() throws JsonToModelConversionException, Exception
{
RestTagModel returnedTag = restClient.withCoreAPI().getTag(tag);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedTag.assertThat().field("id").is(tag.getId());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Retrieve and validate the name of a tag added to a file")
public void validateTagNameTest() throws JsonToModelConversionException, Exception
{
RestTagModel returnedTag = restClient.withCoreAPI().getTag(tag);
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedTag.assertThat().field("tag").is(tagValue.toLowerCase());
}
}
@@ -0,0 +1,87 @@
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.data.RandomData;
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;
@Test(groups = { TestGroup.REST_API, TestGroup.TAGS, TestGroup.CORE })
public class GetTagsCoreTests extends RestTest
{
private UserModel adminUserModel;
private SiteModel siteModel;
private String tagValue;
private String tagValue2;
private FileModel document;
private RestTagModelsCollection returnedCollection;
private FolderModel folder;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
adminUserModel = dataUser.getAdminUser();
restClient.authenticateUser(adminUserModel);
siteModel = dataSite.usingUser(adminUserModel).createPublicRandomSite();
document = dataContent.usingUser(adminUserModel).usingSite(siteModel).createContent(CMISUtil.DocumentType.TEXT_PLAIN);
folder = dataContent.usingUser(adminUserModel).usingSite(siteModel).createFolder();
tagValue = RandomData.getRandomName("tag");
tagValue2 = RandomData.getRandomName("tag");
restClient.withCoreAPI().usingResource(document).addTags(tagValue);
restClient.withCoreAPI().usingResource(folder).addTags(tagValue2);
Utility.waitToLoopTime(60);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that if maxItems is invalid status code returned is 400")
public void maxItemsInvalidValueTest() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(adminUserModel).withParams("maxItems=abc").withCoreAPI().getTags();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.INVALID_MAXITEMS, "abc"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that if skipCount is invalid status code returned is 400")
public void skipCountInvalidValueTest() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(adminUserModel).withParams("skipCount=abc").withCoreAPI().getTags();
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST).assertLastError().containsSummary(String.format(RestErrorModel.INVALID_SKIPCOUNT, "abc"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that file tag is retrieved")
public void fileTagIsRetrieved() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(adminUserModel);
returnedCollection = restClient.withParams("maxItems=500").withCoreAPI().getTags();
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedCollection.assertThat().entriesListIsNotEmpty()
.and().entriesListContains("tag", tagValue.toLowerCase());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.REGRESSION,
description = "Verify that folder tag is retrieved")
public void folderTagIsRetrieved() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(adminUserModel);
returnedCollection = restClient.withParams("maxItems=500").withCoreAPI().getTags();
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedCollection.assertThat().entriesListIsNotEmpty()
.and().entriesListContains("tag", tagValue2.toLowerCase());
}
}
@@ -102,7 +102,7 @@ public class GetTagsSanityTests extends RestTest
@TestRail(section = { TestGroup.REST_API, TestGroup.TAGS }, executionType = ExecutionType.SANITY, description = "Failed authentication get tags call returns status code 401 with Manager role")
@Bug(id = "MNT-16904")
public void getTagsWithManagerRoleFailedAuth() throws JsonToModelConversionException, Exception
public void failedAuthenticationReturnsUnauthorizedStatus() throws JsonToModelConversionException, Exception
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
userModel = dataUser.createRandomTestUser();
@@ -0,0 +1,108 @@
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.RestTagModel;
import org.alfresco.utility.Utility;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.RandomData;
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;
/**
* Created by Bogdan Bocancea
*/
@Test(groups = { TestGroup.REST_API, TestGroup.TAGS, TestGroup.CORE })
public class UpdateTagCoreTests extends RestTest
{
private UserModel managerUser;
private FileModel document;
private SiteModel siteModel;
@SuppressWarnings("unused")
private DataUser.ListUserWithRoles usersWithRoles;
@SuppressWarnings("unused")
private RestTagModel oldTag;
@BeforeClass(alwaysRun=true)
public void dataPreparation() throws Exception
{
managerUser = dataUser.createRandomTestUser();
siteModel = dataSite.usingUser(managerUser).createPublicRandomSite();
document = dataContent.usingSite(siteModel).usingUser(managerUser).createContent(CMISUtil.DocumentType.TEXT_PLAIN);
usersWithRoles = dataUser.addUsersWithRolesToSite(siteModel, UserRole.SiteCollaborator, UserRole.SiteConsumer, UserRole.SiteContributor);
oldTag = restClient.authenticateUser(managerUser).withCoreAPI().usingResource(document).addTag(RandomData.getRandomName("old"));
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.TAGS }, executionType = ExecutionType.SANITY, description = "Verify site manager is not able to update tag with invalid id")
public void managerIsNotAbleToUpdateTagWithInvalidId() throws JsonToModelConversionException, Exception
{
String invalidTagId = "invalid-id";
RestTagModel tag = restClient.withCoreAPI().usingResource(document).addTag(RandomData.getRandomName("tag"));
tag.setId(invalidTagId);
restClient.withCoreAPI().usingTag(tag).update(RandomData.getRandomName("tag"));
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, invalidTagId));
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.TAGS }, executionType = ExecutionType.SANITY, description = "Verify site manager is not able to update tag with empty id")
public void managerIsNotAbleToUpdateTagWithEmptyId() throws JsonToModelConversionException, Exception
{
RestTagModel tag = restClient.withCoreAPI().usingResource(document).addTag(RandomData.getRandomName("tag"));
tag.setId("");
restClient.withCoreAPI().usingTag(tag).update(RandomData.getRandomName("tag"));
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED)
.assertLastError().containsSummary(RestErrorModel.PUT_EMPTY_ARGUMENT);
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.TAGS }, executionType = ExecutionType.SANITY, description = "Verify site manager is not able to update tag with invalid body")
public void managerIsNotAbleToUpdateTagWithEmptyBody() throws JsonToModelConversionException, Exception
{
RestTagModel tag = restClient.withCoreAPI().usingResource(document).addTag(RandomData.getRandomName("tag"));
restClient.withCoreAPI().usingTag(tag).update("");
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(RestErrorModel.EMPTY_TAG);
}
@Bug(id="ACE-5629")
@TestRail(section = { TestGroup.REST_API,
TestGroup.TAGS }, executionType = ExecutionType.SANITY,
description = "Verify site manager is not able to update tag with invalid body containing '|' symbol")
public void managerIsNotAbleToUpdateTagWithInvalidBodyScenario1() throws JsonToModelConversionException, Exception
{
String invalidTagBody = "|.\"/<>*";
RestTagModel tag = restClient.withCoreAPI().usingResource(document).addTag(RandomData.getRandomName("tag"));
Utility.waitToLoopTime(20);
restClient.withCoreAPI().usingTag(tag).update(invalidTagBody);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_TAG, invalidTagBody));
}
@Bug(id="ACE-5629")
@TestRail(section = { TestGroup.REST_API,
TestGroup.TAGS }, executionType = ExecutionType.SANITY,
description = "Verify site manager is not able to update tag with invalid body without '|' symbol")
public void managerIsNotAbleToUpdateTagWithInvalidBodyScenario2() throws JsonToModelConversionException, Exception
{
String invalidTagBody = ".\"/<>*";
RestTagModel tag = restClient.withCoreAPI().usingResource(document).addTag(RandomData.getRandomName("tag"));
Utility.waitToLoopTime(20);
restClient.withCoreAPI().usingTag(tag).update(invalidTagBody);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary(String.format(RestErrorModel.INVALID_TAG, invalidTagBody));
}
}
@@ -3,14 +3,13 @@ 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.RestTagModel;
import org.alfresco.utility.constants.UserRole;
import org.alfresco.utility.data.DataUser;
import org.alfresco.utility.data.RandomData;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.StatusModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -27,7 +26,6 @@ import org.testng.annotations.Test;
@Test(groups = { TestGroup.REST_API, TestGroup.TAGS, TestGroup.SANITY })
public class UpdateTagSanityTests extends RestTest
{
private UserModel adminUserModel;
private FileModel document;
private SiteModel siteModel;
@@ -69,7 +67,7 @@ public class UpdateTagSanityTests extends RestTest
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteManager));
restClient.withCoreAPI().usingTag(oldTag).update(randomTag);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -78,7 +76,7 @@ public class UpdateTagSanityTests extends RestTest
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteCollaborator));
restClient.withCoreAPI().usingTag(oldTag).update(randomTag);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -87,7 +85,7 @@ public class UpdateTagSanityTests extends RestTest
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteContributor));
restClient.withCoreAPI().usingTag(oldTag).update(randomTag);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -96,7 +94,7 @@ public class UpdateTagSanityTests extends RestTest
{
restClient.authenticateUser(usersWithRoles.getOneUserWithRole(UserRole.SiteConsumer));
restClient.withCoreAPI().usingTag(oldTag).update(randomTag);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN).assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
@TestRail(section = { TestGroup.REST_API,
@@ -108,6 +106,7 @@ public class UpdateTagSanityTests extends RestTest
siteManager.setPassword("wrongPassword");
restClient.authenticateUser(siteManager);
restClient.withCoreAPI().usingTag(oldTag).update(randomTag);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED).assertLastException().hasName(StatusModel.UNAUTHORIZED);
restClient.assertStatusCodeIs(HttpStatus.UNAUTHORIZED)
.assertLastError().containsSummary(RestErrorModel.AUTHENTICATION_FAILED);
}
}
@@ -3,7 +3,7 @@ package org.alfresco.rest.workflow.deployments;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestDeploymentModel;
import org.alfresco.rest.model.RestDeploymentModelsCollection;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.report.Bug;
@@ -58,6 +58,6 @@ public class DeleteDeploymentSanityTests extends RestTest
restClient.withWorkflowAPI().usingDeployment(deployment).deleteDeployment();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, "1000"));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "1000"));
}
}
@@ -0,0 +1,73 @@
package org.alfresco.rest.workflow.deployments;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestDeploymentModel;
import org.alfresco.rest.model.RestErrorModel;
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;
/**
* Created by Claudia Agache on 12/7/2016.
*/
@Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.DEPLOYMENTS, TestGroup.CORE })
public class GetDeploymentCoreTests extends RestTest
{
private UserModel adminUser, adminTenantUser;
private RestDeploymentModel expectedDeployment, actualDeployment;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.DEPLOYMENTS },
executionType = ExecutionType.REGRESSION, description = "Verify if get deployment request returns status code 404 when invalid deploymentId is used.")
public void getNonNetworkDeploymentUsingInvalidDeploymentId() throws Exception
{
expectedDeployment = restClient.authenticateUser(adminUser).withWorkflowAPI().getDeployments().getOneRandomEntry().onModel();
expectedDeployment.setId("invalidId");
restClient.withWorkflowAPI().usingDeployment(expectedDeployment).getDeployment();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidId"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.DEPLOYMENTS },
executionType = ExecutionType.REGRESSION, description = "Verify if network admin user gets a network deployment using REST API and status code is OK (200)")
@Test(groups = { TestGroup.NETWORKS })
public void adminGetsNetworkDeploymentWithSuccess() throws Exception
{
adminTenantUser = UserModel.getAdminTenantUser();
restClient.authenticateUser(adminUser)
.usingTenant().createTenant(adminTenantUser);
expectedDeployment = restClient.authenticateUser(adminTenantUser).withWorkflowAPI().getDeployments().getOneRandomEntry().onModel();
actualDeployment = restClient.withWorkflowAPI().usingDeployment(expectedDeployment).getDeployment();
restClient.assertStatusCodeIs(HttpStatus.OK);
actualDeployment.assertThat().field("deployedAt").isNotEmpty()
.and().field("name").is(expectedDeployment.getName())
.and().field("id").equals(expectedDeployment.getId());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.DEPLOYMENTS },
executionType = ExecutionType.REGRESSION, description = "Verify non admin user is forbidden to get a network deployment using REST API (403)")
@Test(groups = { TestGroup.NETWORKS })
public void nonAdminUserIsForbiddenToGetNetworkDeployment() throws Exception
{
adminTenantUser = UserModel.getAdminTenantUser();
restClient.authenticateUser(adminUser)
.usingTenant().createTenant(adminTenantUser);
expectedDeployment = restClient.authenticateUser(adminTenantUser).withWorkflowAPI().getDeployments().getOneRandomEntry().onModel();
UserModel tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant");
restClient.authenticateUser(tenantUser).withWorkflowAPI().usingDeployment(expectedDeployment).getDeployment();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
}
@@ -3,7 +3,7 @@ package org.alfresco.rest.workflow.deployments;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestDeploymentModel;
import org.alfresco.utility.model.ErrorModel;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.utility.model.TestGroup;
import org.alfresco.utility.model.UserModel;
import org.alfresco.utility.testrail.ExecutionType;
@@ -51,6 +51,6 @@ public class GetDeploymentSanityTests extends RestTest
{
restClient.authenticateUser(anotherUser).withWorkflowAPI().usingDeployment(expectedDeployment).getDeployment();
restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN)
.assertLastError().containsSummary(ErrorModel.PERMISSION_WAS_DENIED);
.assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED);
}
}
@@ -0,0 +1,80 @@
package org.alfresco.rest.workflow.processDefinitions;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestProcessDefinitionModel;
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;
/**
* Created by Claudia Agache on 12/5/2016.
*/
@Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESS_DEFINITION, TestGroup.CORE })
public class GetProcessDefinitionCoreTests extends RestTest
{
private UserModel adminUser, adminTenantUser;
private RestProcessDefinitionModel randomProcessDefinition, returnedProcessDefinition;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESS_DEFINITION },
executionType = ExecutionType.REGRESSION,
description = "Verify if get process definition returns status code 404 when invalid processDefinitionId is used")
public void getProcessDefinitionUsingInvalidProcessDefinitionId() throws Exception
{
restClient.authenticateUser(adminUser);
randomProcessDefinition = restClient.withWorkflowAPI().getAllProcessDefinitions().getOneRandomEntry().onModel();
randomProcessDefinition.setId("invalidID");
restClient.withWorkflowAPI()
.usingProcessDefinitions(randomProcessDefinition).getProcessDefinition();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidID"));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESS_DEFINITION },
executionType = ExecutionType.REGRESSION,
description = "Verify network admin is able to get a process definition using REST API and status code is OK (200)")
@Test(groups = { TestGroup.NETWORKS })
public void networkAdminGetProcessDefinition() throws Exception
{
adminTenantUser = UserModel.getAdminTenantUser();
restClient.authenticateUser(adminUser)
.usingTenant().createTenant(adminTenantUser);
randomProcessDefinition = restClient.authenticateUser(adminTenantUser).withWorkflowAPI().getAllProcessDefinitions().getOneRandomEntry().onModel();
returnedProcessDefinition = restClient.withWorkflowAPI().usingProcessDefinitions(randomProcessDefinition).getProcessDefinition();
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedProcessDefinition.assertThat().field("name").is(randomProcessDefinition.getName());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESS_DEFINITION },
executionType = ExecutionType.REGRESSION,
description = "Verify network user is able to get a process definition using REST API and status code is OK (200)")
@Test(groups = { TestGroup.NETWORKS })
public void networkUserGetProcessDefinition() throws Exception
{
adminTenantUser = UserModel.getAdminTenantUser();
restClient.authenticateUser(adminUser)
.usingTenant().createTenant(adminTenantUser);
UserModel tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant");
randomProcessDefinition = restClient.authenticateUser(adminTenantUser).withWorkflowAPI()
.getAllProcessDefinitions().getOneRandomEntry().onModel();
returnedProcessDefinition = restClient.authenticateUser(tenantUser).withWorkflowAPI()
.usingProcessDefinitions(randomProcessDefinition).getProcessDefinition();
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedProcessDefinition.assertThat().field("name").is(randomProcessDefinition.getName());
}
}
@@ -2,12 +2,10 @@ package org.alfresco.rest.workflow.processDefinitions;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestProcessDefinitionModel;
import org.alfresco.utility.data.DataUser;
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.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
@@ -18,17 +16,15 @@ import org.testng.annotations.Test;
@Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESS_DEFINITION, TestGroup.SANITY })
public class GetProcessDefinitionSanityTests extends RestTest
{
@Autowired
private DataUser dataUser;
private UserModel testUser;
private RestProcessDefinitionModel randomProcessDefinition;
private RestProcessDefinitionModel randomProcessDefinition, returnedProcessDefinition;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
testUser = dataUser.createRandomTestUser();
restClient.authenticateUser(dataUser.getAdminUser());
randomProcessDefinition = restClient.withWorkflowAPI().getAllProcessDefinitions().getOneRandomEntry();
randomProcessDefinition = restClient.withWorkflowAPI().getAllProcessDefinitions().getOneRandomEntry().onModel();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESS_DEFINITION },
@@ -36,11 +32,9 @@ public class GetProcessDefinitionSanityTests extends RestTest
description = "Verify Admin user gets a specific process definition for non-network deployments using REST API and status code is OK (200)")
public void adminGetsProcessDefinition() throws Exception
{
restClient.withWorkflowAPI().usingProcessDefinitions(randomProcessDefinition).getProcessDefinition().
assertThat().field("name").is(randomProcessDefinition.onModel().getName());
restClient.withWorkflowAPI().usingProcessDefinitions(randomProcessDefinition).getProcessDefinition().assertThat().field("name")
.is(randomProcessDefinition.onModel().getName());
returnedProcessDefinition = restClient.withWorkflowAPI().usingProcessDefinitions(randomProcessDefinition).getProcessDefinition();
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedProcessDefinition.assertThat().field("name").is(randomProcessDefinition.getName());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESS_DEFINITION },
@@ -49,8 +43,8 @@ public class GetProcessDefinitionSanityTests extends RestTest
public void anyUserGetsProcessDefinition() throws Exception
{
restClient.authenticateUser(testUser);
restClient.withWorkflowAPI().usingProcessDefinitions(randomProcessDefinition).getProcessDefinition().assertThat().field("name")
.is(randomProcessDefinition.onModel().getName());
returnedProcessDefinition = restClient.withWorkflowAPI().usingProcessDefinitions(randomProcessDefinition).getProcessDefinition();
restClient.assertStatusCodeIs(HttpStatus.OK);
returnedProcessDefinition.assertThat().field("name").is(randomProcessDefinition.getName());
}
}
@@ -0,0 +1,96 @@
package org.alfresco.rest.workflow.processDefinitions;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestProcessDefinitionModel;
import org.alfresco.rest.model.RestProcessDefinitionModelsCollection;
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 12/6/2016.
*/
@Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESS_DEFINITION, TestGroup.CORE })
public class GetProcessDefinitionStartFormModelCoreTests extends RestTest
{
private UserModel adminUser, adminTenantUser;
private RestProcessDefinitionModel randomProcessDefinition;
private RestProcessDefinitionModelsCollection allProcessDefinitions;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
allProcessDefinitions = restClient.authenticateUser(adminUser).withWorkflowAPI().getAllProcessDefinitions();
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESS_DEFINITION },
executionType = ExecutionType.REGRESSION,
description = "Verify any user gets a model of the start form type definition for non-network deployments using REST API and status code is OK (200)")
public void nonNetworkUserGetsStartFormModel() throws Exception
{
UserModel nonNetworkUser = dataUser.createRandomTestUser();
randomProcessDefinition = allProcessDefinitions.getOneRandomEntry();
restClient.authenticateUser(nonNetworkUser).withWorkflowAPI()
.usingProcessDefinitions(randomProcessDefinition).getProcessDefinitionStartFormModel()
.assertThat().entriesListIsNotEmpty();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
@Bug(id = "ALF-20187")
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESS_DEFINITION },
executionType = ExecutionType.REGRESSION,
description = "Verify if get request returns status code 404 when invalid processDefinitionId is used")
public void getStartFormModelUsingInvalidProcessDefinitionId() throws Exception
{
randomProcessDefinition = allProcessDefinitions.getOneRandomEntry();
randomProcessDefinition.onModel().setId("invalidID");
restClient.authenticateUser(adminUser).withWorkflowAPI()
.usingProcessDefinitions(randomProcessDefinition).getProcessDefinitionStartFormModel();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "invalidID"));
}
@Bug(id = "ALF-20187")
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESS_DEFINITION },
executionType = ExecutionType.REGRESSION,
description = "Verify if get request returns status code 404 when empty processDefinitionId is used")
public void getStartFormModelUsingEmptyProcessDefinitionId() throws Exception
{
randomProcessDefinition = allProcessDefinitions.getOneRandomEntry();
randomProcessDefinition.onModel().setId("");
restClient.authenticateUser(adminUser).withWorkflowAPI()
.usingProcessDefinitions(randomProcessDefinition).getProcessDefinitionStartFormModel();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, ""));
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESS_DEFINITION },
executionType = ExecutionType.REGRESSION,
description = "Verify Tenant User gets a model of the start form type definition for network deployments using REST API and status code is OK (200)")
@Test(groups = { TestGroup.NETWORKS })
public void networkUserGetsStartFormModel() throws Exception
{
adminTenantUser = UserModel.getAdminTenantUser();
restClient.authenticateUser(adminUser)
.usingTenant().createTenant(adminTenantUser);
UserModel tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant");
randomProcessDefinition = restClient.authenticateUser(adminTenantUser).withWorkflowAPI()
.getAllProcessDefinitions().getOneRandomEntry();
restClient.authenticateUser(tenantUser).withWorkflowAPI()
.usingProcessDefinitions(randomProcessDefinition).getProcessDefinitionStartFormModel()
.assertThat().entriesListIsNotEmpty();
restClient.assertStatusCodeIs(HttpStatus.OK);
}
}
@@ -18,9 +18,6 @@ import org.testng.annotations.Test;
@Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESS_DEFINITION, TestGroup.SANITY })
public class GetProcessDefinitionStartFormModelSanityTests extends RestTest
{
@Autowired
private DataUser dataUser;
private UserModel adminUserModel, adminTenantUser;
private RestProcessDefinitionModel randomProcessDefinition;
@@ -0,0 +1,122 @@
package org.alfresco.rest.workflow.processes;
import org.alfresco.dataprep.CMISUtil.Priority;
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.RestProcessModel;
import org.alfresco.rest.model.RestProcessModelsCollection;
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.Test;
/**
*
* @author Cristina Axinte
*
*/
@Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE })
public class AddProcessCoreTests extends RestTest
{
private UserModel assignee, adminUser;
private RestProcessModel addedProcess;
private RestProcessModelsCollection processes;
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES },
executionType = ExecutionType.REGRESSION, description = "Verify non network admin is able to start new process using REST API and status code is OK (200)")
public void nonNetworkAdminUserStartsNewProcess() throws JsonToModelConversionException, Exception
{
adminUser = dataUser.getAdminUser();
assignee = dataUser.createRandomTestUser();
addedProcess = restClient.authenticateUser(adminUser).withWorkflowAPI().addProcess("activitiAdhoc", assignee, false, Priority.Normal);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
addedProcess.assertThat().field("id").is(addedProcess.getId())
.and().field("startUserId").is(adminUser.getUsername());
processes = restClient.withWorkflowAPI().getProcesses();
restClient.assertStatusCodeIs(HttpStatus.OK);
processes.assertThat().entriesListContains("id", addedProcess.getId())
.assertThat().entriesListContains("processDefinitionId", "activitiAdhoc:1:4")
.assertThat().entriesListContains("startUserId", adminUser.getUsername())
.assertThat().entriesListContains("startActivityId", "start")
.assertThat().entriesListContains("completed", "false")
.assertThat().entriesListContains("processDefinitionKey", "activitiAdhoc");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES },
executionType = ExecutionType.REGRESSION, description = "Verify start new process with empty request body using REST API returns status code is Bad Request (400)")
public void startNewProcessWithEmptyProcessBody() throws JsonToModelConversionException, Exception
{
adminUser = dataUser.getAdminUser();
assignee = dataUser.createRandomTestUser();
restClient.authenticateUser(adminUser).withWorkflowAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "", "processes");
restClient.processModel(RestProcessModel.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"));
}
@Bug(id = "ACE-5671")
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES },
executionType = ExecutionType.REGRESSION, description = "Verify start new process with invalid request body using REST API returns status code is Bad Request (400)")
public void startNewProcessWithInvalidProcessDefInProcessBody() throws JsonToModelConversionException, Exception
{
adminUser = dataUser.getAdminUser();
assignee = dataUser.createRandomTestUser();
restClient.authenticateUser(adminUser).withWorkflowAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "{\"processDefinitionKey\":\"activitiAdhoc\"}", "processes");
restClient.processModel(RestProcessModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST);
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES },
executionType = ExecutionType.REGRESSION, description = "Verify start new process with invalid request body using REST API returns status code is Bad Request (400)")
public void startNewProcessWithInvalidVariablesInProcessBody1() throws JsonToModelConversionException, Exception
{
adminUser = dataUser.getAdminUser();
assignee = dataUser.createRandomTestUser();
restClient.authenticateUser(adminUser).withWorkflowAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "{\"variables\":{\"bpm_sendEMailNotifications\":false}}", "processes");
restClient.processModel(RestProcessModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary("Either processDefinitionId or processDefinitionKey is required");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES },
executionType = ExecutionType.REGRESSION, description = "Verify start new process with invalid request body using REST API returns status code is Bad Request (400)")
public void startNewProcessWithInvalidVariablesInProcessBody2() throws JsonToModelConversionException, Exception
{
adminUser = dataUser.getAdminUser();
assignee = dataUser.createRandomTestUser();
restClient.authenticateUser(adminUser).withWorkflowAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "{\"variables\":{\"bpm_assignee\":\"admin\"}}", "processes");
restClient.processModel(RestProcessModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary("Either processDefinitionId or processDefinitionKey is required");
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES },
executionType = ExecutionType.REGRESSION, description = "Verify start new process with invalid request body using REST API returns status code is Bad Request (400)")
public void startNewProcessWithInvalidVariablesInProcessBody3() throws JsonToModelConversionException, Exception
{
adminUser = dataUser.getAdminUser();
assignee = dataUser.createRandomTestUser();
restClient.authenticateUser(adminUser).withWorkflowAPI();
RestRequest request = RestRequest.requestWithBody(HttpMethod.POST, "{\"variables\":{\"bpm_workflowPriority\":2}}", "processes");
restClient.processModel(RestProcessModel.class, request);
restClient.assertStatusCodeIs(HttpStatus.BAD_REQUEST)
.assertLastError().containsSummary("Either processDefinitionId or processDefinitionKey is required");
}
}
@@ -0,0 +1,67 @@
package org.alfresco.rest.workflow.processes;
import org.alfresco.dataprep.CMISUtil.Priority;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestProcessModel;
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;
@Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE })
public class DeleteProcessCoreTests extends RestTest
{
private UserModel userWhoAddsProcess, assignee;
private RestProcessModel process;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
userWhoAddsProcess = dataUser.createRandomTestUser();
assignee = dataUser.createRandomTestUser();
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION,
description = "Verify admin user is able to delete a process started by another user.")
public void deleteProcessByAdminUser() throws Exception
{
process = restClient.authenticateUser(userWhoAddsProcess).withWorkflowAPI().addProcess("activitiAdhoc", assignee, false, Priority.Normal);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.authenticateUser(dataUser.getAdminUser())
.withWorkflowAPI().usingProcess(process).deleteProcess();
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withWorkflowAPI().getProcesses()
.assertThat().entriesListDoesNotContain("id", process.getId());
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION,
description = "Verify User is not able to delete process with invalid id")
public void deleteProcessWithInvalidId() throws Exception
{
process = restClient.authenticateUser(userWhoAddsProcess).withWorkflowAPI().addProcess("activitiAdhoc", assignee, false, Priority.Normal);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
process.setId("00001");
restClient.withWorkflowAPI().usingProcess(process).deleteProcess();
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "00001"));
}
@TestRail(section = { TestGroup.REST_API,
TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION,
description = "Verify User is not able to delete process with empty id")
public void deleteProcessWithEmptyId() throws Exception
{
process = restClient.authenticateUser(userWhoAddsProcess).withWorkflowAPI().addProcess("activitiAdhoc", assignee, false, Priority.Normal);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
process.setId("");
restClient.withWorkflowAPI().usingProcess(process).deleteProcess();
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED)
.assertLastError().containsSummary(RestErrorModel.DELETE_EMPTY_ARGUMENT);
}
}
@@ -0,0 +1,83 @@
package org.alfresco.rest.workflow.processes;
import org.alfresco.dataprep.CMISUtil.DocumentType;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestItemModel;
import org.alfresco.rest.model.RestItemModelsCollection;
import org.alfresco.rest.model.RestProcessModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.ProcessModel;
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;
@Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE })
public class DeleteProcessItemCoreTests extends RestTest
{
private FileModel document, secondDoc;
private SiteModel siteModel;
private UserModel userWhoStartsTask, assignee;
private RestProcessModel restProcessModel;
private ProcessModel processModel;
private RestItemModelsCollection items;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
userWhoStartsTask = dataUser.createRandomTestUser();
assignee = dataUser.createRandomTestUser();
siteModel = dataSite.usingUser(userWhoStartsTask).createPublicRandomSite();
document = dataContent.usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN);
processModel = dataWorkflow.usingUser(userWhoStartsTask).usingSite(siteModel).usingResource(document)
.createSingleReviewerTaskAndAssignTo(assignee);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION,
description = "Delete process item with invalid id")
public void deleteProcessItemWithInvalidItemId() throws Exception
{
restProcessModel = restClient.authenticateUser(userWhoStartsTask).withWorkflowAPI()
.getProcesses().getProcessModelByProcessDefId(processModel.getId());
secondDoc = dataContent.usingUser(userWhoStartsTask).usingSite(siteModel).createContent(DocumentType.MSWORD);
RestItemModel processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(secondDoc);
processItem.setId("invalid-id");
restClient.withWorkflowAPI().usingProcess(processModel).deleteProcessItem(processItem);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.PROCESS_ENTITY_NOT_FOUND, "invalid-id"));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION,
description = "Delete process item with empty id")
public void deleteProcessItemWithEmptyItemId() throws Exception
{
restProcessModel = restClient.authenticateUser(userWhoStartsTask).withWorkflowAPI()
.getProcesses().getProcessModelByProcessDefId(processModel.getId());
secondDoc = dataContent.usingUser(userWhoStartsTask).usingSite(siteModel).createContent(DocumentType.MSWORD);
RestItemModel processItem = restClient.withWorkflowAPI().usingProcess(processModel).addProcessItem(secondDoc);
processItem.setId("");
restClient.withWorkflowAPI().usingProcess(processModel).deleteProcessItem(processItem);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED)
.assertLastError().containsSummary(String.format(RestErrorModel.DELETE_EMPTY_ARGUMENT));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION,
description = "Delete process item twice")
public void deleteProcessItemTwice() throws Exception
{
restProcessModel = restClient.authenticateUser(userWhoStartsTask).withWorkflowAPI()
.getProcesses().getProcessModelByProcessDefId(processModel.getId());
items = restClient.withWorkflowAPI().usingProcess(restProcessModel).getProcessItems();
RestItemModel processItem = items.getEntries().get(0);
restClient.withWorkflowAPI().usingProcess(processModel).deleteProcessItem(processItem.onModel());
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withWorkflowAPI().usingProcess(processModel).deleteProcessItem(processItem.onModel());
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.PROCESS_ENTITY_NOT_FOUND, processItem.onModel().getId()));
}
}
@@ -0,0 +1,84 @@
package org.alfresco.rest.workflow.processes;
import org.alfresco.dataprep.CMISUtil.DocumentType;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestProcessModel;
import org.alfresco.rest.model.RestProcessVariableModel;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.ProcessModel;
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 bogdan.bocancea
*
*/
@Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE })
public class DeleteProcessVariableCoreTests extends RestTest
{
private FileModel document;
private SiteModel siteModel;
private UserModel userWhoStartsTask, assignee;
private RestProcessModel restProcessModel;
private ProcessModel processModel;
private RestProcessVariableModel variableModel;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
userWhoStartsTask = dataUser.createRandomTestUser();
assignee = dataUser.createRandomTestUser();
siteModel = dataSite.usingUser(userWhoStartsTask).createPublicRandomSite();
document = dataContent.usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN);
processModel = dataWorkflow.usingUser(userWhoStartsTask).usingSite(siteModel).usingResource(document)
.createSingleReviewerTaskAndAssignTo(assignee);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION,
description = "Delete invalid process variable")
public void deleteInvalidProcessVariable() throws Exception
{
variableModel = RestProcessVariableModel.getRandomProcessVariableModel("x:InvalidVar");
restProcessModel = restClient.authenticateUser(userWhoStartsTask).withWorkflowAPI()
.getProcesses().getProcessModelByProcessDefId(processModel.getId());
restClient.withWorkflowAPI().usingProcess(restProcessModel).deleteProcessVariable(variableModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, variableModel.getName()));
}
@TestRail(section = {TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION,
description = "Delete empty process variable")
public void deleteEmptyProcessVariable() throws Exception
{
variableModel = new RestProcessVariableModel("","", "d:text");
restProcessModel = restClient.authenticateUser(userWhoStartsTask).withWorkflowAPI()
.getProcesses().getProcessModelByProcessDefId(processModel.getId());
restClient.withWorkflowAPI().usingProcess(restProcessModel).deleteProcessVariable(variableModel);
restClient.assertStatusCodeIs(HttpStatus.METHOD_NOT_ALLOWED)
.assertLastError().containsSummary(RestErrorModel.DELETE_EMPTY_ARGUMENT);
}
@TestRail(section = {TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION,
description = "Delete process variable twice")
public void deleteProcessVariableTwice() throws Exception
{
variableModel = RestProcessVariableModel.getRandomProcessVariableModel("d:text");
restProcessModel = restClient.authenticateUser(userWhoStartsTask).withWorkflowAPI()
.getProcesses().getProcessModelByProcessDefId(processModel.getId());
restClient.withWorkflowAPI().usingProcess(restProcessModel).addProcessVariable(variableModel);
restClient.assertStatusCodeIs(HttpStatus.CREATED);
restClient.withWorkflowAPI().usingProcess(restProcessModel).deleteProcessVariable(variableModel);
restClient.assertStatusCodeIs(HttpStatus.NO_CONTENT);
restClient.withWorkflowAPI().usingProcess(restProcessModel).deleteProcessVariable(variableModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, variableModel.getName()));
}
}
@@ -2,6 +2,7 @@ package org.alfresco.rest.workflow.processes;
import org.alfresco.dataprep.CMISUtil.DocumentType;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestProcessModel;
import org.alfresco.rest.model.RestProcessVariableModel;
import org.alfresco.utility.model.*;
@@ -59,6 +60,6 @@ public class DeleteProcessVariableSanityTests extends RestTest
processModel.setId("incorrectProcessId");
restClient.withWorkflowAPI().usingProcess(processModel).deleteProcessVariable(variableModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, "incorrectProcessId"));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "incorrectProcessId"));
}
}
@@ -0,0 +1,91 @@
package org.alfresco.rest.workflow.processes;
import java.util.List;
import org.alfresco.dataprep.CMISUtil.DocumentType;
import org.alfresco.dataprep.CMISUtil.Priority;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.exception.JsonToModelConversionException;
import org.alfresco.rest.model.RestProcessModel;
import org.alfresco.rest.model.RestProcessModelsCollection;
import org.alfresco.utility.model.FileModel;
import org.alfresco.utility.model.ProcessModel;
import org.alfresco.utility.model.SiteModel;
import org.alfresco.utility.model.TaskModel;
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
*
*/
@Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.PROCESSES, TestGroup.CORE })
public class GetProcessesCoreTests extends RestTest
{
private FileModel document;
private SiteModel siteModel;
private UserModel adminUser, userWhoStartsTask, assignee, adminTenantUser;
private TaskModel task1, task2;
private ProcessModel process3;
@BeforeClass(alwaysRun = true)
public void dataPreparation() throws Exception
{
adminUser = dataUser.getAdminUser();
userWhoStartsTask = dataUser.createRandomTestUser();
assignee = dataUser.createRandomTestUser();
siteModel = dataSite.usingUser(userWhoStartsTask).createPublicRandomSite();
document = dataContent.usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN);
task1 = dataWorkflow.usingUser(userWhoStartsTask).usingSite(siteModel).usingResource(document).createNewTaskAndAssignTo(assignee);
task2 = dataWorkflow.usingUser(userWhoStartsTask).usingSite(siteModel).usingResource(document).createNewTaskAndAssignTo(adminUser);
process3 = dataWorkflow.usingUser(userWhoStartsTask).usingSite(siteModel).usingResource(document).createSingleReviewerTaskAndAssignTo(assignee);
}
@Test(groups = { TestGroup.NETWORKS })
@TestRail(section = {TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION,
description = "Verify admin gets all processes from same network")
public void getProcessFromSameNetworkUsingAdmin() throws Exception
{
adminTenantUser = UserModel.getAdminTenantUser();
restClient.authenticateUser(adminUser).usingTenant().createTenant(adminTenantUser);
UserModel tenantUser = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenant");
UserModel tenantUserAssignee = dataUser.usingUser(adminTenantUser).createUserWithTenant("uTenantAssignee");
RestProcessModel process = restClient.authenticateUser(tenantUser).withWorkflowAPI().addProcess("activitiAdhoc", tenantUserAssignee, false, Priority.Normal);
RestProcessModelsCollection tenantProcesses = restClient.authenticateUser(adminTenantUser).withWorkflowAPI().getProcesses();
restClient.assertStatusCodeIs(HttpStatus.OK);
tenantProcesses.assertThat().entriesListContains("id", process.getId());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION,
description = "Verify user gets all processes started by him ordered descending by id")
public void getProcessesOrderedByIdDESC() throws Exception
{
RestProcessModelsCollection processes = restClient.authenticateUser(userWhoStartsTask).withParams("orderBy=id DESC")
.withWorkflowAPI().getProcesses();
restClient.assertStatusCodeIs(HttpStatus.OK);
processes.assertThat().entriesListIsNotEmpty();
List<RestProcessModel> processesList = processes.getEntries();
processesList.get(0).onModel().assertThat().field("id").is(process3.getId());
processesList.get(1).onModel().assertThat().field("id").is(task2.getNodeRef());
processesList.get(2).onModel().assertThat().field("id").is(task1.getNodeRef());
}
@TestRail(section = { TestGroup.REST_API, TestGroup.PROCESSES }, executionType = ExecutionType.REGRESSION,
description = "Verify user gets processes that matches a where clause")
public void getProcessesWithWhereClauseAsParameter() throws JsonToModelConversionException, Exception
{
RestProcessModelsCollection processes = restClient.authenticateUser(userWhoStartsTask).where("processDefinitionKey='activitiReview'")
.withWorkflowAPI().getProcesses();
restClient.assertStatusCodeIs(HttpStatus.OK);
processes.assertThat().entriesListIsNotEmpty().and().entriesListContains("processDefinitionId", "activitiReview:1:8")
.and().entriesListDoesNotContain("processDefinitionId", "activitiAdhoc:1:4");
}
}
@@ -3,6 +3,7 @@ package org.alfresco.rest.workflow.processes;
import org.alfresco.dataprep.CMISUtil;
import org.alfresco.dataprep.CMISUtil.DocumentType;
import org.alfresco.rest.RestTest;
import org.alfresco.rest.model.RestErrorModel;
import org.alfresco.rest.model.RestProcessModel;
import org.alfresco.rest.model.RestProcessVariableCollection;
import org.alfresco.rest.model.RestProcessVariableModel;
@@ -73,6 +74,6 @@ public class UpdateProcessVariableSanityTests extends RestTest
processModel.setId("abc");
restClient.withWorkflowAPI().usingProcess(processModel).updateProcessVariable(variableModel);
restClient.assertStatusCodeIs(HttpStatus.NOT_FOUND)
.assertLastError().containsSummary(String.format(ErrorModel.ENTITY_NOT_FOUND, "abc"));
.assertLastError().containsSummary(String.format(RestErrorModel.ENTITY_NOT_FOUND, "abc"));
}
}