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 fe19543ad5..3a88247c3f 100644
--- a/source/test-java/org/alfresco/rest/api/tests/SharedLinkApiTest.java
+++ b/source/test-java/org/alfresco/rest/api/tests/SharedLinkApiTest.java
@@ -130,37 +130,41 @@ public class SharedLinkApiTest extends AbstractBaseApiTest
*
DELETE:
* {@literal :/alfresco/api//public/alfresco/versions/1/shared-links/}
*/
-
- // TODO re-enable (or at least split out rendition part of the test) - for some reason fails on build m/c - apparently fails to create rendition ?
- public void XtestSharedLinkCreateGetDelete() throws Exception
+ @Test
+ public void testSharedLinkCreateGetDelete() throws Exception
{
// As user 1 ...
- // create doc d1 - plain text
+ // create doc d1 - pdf
String sharedFolderNodeId = getSharedNodeId(user1);
- String content1Text = "The quick brown fox jumps over the lazy dog 1.";
- String fileName1 = "content" + RUNID + "_1.txt";
- Document doc1 = createTextFile(user1, sharedFolderNodeId, fileName1, content1Text);
- String d1Id = doc1.getId();
- // create doc d2 - pdf
- String myFolderNodeId = getMyNodeId(user1);
+ String fileName1 = "quick"+RUNID+"_1.pdf";
+ File file1 = getResourceFile("quick.pdf");
- String fileName2 = "quick"+RUNID+"_2.pdf";
- File file = getResourceFile("quick.pdf");
- byte[] file2_originalBytes = Files.readAllBytes(Paths.get(file.getAbsolutePath()));
+ byte[] file1_originalBytes = Files.readAllBytes(Paths.get(file1.getAbsolutePath()));
- String file2_MimeType = MimetypeMap.MIMETYPE_PDF;
+ String file1_MimeType = MimetypeMap.MIMETYPE_PDF;
MultiPartBuilder multiPartBuilder = MultiPartBuilder.create()
- .setFileData(new MultiPartBuilder.FileData(fileName2, file, file2_MimeType));
+ .setFileData(new MultiPartBuilder.FileData(fileName1, file1, file1_MimeType));
MultiPartBuilder.MultiPartRequest reqBody = multiPartBuilder.build();
- HttpResponse response = post(getNodeChildrenUrl(myFolderNodeId), user1, reqBody.getBody(), null, reqBody.getContentType(), 201);
- Document doc2 = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
+ HttpResponse response = post(getNodeChildrenUrl(sharedFolderNodeId), user1, reqBody.getBody(), null, reqBody.getContentType(), 201);
+ Document doc1 = RestApiUtil.parseRestApiEntry(response.getJsonResponse(), Document.class);
+ String d1Id = doc1.getId();
+
+ // create doc d2 - plain text
+ String myFolderNodeId = getMyNodeId(user1);
+
+ String content2Text = "The quick brown fox jumps over the lazy dog 2.";
+ String fileName2 = "content" + RUNID + "_2.txt";
+
+ Document doc2 = createTextFile(user1, myFolderNodeId, fileName2, content2Text);
String d2Id = doc2.getId();
+ String file2_MimeType = MimetypeMap.MIMETYPE_TEXT_PLAIN;
+
// As user 2 ...
response = getSingle(NodesEntityResource.class, user2, d1Id, null, 200);
@@ -182,11 +186,10 @@ public class SharedLinkApiTest extends AbstractBaseApiTest
assertEquals(d1Id, resp.getNodeId());
assertEquals(fileName1, resp.getName());
- String file1_MimeType = MimetypeMap.MIMETYPE_TEXT_PLAIN;
assertEquals(file1_MimeType, resp.getContent().getMimeType());
- assertEquals("Plain Text", resp.getContent().getMimeTypeName());
+ assertEquals("Adobe PDF Document", resp.getContent().getMimeTypeName());
- assertEquals(new Long(content1Text.length()), resp.getContent().getSizeInBytes());
+ assertEquals(new Long(file1_originalBytes.length), resp.getContent().getSizeInBytes());
assertEquals("UTF-8", resp.getContent().getEncoding());
assertEquals(docModifiedAt.getTime(), resp.getModifiedAt().getTime()); // not changed
@@ -265,10 +268,9 @@ public class SharedLinkApiTest extends AbstractBaseApiTest
assertNull(resp.getSharedByUser().getId()); // userId not returned
assertEquals(user2+" "+user2, resp.getSharedByUser().getDisplayName());
-
// unauth access to file 1 content (via shared link)
response = getSingle(QuickShareLinkEntityResource.class, null, shared1Id + "/content", null, 200);
- assertArrayEquals(content1Text.getBytes(), response.getResponseAsBytes());
+ assertArrayEquals(file1_originalBytes, response.getResponseAsBytes());
Map responseHeaders = response.getHeaders();
assertNotNull(responseHeaders);
assertEquals(file1_MimeType+";charset=UTF-8", responseHeaders.get("Content-Type"));
@@ -280,16 +282,22 @@ public class SharedLinkApiTest extends AbstractBaseApiTest
Map headers = Collections.singletonMap(IF_MODIFIED_SINCE_HEADER, lastModifiedHeader);
getSingle(URL_SHARED_LINKS, null, shared1Id + "/content", null, headers, 304);
- // -ve test - unauth access to get shared link file content - without Content-Disposition header (attachment=false) - header ignored (plain text is not in white list)
+ // unauth access to file 1 content (via shared link) - without Content-Disposition header (attachment=false)
params = new HashMap<>();
params.put("attachment", "false");
response = getSingle(QuickShareLinkEntityResource.class, null, shared1Id + "/content", params, 200);
- assertEquals("attachment; filename=\"" + fileName1 + "\"; filename*=UTF-8''" + fileName1 + "", response.getHeaders().get("Content-Disposition"));
+ assertArrayEquals(file1_originalBytes, response.getResponseAsBytes());
+ responseHeaders = response.getHeaders();
+ assertNotNull(responseHeaders);
+ assertEquals(file1_MimeType+";charset=UTF-8", responseHeaders.get("Content-Type"));
+ assertNotNull(responseHeaders.get(LAST_MODIFIED_HEADER));
+ assertNotNull(responseHeaders.get("Expires"));
+ assertNull(responseHeaders.get("Content-Disposition"));
// unauth access to file 2 content (via shared link)
response = getSingle(QuickShareLinkEntityResource.class, null, shared2Id + "/content", null, 200);
- assertArrayEquals(file2_originalBytes, response.getResponseAsBytes());
+ assertArrayEquals(content2Text.getBytes(), response.getResponseAsBytes());
responseHeaders = response.getHeaders();
assertNotNull(responseHeaders);
assertEquals(file2_MimeType+";charset=UTF-8", responseHeaders.get("Content-Type"));
@@ -297,17 +305,11 @@ public class SharedLinkApiTest extends AbstractBaseApiTest
assertNotNull(responseHeaders.get(LAST_MODIFIED_HEADER));
assertEquals("attachment; filename=\"" + fileName2 + "\"; filename*=UTF-8''" + fileName2 + "", responseHeaders.get("Content-Disposition"));
- // unauth access to file 2 content (via shared link) - without Content-Disposition header (attachment=false)
+ // -ve test - unauth access to get shared link file content - without Content-Disposition header (attachment=false) - header ignored (plain text is not in white list)
params = new HashMap<>();
params.put("attachment", "false");
response = getSingle(QuickShareLinkEntityResource.class, null, shared2Id + "/content", params, 200);
- assertArrayEquals(file2_originalBytes, response.getResponseAsBytes());
- responseHeaders = response.getHeaders();
- assertNotNull(responseHeaders);
- assertEquals(file2_MimeType+";charset=UTF-8", responseHeaders.get("Content-Type"));
- assertNotNull(responseHeaders.get(LAST_MODIFIED_HEADER));
- assertNotNull(responseHeaders.get("Expires"));
- assertNull(responseHeaders.get("Content-Disposition"));
+ assertEquals("attachment; filename=\"" + fileName2 + "\"; filename*=UTF-8''" + fileName2 + "", response.getHeaders().get("Content-Disposition"));
// -ve shared link rendition tests
{
@@ -319,7 +321,7 @@ public class SharedLinkApiTest extends AbstractBaseApiTest
}
- // create rendition
+ // create rendition of pdf doc - note: for some reason create rendition of txt doc fail on build m/c (TBC) ?
Rendition rendition = createAndGetRendition(user2, d1Id, "doclib");
assertNotNull(rendition);
assertEquals(Rendition.RenditionStatus.CREATED, rendition.getStatus());