Search in sources :

Example 16 with Blob

use of org.nuxeo.ecm.automation.client.model.Blob in project nuxeo-drive-server by nuxeo.

the class TestGetChangeSummaryMultiRepo method getChangeSummary.

protected FileSystemChangeSummary getChangeSummary() throws Exception {
    // Wait 1 second as the mock change finder relies on steps of 1 second
    Thread.sleep(1000);
    Blob docChangeSummaryJSON = (Blob) clientSession.newRequest(NuxeoDriveGetChangeSummary.ID).set("lastSyncDate", lastSyncDate).set("lastSyncActiveRootDefinitions", lastSyncActiveRoots).execute();
    assertNotNull(docChangeSummaryJSON);
    FileSystemChangeSummary changeSummary = mapper.readValue(docChangeSummaryJSON.getStream(), FileSystemChangeSummaryImpl.class);
    assertNotNull(changeSummary);
    lastSyncDate = changeSummary.getSyncDate();
    lastSyncActiveRoots = changeSummary.getActiveSynchronizationRootDefinitions();
    return changeSummary;
}
Also used : StringBlob(org.nuxeo.ecm.core.api.impl.blob.StringBlob) Blob(org.nuxeo.ecm.automation.client.model.Blob) FileSystemChangeSummary(org.nuxeo.drive.service.FileSystemChangeSummary)

Example 17 with Blob

use of org.nuxeo.ecm.automation.client.model.Blob in project nuxeo-drive-server by nuxeo.

the class TestGetClientUpdateInfo method testGetClientUpdateInfo.

@Test
public void testGetClientUpdateInfo() throws Exception {
    Blob clientUpdateInfoJSON = (Blob) clientSession.newRequest(NuxeoDriveGetClientUpdateInfo.ID).execute();
    assertNotNull(clientUpdateInfoJSON);
    NuxeoDriveClientUpdateInfo clientUpdateInfo = mapper.readValue(clientUpdateInfoJSON.getStream(), NuxeoDriveClientUpdateInfo.class);
    assertEquals("5.9.3", clientUpdateInfo.getServerVersion());
    assertEquals("http://community.nuxeo.com/static/drive/", clientUpdateInfo.getUpdateSiteURL());
}
Also used : Blob(org.nuxeo.ecm.automation.client.model.Blob) Test(org.junit.Test)

Example 18 with Blob

use of org.nuxeo.ecm.automation.client.model.Blob in project nuxeo-drive-server by nuxeo.

the class TestIntegrationTestOperations method testIntegrationTestsSetupAndTearDown.

