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
This commit is contained in:
Martin Muller
2016-08-05 13:47:16 +00:00
parent 1b474b8199
commit a95eb5613e
10 changed files with 177 additions and 176 deletions

View File

@@ -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<String, String> params, Map<String, String> headers, int expectedStatus) throws Exception
{
return delete(url, runAsUser, entityId, params, headers, null, expectedStatus);
}
protected HttpResponse delete(String url, String runAsUser, String entityId, Map<String, String> params, Map<String, String> 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
* <p>
* 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<String, String> 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<Void>) () -> {
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)

View File

@@ -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<Activity> 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<Activity> activities = getMyActivities();

View File

@@ -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<timestamp>/documentLibrary/folder<timestamp>_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());

View File

@@ -409,9 +409,9 @@ public class NodeAssociationsApiTest extends AbstractBaseApiTest
finally
{
// some cleanup
Map<String, String> 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<String, String> 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<String, String> 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<String, String> 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<String, String> 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);
}
}

View File

@@ -189,8 +189,8 @@ public class NodeVersionsApiTest extends AbstractBaseApiTest
finally
{
// some cleanup
Map<String, String> 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<String, String> 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<String, String> 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<String, String> 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<String, String> 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<String, String> 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<String, String> params = Collections.singletonMap("permanent", "true");
delete(URL_NODES, user1, f1Id, params, 204);
setRequestContext(user1);
deleteNode(f1Id, true, 204);
}
}
}

View File

@@ -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);
}
}
}

View File

@@ -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();
}

View File

@@ -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();