Search in sources :

Example 1 with Node

use of org.alfresco.rest.api.tests.client.data.Node in project alfresco-remote-api by Alfresco.

the class ActivitiesPostingTest method testNonFileActivities.

/**
 * Tests non-file activites. So no events.
 */
@Test
public void testNonFileActivities() throws Exception {
    setRequestContext(user1);
    String folder1 = "InSitefolder" + System.currentTimeMillis() + "_1";
    Folder createdFolder = createFolder(tDocLibNodeId, folder1, null);
    assertNotNull(createdFolder);
    List<Activity> activities = getMyActivities();
    Node aNode = createNode(createdFolder.getId(), "mynode", "cm:failedThumbnail", null);
    assertNotNull(aNode);
    deleteNode(aNode.getId());
    List<Activity> activitiesAgain = getMyActivities();
    assertEquals("No activites should be created for non-file activities", activities, activitiesAgain);
}
Also used : Node(org.alfresco.rest.api.tests.client.data.Node) Activity(org.alfresco.rest.api.tests.client.data.Activity) Folder(org.alfresco.rest.api.tests.client.data.Folder) Test(org.junit.Test) AbstractSingleNetworkSiteTest(org.alfresco.rest.AbstractSingleNetworkSiteTest)

Example 2 with Node

use of org.alfresco.rest.api.tests.client.data.Node in project alfresco-remote-api by Alfresco.

the class AuditAppTest method renameNode.

private void renameNode(String nodeId, String newName) throws Exception {
    Node nUpdate = new Node();
    nUpdate.setName(newName);
    put(URL_NODES, nodeId, toJsonAsStringNonNull(nUpdate), null, 200);
}
Also used : Node(org.alfresco.rest.api.tests.client.data.Node)

Example 3 with Node

use of org.alfresco.rest.api.tests.client.data.Node in project alfresco-remote-api by Alfresco.

the class NodeApiTest method testAllowableOps.

/**
 * Tests optional lookup of Allowable Operations (eg. when getting node info, listing node children, ...)
 *
 * <p>GET:</p>
 * {@literal <host>:<port>/alfresco/api/-default-/public/alfresco/versions/1/nodes/<nodeId>/children?include=allowableOperations}
 * {@literal <host>:<port>/alfresco/api/-default-/public/alfresco/versions/1/nodes/<nodeId>?include=allowableOperations}
 */