@Test
public void testIntegrationTestsSetupAndTearDown() throws Exception {
    // ---------------------------------------------------------
    // Setup the integration tests environment as Administrator
    // ---------------------------------------------------------
    Blob testUserCredentialsBlob = (Blob) clientSession.newRequest(NuxeoDriveSetupIntegrationTests.ID).set("userNames", "joe,jack").set("permission", "ReadWrite").execute();
    assertNotNull(testUserCredentialsBlob);
    // Invalidate VCS cache
    TransactionHelper.commitOrRollbackTransaction();
    TransactionHelper.startTransaction();
    // Check test users
    String testUserCredentials = IOUtils.toString(testUserCredentialsBlob.getStream(), "UTF-8");
    assertNotNull(testUserCredentials);
    String[] testUserCrendentialsArray = StringUtils.split(testUserCredentials, ",");
    assertEquals(2, testUserCrendentialsArray.length);
    assertTrue(testUserCrendentialsArray[0].startsWith("drivejoe:"));
    assertTrue(testUserCrendentialsArray[1].startsWith("drivejack:"));
    // useMembersGroup is false by default
    NuxeoPrincipal joePrincipal = userManager.getPrincipal("drivejoe");
    assertNotNull(joePrincipal);
    assertFalse(joePrincipal.getGroups().contains("members"));
    NuxeoPrincipal jackPrincipal = userManager.getPrincipal("drivejack");
    assertNotNull(jackPrincipal);
    assertFalse(jackPrincipal.getGroups().contains("members"));
    // Check test workspace
    DocumentRef testWorkspaceRef = new PathRef(testWorkspacePath);
    DocumentModel testWorkspace = session.getDocument(testWorkspaceRef);
    assertEquals("Workspace", testWorkspace.getType());
    assertEquals("Nuxeo Drive Test Workspace", testWorkspace.getTitle());
    assertTrue(session.hasPermission(joePrincipal, testWorkspaceRef, SecurityConstants.WRITE));
    assertTrue(session.hasPermission(jackPrincipal, testWorkspaceRef, SecurityConstants.WRITE));
    // Create test users' personal workspaces for cleanup check
    userWorkspaceService.getUserPersonalWorkspace("drivejoe", session.getRootDocument());
    userWorkspaceService.getUserPersonalWorkspace("drivejack", session.getRootDocument());
    assertNotNull(session.getDocument(new PathRef(userWorkspaceParentPath + "/drivejoe")));
    assertNotNull(session.getDocument(new PathRef(userWorkspaceParentPath + "/drivejack")));
    // Save personal workspaces
    TransactionHelper.commitOrRollbackTransaction();
    TransactionHelper.startTransaction();
    // ----------------------------------------------------------------------
    // Setup the integration tests environment with other user names without
    // having teared it down previously => should start by cleaning it up
    // ----------------------------------------------------------------------
    testUserCredentialsBlob = (Blob) clientSession.newRequest(NuxeoDriveSetupIntegrationTests.ID).set("userNames", "sarah").set("useMembersGroup", true).set("permission", "ReadWrite").execute();
    assertNotNull(testUserCredentialsBlob);
    // Check cleanup
    assertNull(userManager.getPrincipal("drivejoe"));
    assertNull(userManager.getPrincipal("drivejack"));
    // Process invalidations
    TransactionHelper.commitOrRollbackTransaction();
    TransactionHelper.startTransaction();
    try {
        session.getDocument(new PathRef(userWorkspaceParentPath + "/drivejoe"));
        fail("User workspace should not exist.");
    } catch (DocumentNotFoundException e) {
        assertEquals(userWorkspaceParentPath + "/drivejoe", e.getMessage());
    }
    try {
        session.getDocument(new PathRef(userWorkspaceParentPath + "/drivejack"));
        fail("User workspace should not exist.");
    } catch (DocumentNotFoundException e) {
        assertEquals(userWorkspaceParentPath + "/drivejack", e.getMessage());
    }
    // Check test users
    testUserCredentials = IOUtils.toString(testUserCredentialsBlob.getStream(), "UTF-8");
    assertNotNull(testUserCredentials);
    testUserCrendentialsArray = StringUtils.split(testUserCredentials, ",");
    assertEquals(1, testUserCrendentialsArray.length);
    assertTrue(testUserCrendentialsArray[0].startsWith("drivesarah:"));
    NuxeoPrincipal sarahPrincipal = userManager.getPrincipal("drivesarah");
    assertNotNull(sarahPrincipal);
    assertTrue(sarahPrincipal.getGroups().contains("members"));
    // Check test workspace
    testWorkspace = session.getDocument(testWorkspaceRef);
    assertEquals("Nuxeo Drive Test Workspace", testWorkspace.getTitle());
    assertTrue(session.hasPermission(sarahPrincipal, testWorkspaceRef, SecurityConstants.WRITE));
    // Create test users' personal workspaces for cleanup check
    userWorkspaceService.getUserPersonalWorkspace("drivesarah", session.getRootDocument());
    assertNotNull(session.getDocument(new PathRef(userWorkspaceParentPath + "/drivesarah")));
    // Save personal workspaces
    TransactionHelper.commitOrRollbackTransaction();
    TransactionHelper.startTransaction();
    // ----------------------------------------------------------------------
    // Try to setup the integration tests environment as an unauthorized
    // user => should fail
    // ----------------------------------------------------------------------
    String sarahCredentials = testUserCrendentialsArray[0];
    String sarahPassword = sarahCredentials.substring(sarahCredentials.indexOf(':') + 1);
    Session unauthorizedSession = automationClient.getSession("drivesarah", sarahPassword);
    try {
        unauthorizedSession.newRequest(NuxeoDriveSetupIntegrationTests.ID).set("userNames", "john,bob").set("permission", "ReadWrite").execute();
        fail("NuxeoDrive.SetupIntegrationTests operation should not be callable by a non administrator.");
    } catch (Exception e) {
    // Expected
    }
    // ----------------------------------------------------------------------
    try {
        unauthorizedSession.newRequest(NuxeoDriveTearDownIntegrationTests.ID).execute();
        fail("NuxeoDrive.TearDownIntegrationTests operation should not be callable by a non administrator.");
    } catch (Exception e) {
    // Expected
    }
    // ----------------------------------------------------------------------
    // Tear down the integration tests environment as Administrator
    // ----------------------------------------------------------------------
    clientSession.newRequest(NuxeoDriveTearDownIntegrationTests.ID).execute();
    assertTrue(userManager.searchUsers("drive").isEmpty());
    // Process invalidations
    TransactionHelper.commitOrRollbackTransaction();
    TransactionHelper.startTransaction();
    try {
        session.getDocument(new PathRef(userWorkspaceParentPath + "/drivesarah"));
        fail("User workspace should not exist.");
    } catch (DocumentNotFoundException e) {
        assertEquals(userWorkspaceParentPath + "/drivesarah", e.getMessage());
    }
    assertFalse(session.exists(testWorkspaceRef));
}
Also used : Blob(org.nuxeo.ecm.automation.client.model.Blob) DocumentRef(org.nuxeo.ecm.core.api.DocumentRef) DocumentNotFoundException(org.nuxeo.ecm.core.api.DocumentNotFoundException) PathRef(org.nuxeo.ecm.core.api.PathRef) NuxeoPrincipal(org.nuxeo.ecm.core.api.NuxeoPrincipal) DocumentModel(org.nuxeo.ecm.core.api.DocumentModel) DocumentNotFoundException(org.nuxeo.ecm.core.api.DocumentNotFoundException) Session(org.nuxeo.ecm.automation.client.Session) CoreSession(org.nuxeo.ecm.core.api.CoreSession) Test(org.junit.Test)

