From a95eb5613ea7922a0c30a66d2713289548b60000 Mon Sep 17 00:00:00 2001 From: Martin Muller Date: Fri, 5 Aug 2016 13:47:16 +0000 Subject: [PATCH] Merged RETURN-OF-THE-API (5.2.0) to 5.2.N (5.2.1) 128594 jvonka: V1 REST API: cleanup and rationalise new api tests (re: remotable helpers & runAs user / admin) - round 2 REPO-113 git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@129174 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rest/AbstractSingleNetworkSiteTest.java | 15 +-- .../org/alfresco/rest/DeletedNodesTest.java | 23 ++--- .../rest/api/tests/AbstractBaseApiTest.java | 94 ++++++++----------- .../rest/api/tests/ActivitiesPostingTest.java | 17 ++-- .../alfresco/rest/api/tests/NodeApiTest.java | 73 +++++++------- .../api/tests/NodeAssociationsApiTest.java | 72 ++++++++------ .../rest/api/tests/NodeVersionsApiTest.java | 32 +++---- .../rest/api/tests/QueriesApiTest.java | 7 +- .../rest/api/tests/RenditionsTest.java | 16 ++-- .../rest/api/tests/SharedLinkApiTest.java | 4 +- 10 files changed, 177 insertions(+), 176 deletions(-) diff --git a/source/test-java/org/alfresco/rest/AbstractSingleNetworkSiteTest.java b/source/test-java/org/alfresco/rest/AbstractSingleNetworkSiteTest.java index 36526be470..4fba294ee2 100644 --- a/source/test-java/org/alfresco/rest/AbstractSingleNetworkSiteTest.java +++ b/source/test-java/org/alfresco/rest/AbstractSingleNetworkSiteTest.java @@ -31,7 +31,6 @@ import static org.alfresco.rest.api.tests.util.RestApiUtil.toJsonAsStringNonNull import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.rest.api.tests.AbstractBaseApiTest; -import org.alfresco.rest.api.tests.NodeApiTest; import org.alfresco.rest.api.tests.RepoService; import org.alfresco.rest.api.tests.client.HttpResponse; import org.alfresco.rest.api.tests.client.data.ContentInfo; @@ -57,8 +56,8 @@ public class AbstractSingleNetworkSiteTest extends AbstractBaseApiTest protected RepoService.TestNetwork networkOne; protected RepoService.TestPerson u1; - protected RepoService.TestSite tSite; - protected NodeRef docLibNodeRef; + protected String tSiteId; + protected String tDocLibNodeId; protected JacksonUtil jacksonUtil; @@ -80,11 +79,13 @@ public class AbstractSingleNetworkSiteTest extends AbstractBaseApiTest networkOne = getRepoService().createNetwork(this.getClass().getName().toLowerCase(), true); networkOne.create(); u1 = networkOne.createUser(); - tSite = createSite(networkOne, u1, SiteVisibility.PRIVATE); + + setRequestContext(networkOne.getId(), u1.getId(), null); + + tSiteId = createSite("Test Site - " + System.currentTimeMillis(), SiteVisibility.PRIVATE).getId(); + tDocLibNodeId = getSiteContainerNodeId(tSiteId, "documentLibrary"); - AuthenticationUtil.setFullyAuthenticatedUser(u1.getId()); - docLibNodeRef = tSite.getContainerNodeRef("documentLibrary"); - AuthenticationUtil.clearCurrentSecurityContext(); + setRequestContext(null); } @After diff --git a/source/test-java/org/alfresco/rest/DeletedNodesTest.java b/source/test-java/org/alfresco/rest/DeletedNodesTest.java index 07ca58f31a..124fdaac22 100644 --- a/source/test-java/org/alfresco/rest/DeletedNodesTest.java +++ b/source/test-java/org/alfresco/rest/DeletedNodesTest.java @@ -79,7 +79,7 @@ public class DeletedNodesTest extends AbstractSingleNetworkSiteTest Date now = new Date(); String folder1 = "folder" + now.getTime() + "_1"; - Folder createdFolder = createFolder(docLibNodeRef.getId(), folder1, null); + Folder createdFolder = createFolder(tDocLibNodeId, folder1, null); assertNotNull(createdFolder); //Create a folder outside a site @@ -95,9 +95,9 @@ public class DeletedNodesTest extends AbstractSingleNetworkSiteTest assertNotNull(nodes); int numOfNodes = nodes.size(); - delete(URL_NODES, u1.getId(), document.getId(), 204); - delete(URL_NODES, u1.getId(), createdFolder.getId(), 204); - delete(URL_NODES, u1.getId(), createdFolderNonSite.getId(), 204); + deleteNode(document.getId()); + deleteNode(createdFolder.getId()); + deleteNode(createdFolderNonSite.getId()); response = getAll(URL_DELETED_NODES, u1.getId(), paging, 200); nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); @@ -121,7 +121,7 @@ public class DeletedNodesTest extends AbstractSingleNetworkSiteTest assertTrue(fNode.getArchivedAt().after(now)); path = fNode.getPath(); assertNotNull(path); - assertEquals("/Company Home/Sites/"+tSite.getSiteId()+"/documentLibrary", path.getName()); + assertEquals("/Company Home/Sites/"+tSiteId+"/documentLibrary", path.getName()); assertTrue(path.getIsComplete()); assertNull("We don't show the parent id for a deleted node",fNode.getParentId()); @@ -165,7 +165,7 @@ public class DeletedNodesTest extends AbstractSingleNetworkSiteTest Date now = new Date(); String folder1 = "folder" + now.getTime() + "_1"; - Folder createdFolder = createFolder(docLibNodeRef.getId(), folder1, null); + Folder createdFolder = createFolder(tDocLibNodeId, folder1, null); assertNotNull(createdFolder); //Create a folder outside a site @@ -173,19 +173,20 @@ public class DeletedNodesTest extends AbstractSingleNetworkSiteTest assertNotNull(createdFolderNonSite); Document document = createDocument(createdFolder, "restoreme.txt"); - delete(URL_NODES, u1.getId(), document.getId(), 204); + deleteNode(document.getId()); + //Create another document with the same name Document documentSameName = createDocument(createdFolder, "restoreme.txt"); //Can't restore a node of the same name post(URL_DELETED_NODES+"/"+document.getId()+"/restore", u1.getId(), null, null, Status.STATUS_CONFLICT); - delete(URL_NODES, u1.getId(), documentSameName.getId(), 204); + deleteNode(documentSameName.getId()); //Now we can restore it. post(URL_DELETED_NODES+"/"+document.getId()+"/restore", u1.getId(), null, null, 200); - delete(URL_NODES, u1.getId(), createdFolder.getId(), 204); + deleteNode(createdFolder.getId()); //We deleted the parent folder so lets see if we can restore a child doc, hopefully not. post(URL_DELETED_NODES+"/"+documentSameName.getId()+"/restore", u1.getId(), null, null, Status.STATUS_NOT_FOUND); @@ -210,10 +211,10 @@ public class DeletedNodesTest extends AbstractSingleNetworkSiteTest Date now = new Date(); String folder1 = "folder" + now.getTime() + "_1"; - Folder createdFolder = createFolder(docLibNodeRef.getId(), folder1, null); + Folder createdFolder = createFolder(tDocLibNodeId, folder1, null); assertNotNull(createdFolder); - delete(URL_NODES, u1.getId(), createdFolder.getId(), 204); + deleteNode(createdFolder.getId()); HttpResponse response = getSingle(URL_DELETED_NODES, u1.getId(), createdFolder.getId(), 200); Folder fNode = jacksonUtil.parseEntry(response.getJsonResponse(), Folder.class); diff --git a/source/test-java/org/alfresco/rest/api/tests/AbstractBaseApiTest.java b/source/test-java/org/alfresco/rest/api/tests/AbstractBaseApiTest.java index bb7a869ab5..7b74cd7832 100644 --- a/source/test-java/org/alfresco/rest/api/tests/AbstractBaseApiTest.java +++ b/source/test-java/org/alfresco/rest/api/tests/AbstractBaseApiTest.java @@ -33,16 +33,12 @@ import static org.junit.Assert.assertNull; import static org.junit.Assert.fail; import org.alfresco.repo.security.authentication.AuthenticationUtil; -import org.alfresco.repo.tenant.TenantUtil; -import org.alfresco.repo.tenant.TenantUtil.TenantRunAsWork; import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.rest.api.Nodes; import org.alfresco.rest.api.model.Site; import org.alfresco.rest.api.nodes.NodesEntityResource; -import org.alfresco.rest.api.tests.RepoService.SiteInformation; import org.alfresco.rest.api.tests.RepoService.TestNetwork; import org.alfresco.rest.api.tests.RepoService.TestPerson; -import org.alfresco.rest.api.tests.RepoService.TestSite; import org.alfresco.rest.api.tests.client.HttpResponse; import org.alfresco.rest.api.tests.client.PublicApiClient; import org.alfresco.rest.api.tests.client.PublicApiHttpClient.BinaryPayload; @@ -52,6 +48,7 @@ import org.alfresco.rest.api.tests.client.data.Document; import org.alfresco.rest.api.tests.client.data.Folder; import org.alfresco.rest.api.tests.client.data.Node; import org.alfresco.rest.api.tests.client.data.Rendition; +import org.alfresco.rest.api.tests.client.data.SiteMember; import org.alfresco.rest.api.tests.client.data.SiteRole; import org.alfresco.rest.api.tests.util.MultiPartBuilder; import org.alfresco.rest.api.tests.util.RestApiUtil; @@ -59,6 +56,7 @@ import org.alfresco.service.cmr.security.MutableAuthenticationService; import org.alfresco.service.cmr.security.PersonService; import org.alfresco.service.cmr.site.SiteVisibility; import org.alfresco.util.TempFileProvider; +import org.json.simple.JSONObject; import org.junit.After; import org.junit.Before; import org.springframework.util.ResourceUtils; @@ -113,7 +111,7 @@ public abstract class AbstractBaseApiTest extends EnterpriseTestApi * User two from network one */ protected TestPerson userTwoN1; - protected TestSite userOneN1Site; + protected String userOneN1SiteId; protected String user1; protected String user2; @@ -148,15 +146,20 @@ public abstract class AbstractBaseApiTest extends EnterpriseTestApi userOneN1 = networkOne.createUser(); userTwoN1 = networkOne.createUser(); - userOneN1Site = createSite(networkOne, userOneN1, SiteVisibility.PRIVATE); + setRequestContext(networkOne.getId(), userOneN1.getId(), null); + + userOneN1SiteId = createSite("TestSite A - " + System.currentTimeMillis(), SiteVisibility.PRIVATE).getId(); + + setRequestContext(null); } @After public void tearDown() throws Exception { - if ((networkOne != null) && (userOneN1 != null) && (userOneN1Site != null)) + if ((networkOne != null) && (userOneN1 != null) && (userOneN1SiteId != null)) { - deleteSite(networkOne.getId(), userOneN1.getId(), userOneN1Site.getSiteId(), 204); + setRequestContext(networkOne.getId(), userOneN1.getId(), null); + deleteSite(userOneN1SiteId, 204); } AuthenticationUtil.setAdminUserAsFullyAuthenticatedUser(); @@ -423,12 +426,7 @@ public abstract class AbstractBaseApiTest extends EnterpriseTestApi return response; } - - protected HttpResponse delete(String url, String runAsUser, String entityId, Map params, Map headers, int expectedStatus) throws Exception - { - return delete(url, runAsUser, entityId, params, headers, null, expectedStatus); - } - + protected HttpResponse delete(String url, String runAsUser, String entityId, Map params, Map headers, String apiName, int expectedStatus) throws Exception { RequestBuilder requestBuilder = httpClient.new DeleteRequestBuilder() @@ -451,6 +449,9 @@ public abstract class AbstractBaseApiTest extends EnterpriseTestApi return createUser(username, "password"); } + /** + * TODO implement as remote api call + */ protected String createUser(String username, String password) { PersonInfo personInfo = new PersonInfo(username, username, username, password, null, null, null, null, null, null, null); @@ -458,36 +459,31 @@ public abstract class AbstractBaseApiTest extends EnterpriseTestApi return person.getId(); } + /** + * TODO implement as remote api call + */ protected String getOrCreateUser(String username, String password) { PersonInfo personInfo = new PersonInfo(username, username, username, password, null, null, null, null, null, null, null); RepoService.TestPerson person = repoService.getOrCreateUser(personInfo, username, null); return person.getId(); } - - // @deprecated - protected TestSite createSite(final TestNetwork testNetwork, TestPerson user, final SiteVisibility siteVisibility) + + protected SiteMember addSiteMember(String siteId, String userId, final SiteRole siteRole) throws Exception { - final String siteName = "RandomSite" + System.currentTimeMillis(); - - final TestSite site = TenantUtil.runAsUserTenant(() -> { - SiteInformation siteInfo = new SiteInformation(siteName, siteName, siteName, siteVisibility); - return repoService.createSite(testNetwork, siteInfo); - }, user.getId(), testNetwork.getId()); - - return site; + SiteMember siteMember = new SiteMember(userId, siteRole.name()); + HttpResponse response = publicApiClient.post(getScope(), "sites", siteId, "members", null, siteMember.postJSON().toString()); + checkStatus(201, response.getStatusCode()); + return SiteMember.parseSiteMember(siteMember.getSiteId(), (JSONObject)response.getJsonResponse().get("entry")); } - protected Site createSite(String networkId, String userId, SiteVisibility siteVisibility) throws Exception + protected Site createSite(String siteTitle, SiteVisibility siteVisibility) throws Exception { - String siteTitle = "RandomSite" + System.currentTimeMillis(); - return createSite(networkId, userId, null, siteTitle, siteVisibility); + return createSite(null, siteTitle, siteVisibility); } - protected Site createSite(String networkId, String userId, String siteId, String siteTitle, SiteVisibility siteVisibility) throws Exception + protected Site createSite(String siteId, String siteTitle, SiteVisibility siteVisibility) throws Exception { - publicApiClient.setRequestContext(new RequestContext(networkId, userId)); - Site site = new Site(); site.setId(siteId); site.setTitle(siteTitle); @@ -497,13 +493,10 @@ public abstract class AbstractBaseApiTest extends EnterpriseTestApi return RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Site.class); } - protected HttpResponse deleteSite(String networkId, String userId, String siteId, int expectedStatus) throws Exception + protected HttpResponse deleteSite(String siteId, int expectedStatus) throws Exception { - publicApiClient.setRequestContext(new RequestContext(networkId, userId)); - HttpResponse response = publicApiClient.delete(getScope(), "sites", siteId, null, null); checkStatus(expectedStatus, response.getStatusCode()); - return response; } @@ -516,26 +509,16 @@ public abstract class AbstractBaseApiTest extends EnterpriseTestApi *