@Test
public void testAllowableOps() throws Exception {
    // as user1 ...
    setRequestContext(user1);
    String rootNodeId = getRootNodeId();
    String sharedNodeId = getSharedNodeId();
    Map params = new HashMap<>();
    params.put(Nodes.PARAM_RELATIVE_PATH, "/Sites");
    HttpResponse response = getSingle(NodesEntityResource.class, rootNodeId, params, 200);
    Node nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    String sitesNodeId = nodeResp.getId();
    params = new HashMap<>();
    params.put(Nodes.PARAM_RELATIVE_PATH, "/Data Dictionary");
    response = getSingle(NodesEntityResource.class, rootNodeId, params, 200);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    String ddNodeId = nodeResp.getId();
    params = new HashMap<>();
    params.put("include", "allowableOperations");
    response = getSingle(NodesEntityResource.class, rootNodeId, params, 200);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNull(nodeResp.getAllowableOperations());
    response = getSingle(NodesEntityResource.class, sharedNodeId, params, 200);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNotNull(nodeResp.getAllowableOperations());
    assertEquals(1, nodeResp.getAllowableOperations().size());
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_CREATE));
    // -ve
    deleteNode(sharedNodeId, 403);
    response = getSingle(NodesEntityResource.class, getMyNodeId(), params, 200);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNotNull(nodeResp.getAllowableOperations());
    assertEquals(4, nodeResp.getAllowableOperations().size());
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_DELETE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_CREATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE_PERMISSIONS));
    // create folder
    nodeResp = createFolder(sharedNodeId, "folder 1 - " + RUNID);
    String folderId = nodeResp.getId();
    assertNull(nodeResp.getAllowableOperations());
    response = getSingle(NodesEntityResource.class, folderId, null, 200);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNull(nodeResp.getAllowableOperations());
    response = getSingle(NodesEntityResource.class, folderId, params, 200);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNotNull(nodeResp.getAllowableOperations());
    assertEquals(4, nodeResp.getAllowableOperations().size());
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_DELETE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_CREATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE_PERMISSIONS));
    // create file
    nodeResp = createTextFile(folderId, "my file - " + RUNID + ".txt", "The quick brown fox jumps over the lazy dog");
    String fileId = nodeResp.getId();
    assertNull(nodeResp.getAllowableOperations());
    response = getSingle(NodesEntityResource.class, fileId, null, 200);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNull(nodeResp.getAllowableOperations());
    // a file - no create
    response = getSingle(NodesEntityResource.class, fileId, params, 200);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNotNull(nodeResp.getAllowableOperations());
    assertEquals(3, nodeResp.getAllowableOperations().size());
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_DELETE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE_PERMISSIONS));
    // as user2 ...
    setRequestContext(user2);
    response = getSingle(NodesEntityResource.class, folderId, params, 200);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNotNull(nodeResp.getAllowableOperations());
    assertEquals(1, nodeResp.getAllowableOperations().size());
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_CREATE));
    // -ve
    deleteNode(folderId, 403);
    response = getSingle(NodesEntityResource.class, fileId, params, 200);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNull(nodeResp.getAllowableOperations());
    // -ve
    deleteNode(fileId, 403);
    // as admin ...
    setRequestContext(networkAdmin);
    response = publicApiClient.get(NodesEntityResource.class, folderId, null, params);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNotNull(nodeResp.getAllowableOperations());
    assertEquals(4, nodeResp.getAllowableOperations().size());
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_DELETE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_CREATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE_PERMISSIONS));
    // a file - no create
    response = publicApiClient.get(NodesEntityResource.class, fileId, null, params);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNotNull(nodeResp.getAllowableOperations());
    assertEquals(3, nodeResp.getAllowableOperations().size());
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_DELETE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE_PERMISSIONS));
    response = publicApiClient.get(NodesEntityResource.class, sharedNodeId, null, params);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNotNull(nodeResp.getAllowableOperations());
    assertEquals(4, nodeResp.getAllowableOperations().size());
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_CREATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_DELETE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE_PERMISSIONS));
    // Company Home - no delete
    response = publicApiClient.get(NodesEntityResource.class, rootNodeId, null, params);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNotNull(nodeResp.getAllowableOperations());
    assertEquals(3, nodeResp.getAllowableOperations().size());
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_CREATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE_PERMISSIONS));
    // -ve
    deleteNode(rootNodeId, 403);
    // Sites - no delete
    response = publicApiClient.get(NodesEntityResource.class, sitesNodeId, null, params);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNotNull(nodeResp.getAllowableOperations());
    assertEquals(3, nodeResp.getAllowableOperations().size());
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_CREATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE_PERMISSIONS));
    // -ve
    deleteNode(sitesNodeId, 403);
    // Data Dictionary - no delete
    response = publicApiClient.get(NodesEntityResource.class, ddNodeId, null, params);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNotNull(nodeResp.getAllowableOperations());
    assertEquals(3, nodeResp.getAllowableOperations().size());
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_CREATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE_PERMISSIONS));
    // -ve
    deleteNode(ddNodeId, 403);
    publicApiClient.setRequestContext(null);
    // as user1 ...
    String userId = user1;
    setRequestContext(userId);
    response = getSingle("sites", tSiteId, null, null, 200);
    Site siteResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Site.class);
    String siteNodeId = siteResp.getGuid();
    response = getSingle(NodesEntityResource.class, siteNodeId, params, 200);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertEquals(userId, nodeResp.getCreatedByUser().getId());
    assertNotNull(nodeResp.getAllowableOperations());
    assertEquals(3, nodeResp.getAllowableOperations().size());
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_CREATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE));
    assertTrue(nodeResp.getAllowableOperations().contains(Nodes.OP_UPDATE_PERMISSIONS));
    // -ve
    deleteNode(siteNodeId, 403);
    setRequestContext(user1);
    // fix for REPO-514 (NPE for a node that was neither a file/document nor a folder)
    Node n = new Node();
    n.setName("o1");
    n.setNodeType(TYPE_CM_OBJECT);
    response = post(getNodeChildrenUrl(folderId), toJsonAsStringNonNull(n), 201);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    String o1Id = nodeResp.getId();
    params = new HashMap<>();
    params.put("include", "allowableOperations");
    response = getSingle(NodesEntityResource.class, o1Id, params, 200);
    nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    assertNotNull(nodeResp.getAllowableOperations());
    // some cleanup
    deleteNode(folderId, true, 204);
}
Also used : Site(org.alfresco.rest.api.model.Site) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) Node(org.alfresco.rest.api.tests.client.data.Node) HttpResponse(org.alfresco.rest.api.tests.client.HttpResponse) NodesEntityResource(org.alfresco.rest.api.nodes.NodesEntityResource) Map(java.util.Map) MimetypeMap(org.alfresco.repo.content.MimetypeMap) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) Test(org.junit.Test) AbstractSingleNetworkSiteTest(org.alfresco.rest.AbstractSingleNetworkSiteTest)

Example 4 with Node

use of org.alfresco.rest.api.tests.client.data.Node in project alfresco-remote-api by Alfresco.

the class NodeApiTest method testUploadUsingRelativePath.

/**
 * Test upload using relativePath
 */
