diff --git a/e2e-test/java/org/alfresco/rest/workflow/tasks/GetTaskItemsCoreTests.java b/e2e-test/java/org/alfresco/rest/workflow/tasks/GetTaskItemsCoreTests.java index 88a8ec16f..916c52283 100644 --- a/e2e-test/java/org/alfresco/rest/workflow/tasks/GetTaskItemsCoreTests.java +++ b/e2e-test/java/org/alfresco/rest/workflow/tasks/GetTaskItemsCoreTests.java @@ -1,6 +1,6 @@ package org.alfresco.rest.workflow.tasks; -import org.alfresco.dataprep.CMISUtil; +import org.alfresco.dataprep.CMISUtil.*; import org.alfresco.rest.RestTest; import org.alfresco.rest.model.*; import org.alfresco.utility.model.*; @@ -15,12 +15,13 @@ import org.testng.annotations.Test; */ public class GetTaskItemsCoreTests extends RestTest { - private UserModel userWhoStartsTask, assignee, adminTenantUser, tenantUser, tenantUserAssignee; + private UserModel adminUser, userWhoStartsTask, assignee; private SiteModel siteModel; private FileModel fileModel; private TaskModel taskModel; - private RestItemModel taskItem; private RestItemModelsCollection itemModels; + private RestProcessModel addedProcess; + private RestTaskModel addedTask; @BeforeClass(alwaysRun=true) public void dataPreparation() throws Exception @@ -28,7 +29,8 @@ public class GetTaskItemsCoreTests extends RestTest userWhoStartsTask = dataUser.createRandomTestUser(); assignee = dataUser.createRandomTestUser(); siteModel = dataSite.usingUser(userWhoStartsTask).createPublicRandomSite(); - fileModel = dataContent.usingSite(siteModel).createContent(CMISUtil.DocumentType.TEXT_PLAIN); + fileModel = dataContent.usingSite(siteModel).createContent(DocumentType.TEXT_PLAIN); + adminUser = dataUser.getAdminUser(); } @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS }, executionType = ExecutionType.REGRESSION, @@ -72,8 +74,8 @@ public class GetTaskItemsCoreTests extends RestTest @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS, TestGroup.CORE }) public void getTaskItemsAfterDeletingProcess() throws Exception { - RestProcessModel addedProcess = restClient.authenticateUser(userWhoStartsTask).withWorkflowAPI().addProcess("activitiAdhoc", assignee, false, CMISUtil.Priority.Normal); - RestTaskModel addedTask = restClient.withWorkflowAPI().getTasks().getTaskModelByProcess(addedProcess); + addedProcess = restClient.authenticateUser(userWhoStartsTask).withWorkflowAPI().addProcess("activitiAdhoc", assignee, false, Priority.Normal); + addedTask = restClient.withWorkflowAPI().getTasks().getTaskModelByProcess(addedProcess); restClient.withWorkflowAPI().usingTask(addedTask).addTaskItem(fileModel); restClient.assertStatusCodeIs(HttpStatus.CREATED); restClient.withWorkflowAPI().usingProcess(addedProcess).deleteProcess(); @@ -83,4 +85,67 @@ public class GetTaskItemsCoreTests extends RestTest restClient.assertStatusCodeIs(HttpStatus.OK); itemModels.assertThat().entriesListIsNotEmpty().and().entriesListContains("name", fileModel.getName()); } + + @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS }, executionType = ExecutionType.REGRESSION, + description = "Verify gets task items call with admin from different network") + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS, TestGroup.CORE, TestGroup.NETWORKS }) + public void getTaskItemsByAdminFromAnotherNetwork() throws Exception + { + UserModel adminTenantUser1 = UserModel.getAdminTenantUser(); + UserModel adminTenantUser2 = UserModel.getAdminTenantUser(); + + restClient.authenticateUser(adminUser).usingTenant().createTenant(adminTenantUser1); + restClient.usingTenant().createTenant(adminTenantUser2); + + UserModel tenantUser1 = dataUser.usingUser(adminTenantUser1).createUserWithTenant("uTenant"); + UserModel tenantUserAssignee1 = dataUser.usingUser(adminTenantUser1).createUserWithTenant("uTenantAssignee"); + + siteModel = dataSite.usingUser(adminTenantUser1).createPublicRandomSite(); + fileModel = dataContent.usingUser(adminTenantUser1).usingSite(siteModel).createContent(DocumentType.XML); + addedProcess = restClient.authenticateUser(tenantUser1).withWorkflowAPI().addProcess("activitiAdhoc", tenantUserAssignee1, false, Priority.Normal); + addedTask = restClient.withWorkflowAPI().getTasks().getTaskModelByProcess(addedProcess); + restClient.withWorkflowAPI().usingTask(addedTask).addTaskItem(fileModel); + + restClient.authenticateUser(adminTenantUser2).withWorkflowAPI().usingTask(addedTask).getTaskItems(); + restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN) + .assertLastError().containsSummary(RestErrorModel.PERMISSION_WAS_DENIED); + } + + @TestRail(section = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS }, executionType = ExecutionType.REGRESSION, + description = "Verify gets task items call returns only task items inside network") + @Test(groups = { TestGroup.REST_API, TestGroup.WORKFLOW, TestGroup.TASKS, TestGroup.CORE, TestGroup.NETWORKS }) + public void getTaskItemsReturnsOnlyItemsFromThatNetwork() throws Exception + { + UserModel adminTenantUser1 = UserModel.getAdminTenantUser(); + UserModel adminTenantUser2 = UserModel.getAdminTenantUser(); + + restClient.authenticateUser(adminUser).usingTenant().createTenant(adminTenantUser1); + restClient.usingTenant().createTenant(adminTenantUser2); + + UserModel tenantUser1 = dataUser.usingUser(adminTenantUser1).createUserWithTenant("uTenant1"); + UserModel tenantUser2 = dataUser.usingUser(adminTenantUser2).createUserWithTenant("uTenant2"); + + SiteModel siteModel1 = dataSite.usingUser(adminTenantUser1).createPublicRandomSite(); + FileModel fileModel1 = dataContent.usingUser(adminTenantUser1).usingSite(siteModel1).createContent(DocumentType.XML); + + RestProcessModel addedProcess1 = restClient.authenticateUser(adminTenantUser1).withWorkflowAPI().addProcess("activitiAdhoc", tenantUser1, false, Priority.Normal); + RestTaskModel addedTask1 = restClient.withWorkflowAPI().getTasks().getTaskModelByProcess(addedProcess1); + RestItemModel taskItem1 = restClient.withWorkflowAPI().usingTask(addedTask1).addTaskItem(fileModel1); + + SiteModel siteModel2 = dataSite.usingUser(adminTenantUser2).createPublicRandomSite(); + FileModel fileModel2 = dataContent.usingUser(adminTenantUser2).usingSite(siteModel2).createContent(DocumentType.XML); + + RestProcessModel addedProcess2 = restClient.authenticateUser(adminTenantUser2).withWorkflowAPI().addProcess("activitiAdhoc", tenantUser2, false, Priority.Normal); + RestTaskModel addedTask2 = restClient.withWorkflowAPI().getTasks().getTaskModelByProcess(addedProcess2); + RestItemModel taskItem2 = restClient.withWorkflowAPI().usingTask(addedTask2).addTaskItem(fileModel2); + + itemModels = restClient.withWorkflowAPI().usingTask(addedTask2).getTaskItems(); + restClient.assertStatusCodeIs(HttpStatus.OK); + itemModels.assertThat() + .entriesListIsNotEmpty().and() + .entriesListContains("id", taskItem2.getId()).and() + .entriesListContains("name", fileModel2.getName()).and() + .entriesListDoesNotContain("id", taskItem1.getId()).and() + .entriesListDoesNotContain("name", fileModel1.getName()); + } }