From 25af74cfffdcea1a6d1d9a7fc389bee2cd08a8b6 Mon Sep 17 00:00:00 2001 From: Alexandru-Eusebiu Epure Date: Fri, 6 Oct 2017 15:30:34 +0300 Subject: [PATCH] REPO-2755 : REST API & CMIS TAS sanity builds Change testgroup from CORE to REGRESSION Joined NodesUnlockTests unlock with different user is done in the same test, to avoid redundant opperations. --- .../nodes/NodesContentAndVersioningTests.java | 14 +-- .../alfresco/rest/nodes/NodesLockTests.java | 36 +++---- .../rest/nodes/NodesParentChildrenTests.java | 4 +- .../org/alfresco/rest/nodes/NodesTests.java | 2 +- .../alfresco/rest/nodes/NodesUnlockTests.java | 100 +++++------------- 5 files changed, 54 insertions(+), 102 deletions(-) diff --git a/e2e-test/java/org/alfresco/rest/nodes/NodesContentAndVersioningTests.java b/e2e-test/java/org/alfresco/rest/nodes/NodesContentAndVersioningTests.java index f4da4d307..d5f433dd6 100644 --- a/e2e-test/java/org/alfresco/rest/nodes/NodesContentAndVersioningTests.java +++ b/e2e-test/java/org/alfresco/rest/nodes/NodesContentAndVersioningTests.java @@ -57,7 +57,7 @@ public class NodesContentAndVersioningTests extends RestTest @TestRail(section = { TestGroup.REST_API,TestGroup.NODES }, executionType = ExecutionType.SANITY, description = "Verify file name in Content-Disposition header") - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.SANITY}) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.SANITY}) public void checkFileNameWithRegularCharsInHeader() throws Exception { restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("attachment=false").getNodeContent(); @@ -68,7 +68,7 @@ public class NodesContentAndVersioningTests extends RestTest @Bug(id="MNT-17545", description = "HTTP Header Injection in ContentStreamer", status = Bug.Status.FIXED) @TestRail(section = { TestGroup.REST_API,TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify file name with special chars is escaped in Content-Disposition header") - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE}) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION}) public void checkFileNameWithSpecialCharsInHeader() throws Exception { char c1 = 127; @@ -80,7 +80,7 @@ public class NodesContentAndVersioningTests extends RestTest restClient.assertHeaderValueContains("Content-Disposition","filename=\" test .txt\""); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.SANITY }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.SANITY, description = "Verify that alfresco returns the correct encoding for files created via REST.") public void verifyFileEncodingUsingRestAPI() throws Exception @@ -109,7 +109,7 @@ public class NodesContentAndVersioningTests extends RestTest restClient.withCoreAPI().usingNode(iso8859File).getNodeContent().assertThat().contentType(iso8859Type); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.SANITY }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.SANITY, description = "Verify updating a node content.") public void testUpdateNodeContent() throws Exception @@ -133,7 +133,7 @@ public class NodesContentAndVersioningTests extends RestTest assertTrue(updatedBodyNodeVersion.charAt(0) > initialNodeVersion.charAt(0)); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.SANITY }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.SANITY, description = "Test copy a node.") public void testCopyNode() throws Exception @@ -166,7 +166,7 @@ public class NodesContentAndVersioningTests extends RestTest assertFalse(initialNode.getIsLocked()); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.SANITY }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.SANITY, description = "Test retrieving node versions, a specific version and version content.") public void testGetVersionContent() throws Exception @@ -220,7 +220,7 @@ public class NodesContentAndVersioningTests extends RestTest restClient.assertHeaderValueContains("Content-Disposition", String.format("filename=\"%s\"", file2.getName())); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.SANITY }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.SANITY, description = "Test revert and delete a node version.") public void testRevertDeleteVersion() throws Exception diff --git a/e2e-test/java/org/alfresco/rest/nodes/NodesLockTests.java b/e2e-test/java/org/alfresco/rest/nodes/NodesLockTests.java index cef556b7b..e5eb760a9 100644 --- a/e2e-test/java/org/alfresco/rest/nodes/NodesLockTests.java +++ b/e2e-test/java/org/alfresco/rest/nodes/NodesLockTests.java @@ -40,7 +40,7 @@ public class NodesLockTests extends RestTest } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can not lock PERSISTENT after EPHEMERAL lock made by different user") public void lockEphemeralAndRelockPersistentDifferentUser() throws Exception @@ -57,7 +57,7 @@ public class NodesLockTests extends RestTest lockBodyModel.setLifetime("EPHEMERAL"); lockBodyModel.setTimeToExpire(20); lockBodyModel.setType("FULL"); - restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include?isLocked").lockNode(lockBodyModel); + restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include=isLocked").lockNode(lockBodyModel); restClient.assertStatusCodeIs(HttpStatus.OK); STEP("4. Verify with user1 that the file is locked."); @@ -78,9 +78,9 @@ public class NodesLockTests extends RestTest .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, - description = "Verify Collaborator can not lock PERSISTENT after EPHEMERAL lock made by different user") + description = "Verify Collaborator can not lock EPHEMERAL after EPHEMERAL lock made by different user") public void lockEphemeralAndRelockEphemeralDifferentUser() throws Exception { STEP("1. Adds a file in the site by administrator."); @@ -116,7 +116,7 @@ public class NodesLockTests extends RestTest .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can lock EPHEMERAL after EPHEMERAL lock made by same user") public void lockEphemeralAndRelockEphemeralSameUser() throws Exception @@ -155,7 +155,7 @@ public class NodesLockTests extends RestTest } @Bug(id = "MNT-17612", status = Status.FIXED, description = "AccessDeniedException in AOS Edit Offline Upload New Version") - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can lock PERSISTENT after EPHEMERAL lock made by same user") public void lockEphemeralAndRelockPersistentSameUser() throws Exception @@ -200,7 +200,7 @@ public class NodesLockTests extends RestTest .assertThat().field("properties").contains("lockType=WRITE_LOCK"); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can not lock EPHEMERAL after PERSISTENT lock made by different user") public void lockPersistentAndRelockEphemeralDifferentUser() throws Exception @@ -238,7 +238,7 @@ public class NodesLockTests extends RestTest .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can not lock PERSISTENT after PERSISTENT lock made by different user") public void lockPersistentAndRelockPersistentDifferentUser() throws Exception @@ -276,7 +276,7 @@ public class NodesLockTests extends RestTest .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can lock EPHEMERAL after PERSISTENT lock made by different user is expired") public void lockPersistentAndRelockEphemeralAfterExpiredLockDifferentUser() throws Exception @@ -316,7 +316,7 @@ public class NodesLockTests extends RestTest } @Bug(id = "MNT-17612", status = Status.FIXED, description = "AccessDeniedException in AOS Edit Offline Upload New Version") - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can lock PERSISTENT after EPHEMERAL lock made by another user is expired") public void lockEphemeralAndRelockPersistentAfterExpiredLockDifferentUser() throws Exception @@ -355,7 +355,7 @@ public class NodesLockTests extends RestTest .assertThat().field("properties").contains("lockType=WRITE_LOCK"); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can lock EPHEMERAL after EPHEMERAL lock made by another user is expired") public void lockEphemeralAndRelockEphemeralAfterExpiredLockDifferentUser() throws Exception @@ -394,7 +394,7 @@ public class NodesLockTests extends RestTest .assertThat().field("properties").contains("lockType=READ_ONLY_LOCK"); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can lock PERSISTENT after PERSISTENT lock made by different user is expired") public void lockPersistentAndRelockPersistentAfterExpiredLockDifferentUser() throws Exception @@ -433,7 +433,7 @@ public class NodesLockTests extends RestTest .assertThat().field("properties").contains("lockType=WRITE_LOCK"); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can lock EPHEMERAL after EPHEMERAL lock made by same user is expired") public void lockEphemeralAndRelockEphemeralAfterExpiredLockSameUser() throws Exception @@ -472,7 +472,7 @@ public class NodesLockTests extends RestTest .assertThat().field("properties").contains("lockType=READ_ONLY_LOCK"); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can lock PERSISTENT after PERSISTENT lock made by same user is expired") public void lockPersistentAndRelockPersistentAfterExpiredLockSameUser() throws Exception @@ -510,7 +510,7 @@ public class NodesLockTests extends RestTest .assertThat().field("properties").contains("lockType=WRITE_LOCK"); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can lock EPHEMERAL after PERSISTENT lock made by same user is expired") public void lockPersistentAndRelockEphemeralAfterExpiredLockSameUser() throws Exception @@ -550,7 +550,7 @@ public class NodesLockTests extends RestTest } @Bug(id = "MNT-17612", status = Status.FIXED, description = "AccessDeniedException in AOS Edit Offline Upload New Version") - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can lock PERSISTENT after EPHEMERAL lock made by same user is expired") public void lockEphemeralAndRelockPersistentAfterExpiredLockSameUser() throws Exception @@ -590,7 +590,7 @@ public class NodesLockTests extends RestTest .assertThat().field("properties").contains("lockType=WRITE_LOCK"); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can lock PERSISTENT after PERSISTENT lock made by same user") public void lockPersistentAndRelockPersistentSameUser() throws Exception @@ -628,7 +628,7 @@ public class NodesLockTests extends RestTest .assertThat().field("properties").contains("lockType=WRITE_LOCK"); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION }) @TestRail(section = { TestGroup.REST_API, TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify Collaborator can lock EPHERMERAL after PERSISTENT lock made by same user") public void lockPersistentAndRelockEphemeralSameUser() throws Exception diff --git a/e2e-test/java/org/alfresco/rest/nodes/NodesParentChildrenTests.java b/e2e-test/java/org/alfresco/rest/nodes/NodesParentChildrenTests.java index 097f652e3..417eb99d1 100644 --- a/e2e-test/java/org/alfresco/rest/nodes/NodesParentChildrenTests.java +++ b/e2e-test/java/org/alfresco/rest/nodes/NodesParentChildrenTests.java @@ -46,9 +46,9 @@ public class NodesParentChildrenTests extends RestTest .assertThat().field("name").contains(node.getName()); } - @TestRail(section = { TestGroup.REST_API,TestGroup.NODES }, executionType = ExecutionType.SANITY, + @TestRail(section = { TestGroup.REST_API,TestGroup.NODES }, executionType = ExecutionType.REGRESSION, description = "Verify new folder node is created as children on -my- posting as MultiPart content type") - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.SANITY}) + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.REGRESSION}) public void createNewFolderNodeWithMultiPartForms() throws Exception { //configuring multipart form diff --git a/e2e-test/java/org/alfresco/rest/nodes/NodesTests.java b/e2e-test/java/org/alfresco/rest/nodes/NodesTests.java index 7bad114a4..b122296c6 100644 --- a/e2e-test/java/org/alfresco/rest/nodes/NodesTests.java +++ b/e2e-test/java/org/alfresco/rest/nodes/NodesTests.java @@ -51,6 +51,6 @@ public class NodesTests extends RestTest * - destinationFolder * - file */ - response.assertThat().field("parentId").is(destinationFolder.getId()); + response.assertThat().field("parentId").is(destinationFolder.getId()); } } diff --git a/e2e-test/java/org/alfresco/rest/nodes/NodesUnlockTests.java b/e2e-test/java/org/alfresco/rest/nodes/NodesUnlockTests.java index 9be1281c6..ca10a5c59 100644 --- a/e2e-test/java/org/alfresco/rest/nodes/NodesUnlockTests.java +++ b/e2e-test/java/org/alfresco/rest/nodes/NodesUnlockTests.java @@ -37,85 +37,29 @@ public class NodesUnlockTests extends RestTest user2.setUserRole(UserRole.SiteCollaborator); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) - @TestRail(section={TestGroup.REST_API, TestGroup.NODES}, executionType= ExecutionType.REGRESSION, - description= "Verify Collaborator can unlock after EPHEMERAL lock made by same user") - public void lockEphemeralAndUnlockWithSameUser() throws Exception + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.SANITY }) + @TestRail(section={TestGroup.REST_API, TestGroup.NODES}, executionType= ExecutionType.SANITY, + description= "Verify Collaborator canot unlock EPHEMERAL lock made by different user, but can unlock EPHEMERAL lock made by same user") + public void lockEphemeralAndUnlock() throws Exception { STEP("1. Add user(s) as collaborators to the site created by administrator and add a file in this site."); file1 = dataContent.usingUser(adminUser).usingSite(publicSite).createContent(DocumentType.TEXT_PLAIN); - + STEP("2. Verify with user1 that the file is not locked."); RestNodeModel file1Model1 = restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include=isLocked").getNode(); file1Model1.assertThat().field("isLocked").is(false); - + STEP("3. Lock the file using mode EPHEMERAL with user1 (POST nodes/{nodeId}/lock)."); RestNodeLockBodyModel lockBodyModel = new RestNodeLockBodyModel(); lockBodyModel.setLifetime("EPHEMERAL"); lockBodyModel.setTimeToExpire(20); restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include?isLocked").lockNode(lockBodyModel); restClient.assertStatusCodeIs(HttpStatus.OK); - + STEP("4. Verify with user1 that the file is locked."); RestNodeModel file1Model2 = restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include=isLocked").getNode(); file1Model2.assertThat().field("isLocked").is(true); - - STEP("5. Unlock the file with user1 while the file is still locked"); - RestNodeModel file1Model3 = restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include=isLocked").unlockNode(); - file1Model3.assertThat().field("isLocked").is(false); - } - - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) - @TestRail(section={TestGroup.REST_API, TestGroup.NODES}, executionType= ExecutionType.REGRESSION, - description= "Verify Collaborator can unlock after PERSISTENT lock made by same user") - public void lockPersistentAndUnlockSameUser() throws Exception{ - - STEP("1. Add user(s) as collaborators to the site created by administrator and add a file in this site."); - file1 = dataContent.usingUser(adminUser).usingSite(publicSite).createContent(DocumentType.TEXT_PLAIN); - - STEP("2. Verify with admin that the file is not locked."); - RestNodeModel file1Model1 = restClient.authenticateUser(adminUser).withCoreAPI().usingNode(file1).usingParams("include=isLocked").getNode(); - file1Model1.assertThat().field("isLocked").is(false); - - STEP("3. Lock the file using mode PERSISTENT with user1 (POST nodes/{nodeId}/lock)."); - RestNodeLockBodyModel lockBodyModel = new RestNodeLockBodyModel(); - lockBodyModel.setLifetime("PERSISTENT"); - lockBodyModel.setTimeToExpire(20); - restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include?isLocked").lockNode(lockBodyModel); - restClient.assertStatusCodeIs(HttpStatus.OK); - - STEP("4. Verify with user1 that the file is locked."); - RestNodeModel file1Model2 = restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include=isLocked").getNode(); - file1Model2.assertThat().field("isLocked").is(true); - - STEP("5. Unlock the file with user1 while the file is still locked"); - RestNodeModel file1Model3 = restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include=isLocked").unlockNode(); - file1Model3.assertThat().field("isLocked").is(false); - } - - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) - @TestRail(section={TestGroup.REST_API, TestGroup.NODES}, executionType= ExecutionType.REGRESSION, - description= "Verify Collaborator can not unlock file after EPHEMERAL lock made by different user") - public void lockEphemeralAndUnlockWithDifferentUser() throws Exception{ - - STEP("1. Add user(s) as collaborators to the site created by administrator and add a file in this site."); - file1 = dataContent.usingUser(adminUser).usingSite(publicSite).createContent(DocumentType.TEXT_PLAIN); - - STEP("2. Verify with admin that the file is not locked."); - RestNodeModel file1Model1 = restClient.authenticateUser(adminUser).withCoreAPI().usingNode(file1).usingParams("include=isLocked").getNode(); - file1Model1.assertThat().field("isLocked").is(false); - - STEP("3. Lock the file using mode EPHEMERAL with user1 (POST nodes/{nodeId}/lock)."); - RestNodeLockBodyModel lockBodyModel = new RestNodeLockBodyModel(); - lockBodyModel.setLifetime("EPHEMERAL"); - lockBodyModel.setTimeToExpire(20); - restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include?isLocked").lockNode(lockBodyModel); - restClient.assertStatusCodeIs(HttpStatus.OK); - - STEP("4. Verify with user1 that the file is locked."); - RestNodeModel file1Model2 = restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include=isLocked").getNode(); - file1Model2.assertThat().field("isLocked").is(true); - + STEP("5. Cannot unlock the file with user2 while the file is still locked"); restClient.authenticateUser(user2).withCoreAPI().usingNode(file1).usingParams("include=isLocked").unlockNode(); restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN) @@ -123,31 +67,35 @@ public class NodesUnlockTests extends RestTest .containsErrorKey(RestErrorModel.PERMISSION_DENIED_ERRORKEY) .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED) .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); + + STEP("6. Unlock the file with user1 while the file is still locked"); + RestNodeModel file1Model3 = restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include=isLocked").unlockNode(); + file1Model3.assertThat().field("isLocked").is(false); } - @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.CORE }) - @TestRail(section={TestGroup.REST_API, TestGroup.NODES}, executionType= ExecutionType.REGRESSION, - description= "Verify Collaborator can not unlock file after PERSISTENT lock made by different user") - public void lockPersistentAndUnlockWithDifferentUser() throws Exception{ - + @Test(groups = { TestGroup.REST_API, TestGroup.NODES, TestGroup.SANITY }) + @TestRail(section={TestGroup.REST_API, TestGroup.NODES}, executionType= ExecutionType.SANITY, + description= "Verify Collaborator canot unlock PERSISTENT lock made by different user, but can unlock PERSISTENT lock made by same user") + public void lockPersistentAndUnlock() throws Exception{ + STEP("1. Add user(s) as collaborators to the site created by administrator and add a file in this site."); file1 = dataContent.usingUser(adminUser).usingSite(publicSite).createContent(DocumentType.TEXT_PLAIN); - + STEP("2. Verify with admin that the file is not locked."); RestNodeModel file1Model1 = restClient.authenticateUser(adminUser).withCoreAPI().usingNode(file1).usingParams("include=isLocked").getNode(); file1Model1.assertThat().field("isLocked").is(false); - + STEP("3. Lock the file using mode PERSISTENT with user1 (POST nodes/{nodeId}/lock)."); RestNodeLockBodyModel lockBodyModel = new RestNodeLockBodyModel(); lockBodyModel.setLifetime("PERSISTENT"); lockBodyModel.setTimeToExpire(20); restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include?isLocked").lockNode(lockBodyModel); restClient.assertStatusCodeIs(HttpStatus.OK); - - STEP("4. Verify with admin that the file is locked."); + + STEP("4. Verify with user1 that the file is locked."); RestNodeModel file1Model2 = restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include=isLocked").getNode(); file1Model2.assertThat().field("isLocked").is(true); - + STEP("5. Cannot unlock the file with user2 while the file is still locked"); restClient.authenticateUser(user2).withCoreAPI().usingNode(file1).usingParams("include=isLocked").unlockNode(); restClient.assertStatusCodeIs(HttpStatus.FORBIDDEN) @@ -155,6 +103,10 @@ public class NodesUnlockTests extends RestTest .containsErrorKey(RestErrorModel.PERMISSION_DENIED_ERRORKEY) .containsSummary(RestErrorModel.PERMISSION_WAS_DENIED) .descriptionURLIs(RestErrorModel.RESTAPIEXPLORER); + + STEP("6. Unlock the file with user1 while the file is still locked"); + RestNodeModel file1Model3 = restClient.authenticateUser(user1).withCoreAPI().usingNode(file1).usingParams("include=isLocked").unlockNode(); + file1Model3.assertThat().field("isLocked").is(false); } }