Aggregations

Blob (org.nuxeo.ecm.automation.client.model.Blob)18 Test (org.junit.Test)16 StringBlob (org.nuxeo.ecm.automation.client.model.StringBlob)12 DocumentBackedFileItem (org.nuxeo.drive.adapter.impl.DocumentBackedFileItem)9 DocumentModel (org.nuxeo.ecm.core.api.DocumentModel)9 DefaultSyncRootFolderItem (org.nuxeo.drive.adapter.impl.DefaultSyncRootFolderItem)6 DocumentBackedFolderItem (org.nuxeo.drive.adapter.impl.DocumentBackedFolderItem)6 List (java.util.List)5 Session (org.nuxeo.ecm.automation.client.Session)5 CoreSession (org.nuxeo.ecm.core.api.CoreSession)5 TypeReference (com.fasterxml.jackson.core.type.TypeReference)3 JsonNode (com.fasterxml.jackson.databind.JsonNode)3 FolderItem (org.nuxeo.drive.adapter.FolderItem)3 ScrollFileSystemItemList (org.nuxeo.drive.adapter.ScrollFileSystemItemList)3 DefaultTopLevelFolderItem (org.nuxeo.drive.adapter.impl.DefaultTopLevelFolderItem)3 IdRef (org.nuxeo.ecm.core.api.IdRef)3 PathRef (org.nuxeo.ecm.core.api.PathRef)3 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)2 ArrayNode (com.fasterxml.jackson.databind.node.ArrayNode)2 IOException (java.io.IOException)2