1
0
mirror of https://github.com/sismics/docs.git synced 2025-12-16 03:06:22 +00:00

File sharing (in progress)

This commit is contained in:
jendib
2013-08-13 23:15:58 +02:00
parent 99978a12b7
commit 5cfc487193
6 changed files with 242 additions and 34 deletions

View File

@@ -19,13 +19,13 @@ import java.io.BufferedInputStream;
import java.io.InputStream;
/**
* Exhaustive test of the document resource.
* Exhaustive test of the file resource.
*
* @author bgamard
*/
public class TestFileResource extends BaseJerseyTest {
/**
* Test the document resource.
* Test the file resource.
*
* @throws Exception
*/
@@ -144,9 +144,9 @@ public class TestFileResource extends BaseJerseyTest {
Assert.assertEquals(file1Id, files.getJSONObject(1).getString("id"));
// Deletes a file
documentResource = resource().path("/file/" + file1Id);
documentResource.addFilter(new CookieAuthenticationFilter(file1AuthenticationToken));
response = documentResource.delete(ClientResponse.class);
fileResource = resource().path("/file/" + file1Id);
fileResource.addFilter(new CookieAuthenticationFilter(file1AuthenticationToken));
response = fileResource.delete(ClientResponse.class);
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
json = response.getEntity(JSONObject.class);
Assert.assertEquals("ok", json.getString("status"));

View File

@@ -0,0 +1,83 @@
package com.sismics.docs.rest;
import java.io.BufferedInputStream;
import java.io.InputStream;
import javax.ws.rs.core.MediaType;
import junit.framework.Assert;
import org.codehaus.jettison.json.JSONObject;
import org.junit.Test;
import com.sismics.docs.rest.filter.CookieAuthenticationFilter;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.ClientResponse.Status;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.core.util.MultivaluedMapImpl;
import com.sun.jersey.multipart.FormDataBodyPart;
import com.sun.jersey.multipart.FormDataMultiPart;
/**
* Exhaustive test of the file share resource.
*
* @author bgamard
*/
public class TestFileShareResource extends BaseJerseyTest {
/**
* Test the file share resource.
*
* @throws Exception
*/
@Test
public void testFileShareResource() throws Exception {
// Login fileshare1
clientUtil.createUser("fileshare1");
String fileShare1AuthenticationToken = clientUtil.login("fileshare1");
// Create a document
WebResource documentResource = resource().path("/document");
documentResource.addFilter(new CookieAuthenticationFilter(fileShare1AuthenticationToken));
MultivaluedMapImpl postParams = new MultivaluedMapImpl();
postParams.add("title", "File test document 1");
ClientResponse response = documentResource.put(ClientResponse.class, postParams);
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
JSONObject json = response.getEntity(JSONObject.class);
String document1Id = json.optString("id");
Assert.assertNotNull(document1Id);
// Add a file
WebResource fileResource = resource().path("/file");
fileResource.addFilter(new CookieAuthenticationFilter(fileShare1AuthenticationToken));
FormDataMultiPart form = new FormDataMultiPart();
InputStream file = this.getClass().getResourceAsStream("/file/PIA00452.jpg");
FormDataBodyPart fdp = new FormDataBodyPart("file",
new BufferedInputStream(file),
MediaType.APPLICATION_OCTET_STREAM_TYPE);
form.bodyPart(fdp);
form.field("id", document1Id);
response = fileResource.type(MediaType.MULTIPART_FORM_DATA).put(ClientResponse.class, form);
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
json = response.getEntity(JSONObject.class);
String file1Id = json.getString("id");
// Share this file
WebResource fileShareResource = resource().path("/fileshare");
fileShareResource.addFilter(new CookieAuthenticationFilter(fileShare1AuthenticationToken));
postParams = new MultivaluedMapImpl();
postParams.add("id", file1Id);
response = fileShareResource.put(ClientResponse.class, postParams);
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
json = response.getEntity(JSONObject.class);
String fileShare1Id = json.getString("id");
// Deletes the share
fileShareResource = resource().path("/fileshare/" + fileShare1Id);
fileShareResource.addFilter(new CookieAuthenticationFilter(fileShare1AuthenticationToken));
response = fileShareResource.delete(ClientResponse.class);
Assert.assertEquals(Status.OK, Status.fromStatusCode(response.getStatus()));
json = response.getEntity(JSONObject.class);
Assert.assertEquals("ok", json.getString("status"));
}
}