@Test
public void testUploadUsingRelativePath() throws Exception {
    setRequestContext(user1);
    // user1 creates a private site and adds user2 as a site consumer
    String site1Title = "site-testGetPathElements_DocLib-" + RUNID;
    String site1Id = createSite(site1Title, SiteVisibility.PRIVATE).getId();
    addSiteMember(site1Id, user2, SiteRole.SiteConsumer);
    String site1DocLibNodeId = getSiteContainerNodeId(site1Id, "documentLibrary");
    // /Company
    // Home/Sites/RandomSite<timestamp>/documentLibrary/folder<timestamp>_A
    String folderA = "folder" + RUNID + "_A";
    String folderA_Id = createFolder(site1DocLibNodeId, folderA).getId();
    // /Company
    // Home/Sites/RandomSite<timestamp>/documentLibrary/folder<timestamp>_A/folder<timestamp>_B
    String folderB = "folder" + RUNID + "_B";
    String folderB_Id = createFolder(folderA_Id, folderB).getId();
    NodeRef folderB_Ref = new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, folderB_Id);
    // /Company
    // Home/Sites/RandomSite<timestamp>/documentLibrary/folder<timestamp>_A/folder<timestamp>_B/folder<timestamp>_C
    String folderC = "folder" + RUNID + "_C";
    String folderC_Id = createFolder(folderB_Id, folderC).getId();
    NodeRef folderC_Ref = new NodeRef(StoreRef.STORE_REF_WORKSPACE_SPACESSTORE, folderC_Id);
    // /Company
    // Home/Sites/RandomSite<timestamp>/documentLibrary/folder<timestamp>_A/folder<timestamp>_B/folder<timestamp>_C/content<timestamp>
    String content = "content" + RUNID;
    String content_Id = createTextFile(folderC_Id, content, "The quick brown fox jumps over the lazy dog.").getId();
    Map<String, String> params = new HashMap<>();
    params.put("include", "path");
    params.put("relativePath", folderA + "/" + folderB + "/" + folderC);
    // call get with relativePathParam
    HttpResponse response = getAll(getNodeChildrenUrl(site1DocLibNodeId), null, params, 200);
    List<Node> nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class);
    assertEquals(1, nodes.size());
    assertEquals("/" + folderA + "/" + folderB + "/" + folderC, ((Node) (nodes.get(0))).getPath().getRelativePath());
}
Also used : NodeRef(org.alfresco.service.cmr.repository.NodeRef) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) Node(org.alfresco.rest.api.tests.client.data.Node) HttpResponse(org.alfresco.rest.api.tests.client.HttpResponse) Test(org.junit.Test) AbstractSingleNetworkSiteTest(org.alfresco.rest.AbstractSingleNetworkSiteTest)

Example 5 with Node

use of org.alfresco.rest.api.tests.client.data.Node in project alfresco-remote-api by Alfresco.

the class NodeApiTest method getSitesNodeId.

private String getSitesNodeId() throws Exception {
    Map params = new HashMap<>();
    params.put(Nodes.PARAM_RELATIVE_PATH, "/Sites");
    HttpResponse response = getSingle(NodesEntityResource.class, getRootNodeId(), params, 200);
    Node nodeResp = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Node.class);
    return nodeResp.getId();
}
Also used : HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) Node(org.alfresco.rest.api.tests.client.data.Node) HttpResponse(org.alfresco.rest.api.tests.client.HttpResponse) Map(java.util.Map) MimetypeMap(org.alfresco.repo.content.MimetypeMap) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap)

Aggregations

Node (org.alfresco.rest.api.tests.client.data.Node)53 HttpResponse (org.alfresco.rest.api.tests.client.HttpResponse)49 Test (org.junit.Test)36 AbstractSingleNetworkSiteTest (org.alfresco.rest.AbstractSingleNetworkSiteTest)33 HashMap (java.util.HashMap)32 LinkedHashMap (java.util.LinkedHashMap)21 Document (org.alfresco.rest.api.tests.client.data.Document)19 NodesEntityResource (org.alfresco.rest.api.nodes.NodesEntityResource)16 Paging (org.alfresco.rest.api.tests.client.PublicApiClient.Paging)14 Folder (org.alfresco.rest.api.tests.client.data.Folder)12 ArrayList (java.util.ArrayList)9 JSONObject (org.json.simple.JSONObject)8 File (java.io.File)7 Map (java.util.Map)7 MimetypeMap (org.alfresco.repo.content.MimetypeMap)7 ByteArrayInputStream (java.io.ByteArrayInputStream)6 PublicApiHttpClient (org.alfresco.rest.api.tests.client.PublicApiHttpClient)6 UserInfo (org.alfresco.rest.api.tests.client.data.UserInfo)6 ExpectedPaging (org.alfresco.rest.api.tests.client.PublicApiClient.ExpectedPaging)5 NodeRef (org.alfresco.service.cmr.repository.NodeRef)5