* GET /nodes/siteNodeId?relativePath=documentLibrary */ - protected String getSiteContainerNodeId(String networkId, String runAsUserId, String siteId, String containerNameId) throws Exception + protected String getSiteContainerNodeId(String siteId, String containerNameId) throws Exception { Map params = Collections.singletonMap(Nodes.PARAM_RELATIVE_PATH, "/Sites/" + siteId + "/" + containerNameId); - - publicApiClient.setRequestContext(new RequestContext(networkId, runAsUserId)); - + HttpResponse response = publicApiClient.get(NodesEntityResource.class, Nodes.PATH_ROOT, null, params); checkStatus(200, response.getStatusCode()); Node node = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class); return node.getId(); } - - protected void inviteToSite(final TestSite testSite, final TestPerson invitee, final SiteRole siteRole) - { - TenantUtil.runAsTenant((TenantRunAsWork) () -> { - testSite.inviteToSite(invitee.getId(), siteRole); - return null; - }, testSite.getNetworkId()); - } protected void checkStatus(int expectedStatus, int actualStatus) { @@ -547,16 +530,19 @@ public abstract class AbstractBaseApiTest extends EnterpriseTestApi protected void setRequestContext(String runAsUser) { + String password = null; if ((runAsUser != null) && runAsUser.equals(DEFAULT_ADMIN)) - { - // TODO improve "admin" related tests - publicApiClient.setRequestContext(new RequestContext("-default-", DEFAULT_ADMIN, DEFAULT_ADMIN_PWD)); - - } - else { - publicApiClient.setRequestContext(new RequestContext(runAsUser)); + // TODO improve "admin" related tests + password = DEFAULT_ADMIN_PWD; } + + setRequestContext("-default-", runAsUser, password); + } + + protected void setRequestContext(String runAsNetwork, String runAsUser, String password) + { + publicApiClient.setRequestContext(new RequestContext(runAsNetwork, runAsUser, password)); } // -root- (eg. Company Home for on-prem) diff --git a/source/test-java/org/alfresco/rest/api/tests/ActivitiesPostingTest.java b/source/test-java/org/alfresco/rest/api/tests/ActivitiesPostingTest.java index 2d8f0505f8..18ef04315f 100644 --- a/source/test-java/org/alfresco/rest/api/tests/ActivitiesPostingTest.java +++ b/source/test-java/org/alfresco/rest/api/tests/ActivitiesPostingTest.java @@ -34,7 +34,6 @@ import org.alfresco.rest.api.Activities; import org.alfresco.rest.api.Nodes; import org.alfresco.rest.api.nodes.NodesEntityResource; import org.alfresco.rest.api.tests.client.HttpResponse; -import org.alfresco.rest.api.tests.client.RequestContext; import org.alfresco.rest.api.tests.client.data.Activity; import org.alfresco.rest.api.tests.client.data.Document; import org.alfresco.rest.api.tests.client.data.Folder; @@ -63,7 +62,7 @@ public class ActivitiesPostingTest extends AbstractSingleNetworkSiteTest setRequestContext(u1.getId()); String folder1 = "folder" + System.currentTimeMillis() + "_1"; - Folder createdFolder = createFolder(docLibNodeRef.getId(), folder1, null); + Folder createdFolder = createFolder(tDocLibNodeId, folder1, null); assertNotNull(createdFolder); String docName = "d1.txt"; @@ -84,22 +83,22 @@ public class ActivitiesPostingTest extends AbstractSingleNetworkSiteTest List activities = getMyActivities(); assertEquals(activities.size(),6); - Activity act = matchActivity(activities, ActivityType.FOLDER_ADDED, u1.getId(), tSite.getSiteId(), docLibNodeRef.getId(), folder1); + Activity act = matchActivity(activities, ActivityType.FOLDER_ADDED, u1.getId(), tSiteId, tDocLibNodeId, folder1); assertNotNull(act); - act = matchActivity(activities, ActivityType.FILE_ADDED, u1.getId(), tSite.getSiteId(), createdFolder.getId(), docName); + act = matchActivity(activities, ActivityType.FILE_ADDED, u1.getId(), tSiteId, createdFolder.getId(), docName); assertNotNull(act); - act = matchActivity(activities, ActivityType.FILE_UPDATED, u1.getId(), tSite.getSiteId(), createdFolder.getId(), dUpdate.getName()); + act = matchActivity(activities, ActivityType.FILE_UPDATED, u1.getId(), tSiteId, createdFolder.getId(), dUpdate.getName()); assertNotNull(act); - act = matchActivity(activities, ActivityType.FOLDER_DELETED, u1.getId(), tSite.getSiteId(), docLibNodeRef.getId(), folder1); + act = matchActivity(activities, ActivityType.FOLDER_DELETED, u1.getId(), tSiteId, tDocLibNodeId, folder1); assertNotNull(act); - act = matchActivity(activities, ActivityType.FILE_DELETED, u1.getId(), tSite.getSiteId(), createdFolder.getId(), dUpdate.getName()); + act = matchActivity(activities, ActivityType.FILE_DELETED, u1.getId(), tSiteId, createdFolder.getId(), dUpdate.getName()); assertNotNull(act); - act = matchActivity(activities, ActivityPoster.DOWNLOADED, u1.getId(), tSite.getSiteId(), createdFolder.getId(), dUpdate.getName()); + act = matchActivity(activities, ActivityPoster.DOWNLOADED, u1.getId(), tSiteId, createdFolder.getId(), dUpdate.getName()); assertNotNull(act); } @@ -112,7 +111,7 @@ public class ActivitiesPostingTest extends AbstractSingleNetworkSiteTest setRequestContext(u1.getId()); String folder1 = "InSitefolder" + System.currentTimeMillis() + "_1"; - Folder createdFolder = createFolder(docLibNodeRef.getId(), folder1, null); + Folder createdFolder = createFolder(tDocLibNodeId, folder1, null); assertNotNull(createdFolder); List activities = getMyActivities(); diff --git a/source/test-java/org/alfresco/rest/api/tests/NodeApiTest.java b/source/test-java/org/alfresco/rest/api/tests/NodeApiTest.java index 592b9b0571..5eb4a92c51 100644 --- a/source/test-java/org/alfresco/rest/api/tests/NodeApiTest.java +++ b/source/test-java/org/alfresco/rest/api/tests/NodeApiTest.java @@ -41,8 +41,8 @@ import org.alfresco.repo.node.archive.NodeArchiveService; import org.alfresco.repo.security.authentication.AuthenticationUtil; import org.alfresco.rest.api.Nodes; import org.alfresco.rest.api.model.NodeTarget; +import org.alfresco.rest.api.model.Site; import org.alfresco.rest.api.nodes.NodesEntityResource; -import org.alfresco.rest.api.tests.RepoService.TestSite; import org.alfresco.rest.api.tests.client.HttpResponse; import org.alfresco.rest.api.tests.client.PublicApiClient; import org.alfresco.rest.api.tests.client.PublicApiClient.ExpectedPaging; @@ -143,9 +143,9 @@ public class NodeApiTest extends AbstractBaseApiTest String userOneId = userOneN1.getId(); String userTwoId = userTwoN1.getId(); - setRequestContext(userOneId); - - String docLibNodeId = getSiteContainerNodeId(networkOne.getId(), userOneId, userOneN1Site.getSiteId(), "documentLibrary"); + setRequestContext(networkOne.getId(), userOneId, null); + + String docLibNodeId = getSiteContainerNodeId(userOneN1SiteId, "documentLibrary"); String folder1 = "folder" + System.currentTimeMillis() + "_1"; createFolder(docLibNodeId, folder1, null).getId(); @@ -526,13 +526,13 @@ public class NodeApiTest extends AbstractBaseApiTest public void testGetPathElements_DocLib() throws Exception { String userId = userOneN1.getId(); - - setRequestContext(userId); + + setRequestContext(networkOne.getId(), userId, null); PublicApiClient.Sites sitesProxy = publicApiClient.sites(); - sitesProxy.createSiteMember(userOneN1Site.getSiteId(), new SiteMember(userTwoN1.getId(), SiteRole.SiteConsumer.toString())); + sitesProxy.createSiteMember(userOneN1SiteId, new SiteMember(userTwoN1.getId(), SiteRole.SiteConsumer.toString())); - String docLibNodeId = getSiteContainerNodeId(networkOne.getId(), userOneN1.getId(), userOneN1Site.getSiteId(), "documentLibrary"); + String docLibNodeId = getSiteContainerNodeId(userOneN1SiteId, "documentLibrary"); // /Company Home/Sites/RandomSite/documentLibrary/folder_A String folderA = "folder" + System.currentTimeMillis() + "_A"; @@ -575,7 +575,7 @@ public class NodeApiTest extends AbstractBaseApiTest assertEquals(7, pathElements.size()); assertEquals("Company Home", pathElements.get(0).getName()); assertEquals("Sites", pathElements.get(1).getName()); - assertEquals(userOneN1Site.getSiteId(), pathElements.get(2).getName()); + assertEquals(userOneN1SiteId, pathElements.get(2).getName()); assertEquals("documentLibrary", pathElements.get(3).getName()); assertEquals(folderA, pathElements.get(4).getName()); assertEquals(folderB, pathElements.get(5).getName()); @@ -1163,12 +1163,12 @@ public class NodeApiTest extends AbstractBaseApiTest @Test public void testUploadToSite() throws Exception { - setRequestContext(userOneN1.getId()); + setRequestContext(networkOne.getId(), userOneN1.getId(), null); final String fileName = "quick-1.txt"; final File file = getResourceFile(fileName); - String docLibNodeId = getSiteContainerNodeId(networkOne.getId(), userOneN1.getId(), userOneN1Site.getSiteId(), "documentLibrary"); + String docLibNodeId = getSiteContainerNodeId(userOneN1SiteId, "documentLibrary"); String folderA = "folder" + System.currentTimeMillis() + "_A"; String folderA_id = createFolder(docLibNodeId, folderA).getId(); @@ -1713,7 +1713,7 @@ public class NodeApiTest extends AbstractBaseApiTest @Test public void testCopySite() throws Exception { - setRequestContext(userOneN1.getId()); + setRequestContext(networkOne.getId(), userOneN1.getId(), null); // create folder Folder folderResp = createFolder(Nodes.PATH_MY, "siteCopytarget"); @@ -1723,11 +1723,13 @@ public class NodeApiTest extends AbstractBaseApiTest body.put("targetParentId", targetId); //test that you can't copy a site - post("nodes/"+userOneN1Site.getGuid()+"/copy", userOneN1.getId(), toJsonAsStringNonNull(body), null, 422); - - String docLibNodeId = getSiteContainerNodeId(networkOne.getId(), userOneN1.getId(), userOneN1Site.getSiteId(), "documentLibrary"); - + HttpResponse response = getSingle("sites", userOneN1.getId(), userOneN1SiteId, null, null, 200); + Site siteResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Site.class); + String siteNodeId = siteResp.getGuid(); + post("nodes/"+siteNodeId+"/copy", userOneN1.getId(), toJsonAsStringNonNull(body), null, 422); + //test that you can't copy a site doclib + String docLibNodeId = getSiteContainerNodeId(userOneN1SiteId, "documentLibrary"); post("nodes/"+docLibNodeId+"/copy", userOneN1.getId(), toJsonAsStringNonNull(body), null, 422); } @@ -1744,32 +1746,33 @@ public class NodeApiTest extends AbstractBaseApiTest @Test public void testMoveCopyBetweenSites() throws Exception { - setRequestContext(userOneN1.getId()); + setRequestContext(networkOne.getId(), userOneN1.getId(), null); /* * Precondition - create two sites, invite users, create folders */ - AuthenticationUtil.setFullyAuthenticatedUser(userOneN1.getId()); + // userOneN1 creates a public site and adds userTwoN1 as a site collaborator - TestSite user1Site = createSite(userOneN1.getDefaultAccount(), userOneN1, SiteVisibility.PUBLIC); - inviteToSite(user1Site, userTwoN1, SiteRole.SiteCollaborator); + String site1Title = "RandomSite1-" + System.currentTimeMillis(); + final String site1Id = createSite(site1Title, SiteVisibility.PUBLIC).getId(); + addSiteMember(site1Id, userTwoN1.getId(), SiteRole.SiteCollaborator); // Get user1Site's docLib node id - final String user1SiteDocLibNodeId = getSiteContainerNodeId(user1Site.getNetworkId(), userOneN1.getId(), user1Site.getSiteId(), "documentLibrary"); + final String user1SiteDocLibNodeId = getSiteContainerNodeId(site1Id, "documentLibrary"); // userOneN1 creates a folder in the docLib of his site (user1Site) String user1Folder = "folder" + System.currentTimeMillis() + "_user1"; String user1FolderNodeId = createFolder(user1SiteDocLibNodeId, user1Folder, null).getId(); - - AuthenticationUtil.setFullyAuthenticatedUser(userTwoN1.getId()); + + setRequestContext(userTwoN1.getDefaultAccount().getId(), userTwoN1.getId(), null); + // userTwoN1 creates a public site and adds userOneN1 as a site collaborator - TestSite user2Site = createSite(userTwoN1.getDefaultAccount(), userTwoN1, SiteVisibility.PUBLIC); - inviteToSite(user2Site, userOneN1, SiteRole.SiteCollaborator); - + String site2Title = "RandomSite2-" + System.currentTimeMillis(); + final String site2Id = createSite(site2Title, SiteVisibility.PUBLIC).getId(); + addSiteMember(site2Id, userOneN1.getId(), SiteRole.SiteCollaborator); + // Get user2Site's docLib node id - final String user2SiteDocLibNodeId = getSiteContainerNodeId(user2Site.getNetworkId(), userTwoN1.getId(), user2Site.getSiteId(), "documentLibrary"); - - setRequestContext(userTwoN1.getId()); + final String user2SiteDocLibNodeId = getSiteContainerNodeId(site2Id, "documentLibrary"); // userTwoN1 creates 2 folders within the docLib of the user1Site String user2Folder1 = "folder1" + System.currentTimeMillis() + "_user2"; @@ -1782,8 +1785,8 @@ public class NodeApiTest extends AbstractBaseApiTest * Test move between sites */ // userOneN1 moves the folder created by userTwoN1 to the user2Site's docLib - - setRequestContext(userTwoN1.getId()); + + setRequestContext(networkOne.getId(), userOneN1.getId(), null); NodeTarget target = new NodeTarget(); target.setTargetParentId(user2SiteDocLibNodeId); @@ -3378,12 +3381,12 @@ public class NodeApiTest extends AbstractBaseApiTest // as userOneN1 ... String userId = userOneN1.getId(); - AuthenticationUtil.setFullyAuthenticatedUser(userId); - String siteNodeId = userOneN1Site.getGuid(); - AuthenticationUtil.clearCurrentSecurityContext(); - setRequestContext(userId); + response = getSingle("sites", userId, userOneN1SiteId, null, null, 200); + Site siteResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Site.class); + String siteNodeId = siteResp.getGuid(); + response = getSingle(NodesEntityResource.class, userId, siteNodeId, params, 200); nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class); assertEquals(userId, nodeResp.getCreatedByUser().getId()); diff --git a/source/test-java/org/alfresco/rest/api/tests/NodeAssociationsApiTest.java b/source/test-java/org/alfresco/rest/api/tests/NodeAssociationsApiTest.java index e6aaebf1e7..d5d525a850 100644 --- a/source/test-java/org/alfresco/rest/api/tests/NodeAssociationsApiTest.java +++ b/source/test-java/org/alfresco/rest/api/tests/NodeAssociationsApiTest.java @@ -409,9 +409,9 @@ public class NodeAssociationsApiTest extends AbstractBaseApiTest finally { // some cleanup - Map params = Collections.singletonMap("permanent", "true"); - delete(URL_NODES, user1, f1Id, params, 204); - delete(URL_NODES, user1, f2Id, params, 204); + setRequestContext(user1); + deleteNode(f1Id, true, 204); + deleteNode(f2Id, true, 204); } } @@ -533,34 +533,38 @@ public class NodeAssociationsApiTest extends AbstractBaseApiTest // TODO refactor with remote permission api calls (use v0 until we have v1 ?) (RA-1085) AuthenticationUtil.setFullyAuthenticatedUser(user1); permissionService.setPermission(new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, sf1Id), user2, PermissionService.EDITOR, true); - - // TODO improve - admin-related tests (RA-1082) - publicApiClient.setRequestContext(new RequestContext("-default-", "admin", "admin")); + + setRequestContext(DEFAULT_ADMIN); + response = publicApiClient.get(getScope(), "nodes/"+sf1Id+"/targets", null, null, null, createParams(paging, null)); checkStatus(200, response.getStatusCode()); nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); assertEquals(0, nodes.size()); // user 1 + setRequestContext(user1); tgt = new AssocTarget(u1o1Id, ASSOC_TYPE_CM_REFERENCES); post(getNodeTargetsUrl(sf1Id), user1, toJsonAsStringNonNull(tgt), 201); // user 2 + setRequestContext(user2); tgt = new AssocTarget(u2o1Id, ASSOC_TYPE_CM_REFERENCES); post(getNodeTargetsUrl(sf1Id), user2, toJsonAsStringNonNull(tgt), 201); - // TODO improve - admin-related tests (RA-1082) - publicApiClient.setRequestContext(new RequestContext("-default-", "admin", "admin")); + setRequestContext(DEFAULT_ADMIN); + response = publicApiClient.get(getScope(), "nodes/"+sf1Id+"/targets", null, null, null, createParams(paging, null)); checkStatus(200, response.getStatusCode()); nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); assertEquals(2, nodes.size()); + setRequestContext(user1); response = getAll(getNodeTargetsUrl(sf1Id), user1, paging, null, 200); nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); assertEquals(1, nodes.size()); assertEquals(u1o1Id, nodes.get(0).getId()); + setRequestContext(user2); response = getAll(getNodeTargetsUrl(sf1Id), user2, paging, null, 200); nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); assertEquals(1, nodes.size()); @@ -574,33 +578,37 @@ public class NodeAssociationsApiTest extends AbstractBaseApiTest AuthenticationUtil.setFullyAuthenticatedUser(user1); permissionService.setPermission(new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, sf1Id), user2, PermissionService.EDITOR, true); - // TODO improve - admin-related tests (RA-1082) - publicApiClient.setRequestContext(new RequestContext("-default-", "admin", "admin")); + setRequestContext(DEFAULT_ADMIN); + response = publicApiClient.get(getScope(), "nodes/"+so1Id+"/sources", null, null, null, createParams(paging, null)); checkStatus(200, response.getStatusCode()); nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); assertEquals(0, nodes.size()); // user 1 + setRequestContext(user1); tgt = new AssocTarget(so1Id, ASSOC_TYPE_CM_REFERENCES); post(getNodeTargetsUrl(u1f1Id), user1, toJsonAsStringNonNull(tgt), 201); // user 2 + setRequestContext(user2); tgt = new AssocTarget(so1Id, ASSOC_TYPE_CM_REFERENCES); post(getNodeTargetsUrl(u2f1Id), user2, toJsonAsStringNonNull(tgt), 201); - // TODO improve - admin-related tests (RA-1082) - publicApiClient.setRequestContext(new RequestContext("-default-", "admin", "admin")); + setRequestContext(DEFAULT_ADMIN); + response = publicApiClient.get(getScope(), "nodes/"+so1Id+"/sources", null, null, null, createParams(paging, null)); checkStatus(200, response.getStatusCode()); nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); assertEquals(2, nodes.size()); + setRequestContext(user1); response = getAll(getNodeSourcesUrl(so1Id), user1, paging, null, 200); nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); assertEquals(1, nodes.size()); assertEquals(u1f1Id, nodes.get(0).getId()); + setRequestContext(user2); response = getAll(getNodeSourcesUrl(so1Id), user2, paging, null, 200); nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); assertEquals(1, nodes.size()); @@ -609,10 +617,13 @@ public class NodeAssociationsApiTest extends AbstractBaseApiTest finally { // some cleanup - Map params = Collections.singletonMap("permanent", "true"); - delete(URL_NODES, user1, u1f1Id, params, 204); - delete(URL_NODES, user2, u2f1Id, params, 204); - delete(URL_NODES, user1, sf1Id, params, 204); + + setRequestContext(user1); + deleteNode(u1f1Id, true, 204); + deleteNode(sf1Id, true, 204); + + setRequestContext(user2); + deleteNode(u2f1Id, true, 204); } } @@ -1170,11 +1181,11 @@ public class NodeAssociationsApiTest extends AbstractBaseApiTest finally { // some cleanup - Map params = Collections.singletonMap(Nodes.PARAM_PERMANENT, "true"); - delete(URL_NODES, user1, f1Id, params, 204); - delete(URL_NODES, user1, f2Id, params, 204); - delete(URL_NODES, user1, f3Id, params, 204); - delete(URL_NODES, user1, f4Id, params, 204); + setRequestContext(user1); + deleteNode(f1Id, true, 204); + deleteNode(f2Id, true, 204); + deleteNode(f3Id, true, 204); + deleteNode(f4Id, true, 204); } } @@ -1302,7 +1313,7 @@ public class NodeAssociationsApiTest extends AbstractBaseApiTest // ... delete to trashcan/archive ... - delete(URL_NODES, user1, f1bId, null, 204); + deleteNode(f1bId); getSingle(NodesEntityResource.class, user1, f1bId, null, 404); @@ -1379,24 +1390,23 @@ public class NodeAssociationsApiTest extends AbstractBaseApiTest finally { // some cleanup - Map params = Collections.singletonMap(Nodes.PARAM_PERMANENT, "true"); + setRequestContext(user1); if (f1Id != null) { - delete(URL_NODES, user1, f1Id, params, 204); + deleteNode(f1Id, true, 204); } if (f2Id != null) { - delete(URL_NODES, user1, f2Id, params, 204); + deleteNode(f2Id, true, 204); } if (f3Id != null) { - delete(URL_NODES, user1, f3Id, params, 204); + deleteNode(f3Id, true, 204); } } - } /** @@ -1512,10 +1522,10 @@ public class NodeAssociationsApiTest extends AbstractBaseApiTest finally { // some cleanup - Map params = Collections.singletonMap(Nodes.PARAM_PERMANENT, "true"); - delete(URL_NODES, user1, f1Id, params, 204); - delete(URL_NODES, user1, f2Id, params, 204); - delete(URL_NODES, user1, f3Id, params, 204); + setRequestContext(user1); + deleteNode(f1Id, true, 204); + deleteNode(f2Id, true, 204); + deleteNode(f3Id, true, 204); } } diff --git a/source/test-java/org/alfresco/rest/api/tests/NodeVersionsApiTest.java b/source/test-java/org/alfresco/rest/api/tests/NodeVersionsApiTest.java index 55a2fc12df..5437805366 100644 --- a/source/test-java/org/alfresco/rest/api/tests/NodeVersionsApiTest.java +++ b/source/test-java/org/alfresco/rest/api/tests/NodeVersionsApiTest.java @@ -189,8 +189,8 @@ public class NodeVersionsApiTest extends AbstractBaseApiTest finally { // some cleanup - Map params = Collections.singletonMap("permanent", "true"); - delete(URL_NODES, user1, f1Id, params, 204); + setRequestContext(user1); + deleteNode(f1Id, true, 204); } } @@ -250,8 +250,8 @@ public class NodeVersionsApiTest extends AbstractBaseApiTest finally { // some cleanup - Map params = Collections.singletonMap("permanent", "true"); - delete(URL_NODES, user1, f1Id, params, 204); + setRequestContext(user1); + deleteNode(f1Id, true, 204); } } @@ -449,8 +449,8 @@ public class NodeVersionsApiTest extends AbstractBaseApiTest if (f1Id != null) { // some cleanup - Map params = Collections.singletonMap("permanent", "true"); - delete(URL_NODES, user1, f1Id, params, 204); + setRequestContext(user1); + deleteNode(f1Id, true, 204); } } } @@ -734,7 +734,7 @@ public class NodeVersionsApiTest extends AbstractBaseApiTest checkVersionHistoryAndContent(d1Id, nodes, verCnt, textContentSuffix, null, majorVersion, minorVersion, false); // delete to trashcan/archive ... - delete(URL_NODES, user1, d1Id, null, 204); + deleteNode(d1Id); { // -ve tests @@ -760,8 +760,8 @@ public class NodeVersionsApiTest extends AbstractBaseApiTest finally { // some cleanup - Map params = Collections.singletonMap("permanent", "true"); - delete(URL_NODES, user1, f1Id, params, 204); + setRequestContext(user1); + deleteNode(f1Id, true, 204); } } @@ -891,8 +891,8 @@ public class NodeVersionsApiTest extends AbstractBaseApiTest if (f1Id != null) { // some cleanup - Map params = Collections.singletonMap("permanent", "true"); - delete(URL_NODES, user1, f1Id, params, 204); + setRequestContext(user1); + deleteNode(f1Id, true, 204); } } } @@ -1081,7 +1081,7 @@ public class NodeVersionsApiTest extends AbstractBaseApiTest checkVersionHistoryAndContent(d1Id, nodes, verCnt, textContentSuffix, null, 1, minorVersion, false); // delete to trashcan/archive ... - delete(URL_NODES, user1, d1Id, null, 204); + deleteNode(d1Id); // -ve tests { @@ -1111,8 +1111,8 @@ public class NodeVersionsApiTest extends AbstractBaseApiTest finally { // some cleanup - Map params = Collections.singletonMap("permanent", "true"); - delete(URL_NODES, user1, f1Id, params, 204); + setRequestContext(user1); + deleteNode(f1Id, true, 204); } } @@ -1344,8 +1344,8 @@ public class NodeVersionsApiTest extends AbstractBaseApiTest if (f1Id != null) { // some cleanup - Map params = Collections.singletonMap("permanent", "true"); - delete(URL_NODES, user1, f1Id, params, 204); + setRequestContext(user1); + deleteNode(f1Id, true, 204); } } } diff --git a/source/test-java/org/alfresco/rest/api/tests/QueriesApiTest.java b/source/test-java/org/alfresco/rest/api/tests/QueriesApiTest.java index 4ff9442d1f..ddf2553641 100644 --- a/source/test-java/org/alfresco/rest/api/tests/QueriesApiTest.java +++ b/source/test-java/org/alfresco/rest/api/tests/QueriesApiTest.java @@ -375,9 +375,10 @@ public class QueriesApiTest extends AbstractBaseApiTest finally { // some cleanup + setRequestContext(user1); for (String docId : allIds) { - delete(URL_NODES, user1, docId, 204); + deleteNode(docId, true, 204); } } } @@ -583,7 +584,7 @@ public class QueriesApiTest extends AbstractBaseApiTest setRequestContext(user1); for (String docId : allIds) { - delete(URL_NODES, user1, docId, 204); + deleteNode(docId, true, 204); } } } @@ -679,7 +680,7 @@ public class QueriesApiTest extends AbstractBaseApiTest setRequestContext(user1); for (String nodeId : allIds) { - delete(URL_NODES, user1, nodeId, 204); + deleteNode(nodeId, true, 204); } } } diff --git a/source/test-java/org/alfresco/rest/api/tests/RenditionsTest.java b/source/test-java/org/alfresco/rest/api/tests/RenditionsTest.java index d629dd3cc4..6c2381c1c9 100644 --- a/source/test-java/org/alfresco/rest/api/tests/RenditionsTest.java +++ b/source/test-java/org/alfresco/rest/api/tests/RenditionsTest.java @@ -97,13 +97,17 @@ public class RenditionsTest extends AbstractBaseApiTest networkOne.create(); userOneN1 = networkOne.createUser(); - userOneN1Site = createSite(networkOne.getId(), userOneN1.getId(), SiteVisibility.PRIVATE); + setRequestContext(networkOne.getId(), userOneN1.getId(), null); + + String siteTitle = "RandomSite" + System.currentTimeMillis(); + userOneN1Site = createSite(siteTitle, SiteVisibility.PRIVATE); } @After public void tearDown() throws Exception { - deleteSite(networkOne.getId(), userOneN1.getId(), userOneN1Site.getId(), 204); + setRequestContext(networkOne.getId(), userOneN1.getId(), null); + deleteSite(userOneN1Site.getId(), 204); } /** @@ -114,7 +118,7 @@ public class RenditionsTest extends AbstractBaseApiTest @Test public void testListNodeRenditions() throws Exception { - setRequestContext(userOneN1.getId()); + setRequestContext(networkOne.getId(), userOneN1.getId(), null); // Create a folder within the site document's library String folderName = "folder" + System.currentTimeMillis(); @@ -765,11 +769,7 @@ public class RenditionsTest extends AbstractBaseApiTest private String addToDocumentLibrary(Site testSite, String name, String nodeType, String userId) throws Exception { - // TODO refactor to consistently handle user/network (with option to switch network in cloud test scenarios) - // eg. set request context (rather than explicitly passing userId/networkId) ? - String networkId = repoService.tenantService.getUserDomain(userId); - - String parentId = getSiteContainerNodeId(networkId, userId, testSite.getId(), "documentLibrary"); + String parentId = getSiteContainerNodeId(testSite.getId(), "documentLibrary"); return createNode(parentId, name, nodeType, null).getId(); } diff --git a/source/test-java/org/alfresco/rest/api/tests/SharedLinkApiTest.java b/source/test-java/org/alfresco/rest/api/tests/SharedLinkApiTest.java index 04214baf94..923268acc1 100644 --- a/source/test-java/org/alfresco/rest/api/tests/SharedLinkApiTest.java +++ b/source/test-java/org/alfresco/rest/api/tests/SharedLinkApiTest.java @@ -668,9 +668,9 @@ public class SharedLinkApiTest extends AbstractBaseApiTest public void testSharedLinkCreateGetDelete_MultiTenant() throws Exception { // As userOneN1 - setRequestContext(userOneN1.getId()); + setRequestContext(networkOne.getId(), userOneN1.getId(), null); - String docLibNodeId = getSiteContainerNodeId(userOneN1Site.getNetworkId(), userOneN1.getId(), userOneN1Site.getSiteId(), "documentLibrary"); + String docLibNodeId = getSiteContainerNodeId(userOneN1SiteId, "documentLibrary"); String folderName = "folder" + System.currentTimeMillis() + "_1"; String folderId = createFolder(docLibNodeId, folderName, null).getId();