use of org.olat.modules.fo.restapi.MessageVO in project OpenOLAT by OpenOLAT.
the class GroupMgmtTest method testGetMessages.
@Test
public void testGetMessages() throws IOException, URISyntaxException {
assertTrue(conn.login("rest-one", "A6B7C8"));
URI request = UriBuilder.fromUri(getContextURI()).path("/groups/" + g1.getKey() + "/forum/posts/" + m1.getKey()).build();
HttpGet method = conn.createGet(request, MediaType.APPLICATION_JSON, true);
HttpResponse response = conn.execute(method);
assertEquals(200, response.getStatusLine().getStatusCode());
InputStream body = response.getEntity().getContent();
List<MessageVO> messages = parseMessageArray(body);
assertNotNull(messages);
assertEquals(4, messages.size());
}
use of org.olat.modules.fo.restapi.MessageVO in project openolat by klemens.
the class ForumTest method testGetThread.
@Test
public void testGetThread() throws IOException, URISyntaxException {
RestConnection conn = new RestConnection();
assertTrue(conn.login("administrator", "openolat"));
URI uri = getForumUriBuilder().path("posts").path(m1.getKey().toString()).build();
HttpGet method = conn.createGet(uri, MediaType.APPLICATION_JSON, true);
HttpResponse response = conn.execute(method);
assertEquals(200, response.getStatusLine().getStatusCode());
InputStream body = response.getEntity().getContent();
List<MessageVO> threads = parseMessageArray(body);
assertNotNull(threads);
assertFalse(threads.isEmpty());
conn.shutdown();
}
use of org.olat.modules.fo.restapi.MessageVO in project openolat by klemens.
the class ForumTest method testNewMessage.
@Test
public void testNewMessage() throws IOException, URISyntaxException {
RestConnection conn = new RestConnection();
assertTrue(conn.login("administrator", "openolat"));
URI uri = getForumUriBuilder().path("posts").path(m1.getKey().toString()).queryParam("authorKey", id1.getKey()).queryParam("title", "New message").queryParam("body", "A very interesting response in Thread-1").build();
HttpPut method = conn.createPut(uri, MediaType.APPLICATION_JSON, true);
HttpResponse response = conn.execute(method);
assertEquals(200, response.getStatusLine().getStatusCode());
MessageVO message = conn.parse(response, MessageVO.class);
assertNotNull(message);
assertNotNull(message.getKey());
assertEquals(message.getForumKey(), forum.getKey());
assertEquals(message.getAuthorKey(), id1.getKey());
assertEquals(message.getParentKey(), m1.getKey());
// really saved?
boolean saved = false;
ForumManager fm = ForumManager.getInstance();
List<Message> allMessages = fm.getMessagesByForum(forum);
for (Message msg : allMessages) {
if (msg.getKey().equals(message.getKey())) {
saved = true;
}
}
assertTrue(saved);
conn.shutdown();
}
use of org.olat.modules.fo.restapi.MessageVO in project openolat by klemens.
the class ForumTest method testUploadAttachmentAndRename.
@Test
public void testUploadAttachmentAndRename() throws IOException, URISyntaxException {
RestConnection conn = new RestConnection();
assertTrue(conn.login(id1.getName(), "A6B7C8"));
URI uri = getForumUriBuilder().path("posts").path(m1.getKey().toString()).queryParam("authorKey", id1.getKey()).queryParam("title", "New message with attachment ").queryParam("body", "A very interesting response in Thread-1 with an attachment").build();
HttpPut method = conn.createPut(uri, MediaType.APPLICATION_JSON, true);
HttpResponse response = conn.execute(method);
assertEquals(200, response.getStatusLine().getStatusCode());
MessageVO message = conn.parse(response, MessageVO.class);
assertNotNull(message);
// attachment
URL portraitUrl = CoursesElementsTest.class.getResource("portrait.jpg");
assertNotNull(portraitUrl);
File portrait = new File(portraitUrl.toURI());
// upload portrait
URI attachUri = getForumUriBuilder().path("posts").path(m1.getKey().toString()).path("attachments").build();
HttpPost attachMethod = conn.createPost(attachUri, MediaType.APPLICATION_JSON);
conn.addMultipart(attachMethod, "portrait.jpg", portrait);
HttpResponse attachCode = conn.execute(attachMethod);
assertEquals(200, attachCode.getStatusLine().getStatusCode());
EntityUtils.consume(attachCode.getEntity());
// upload portrait a second time
URI attach2Uri = getForumUriBuilder().path("posts").path(m1.getKey().toString()).path("attachments").build();
HttpPost attach2Method = conn.createPost(attach2Uri, MediaType.APPLICATION_JSON);
conn.addMultipart(attach2Method, "portrait.jpg", portrait);
HttpResponse attach2Code = conn.execute(attach2Method);
assertEquals(200, attach2Code.getStatusLine().getStatusCode());
EntityUtils.consume(attach2Code.getEntity());
// load the attachments
URI loadUri = getForumUriBuilder().path("posts").path(m1.getKey().toString()).path("attachments").build();
HttpGet loadMethod = conn.createGet(loadUri, MediaType.APPLICATION_JSON, true);
HttpResponse loadResponse = conn.execute(loadMethod);
assertEquals(200, loadResponse.getStatusLine().getStatusCode());
InputStream loadBody = loadResponse.getEntity().getContent();
List<FileVO> files = parseFileArray(loadBody);
assertNotNull(files);
assertEquals(2, files.size());
conn.shutdown();
}
use of org.olat.modules.fo.restapi.MessageVO in project openolat by klemens.
the class ForumTest method testUploadAttachmentWithFile64VO.
@Test
public void testUploadAttachmentWithFile64VO() throws IOException, URISyntaxException {
RestConnection conn = new RestConnection();
assertTrue(conn.login(id1.getName(), "A6B7C8"));
URI uri = getForumUriBuilder().path("posts").path(m1.getKey().toString()).queryParam("authorKey", id1.getKey()).queryParam("title", "New message with attachment ").queryParam("body", "A very interesting response in Thread-1 with an attachment").build();
HttpPut method = conn.createPut(uri, MediaType.APPLICATION_JSON, true);
HttpResponse response = conn.execute(method);
assertEquals(200, response.getStatusLine().getStatusCode());
MessageVO message = conn.parse(response, MessageVO.class);
assertNotNull(message);
// attachment
InputStream portraitStream = CoursesElementsTest.class.getResourceAsStream("portrait.jpg");
assertNotNull(portraitStream);
// upload portrait
URI attachUri = getForumUriBuilder().path("posts").path(message.getKey().toString()).path("attachments").build();
HttpPut attachMethod = conn.createPut(attachUri, MediaType.APPLICATION_JSON, true);
attachMethod.addHeader("Content-Type", MediaType.APPLICATION_JSON);
byte[] portraitBytes = IOUtils.toByteArray(portraitStream);
byte[] portrait64 = Base64.encodeBase64(portraitBytes, true);
File64VO fileVo = new File64VO();
fileVo.setFile(new String(portrait64));
fileVo.setFilename("portrait64vo.jpg");
conn.addJsonEntity(attachMethod, fileVo);
HttpResponse attachCode = conn.execute(attachMethod);
assertEquals(200, attachCode.getStatusLine().getStatusCode());
// check if the file exists
ForumManager fm = ForumManager.getInstance();
VFSContainer container = fm.getMessageContainer(message.getForumKey(), message.getKey());
VFSItem uploadedFile = container.resolve("portrait64vo.jpg");
assertNotNull(uploadedFile);
assertTrue(uploadedFile instanceof VFSLeaf);
// check if the image is still an image
VFSLeaf uploadedImage = (VFSLeaf) uploadedFile;
InputStream uploadedStream = uploadedImage.getInputStream();
BufferedImage image = ImageIO.read(uploadedStream);
FileUtils.closeSafely(uploadedStream);
assertNotNull(image);
conn.shutdown();
}
Aggregations