Search in sources :

Example 6 with MessageVO

use of org.olat.modules.fo.restapi.MessageVO in project openolat by klemens.

the class ForumTest method testGetThreads.

@Test
public void testGetThreads() throws IOException, URISyntaxException {
    RestConnection conn = new RestConnection();
    assertTrue(conn.login("administrator", "openolat"));
    URI uri = getForumUriBuilder().path("threads").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();
}
Also used : InputStream(java.io.InputStream) HttpGet(org.apache.http.client.methods.HttpGet) HttpResponse(org.apache.http.HttpResponse) URI(java.net.URI) MessageVO(org.olat.modules.fo.restapi.MessageVO) Test(org.junit.Test)

Example 7 with MessageVO

use of org.olat.modules.fo.restapi.MessageVO in project openolat by klemens.

the class ForumTest method testNewThread.

@Test
public void testNewThread() throws IOException, URISyntaxException {
    RestConnection conn = new RestConnection();
    assertTrue(conn.login("administrator", "openolat"));
    URI uri = getForumUriBuilder().path("threads").queryParam("authorKey", id1.getKey()).queryParam("title", "New thread").queryParam("body", "A very interesting thread").build();
    HttpPut method = conn.createPut(uri, MediaType.APPLICATION_JSON, true);
    HttpResponse response = conn.execute(method);
    assertEquals(200, response.getStatusLine().getStatusCode());
    MessageVO thread = conn.parse(response, MessageVO.class);
    assertNotNull(thread);
    assertNotNull(thread.getKey());
    assertEquals(thread.getForumKey(), forum.getKey());
    assertEquals(thread.getAuthorKey(), id1.getKey());
    // really saved?
    boolean saved = false;
    ForumManager fm = ForumManager.getInstance();
    List<Message> allMessages = fm.getMessagesByForum(forum);
    for (Message message : allMessages) {
        if (message.getKey().equals(thread.getKey())) {
            saved = true;
        }
    }
    assertTrue(saved);
    conn.shutdown();
}
Also used : Message(org.olat.modules.fo.Message) ForumManager(org.olat.modules.fo.manager.ForumManager) HttpResponse(org.apache.http.HttpResponse) URI(java.net.URI) MessageVO(org.olat.modules.fo.restapi.MessageVO) HttpPut(org.apache.http.client.methods.HttpPut) Test(org.junit.Test)

Example 8 with MessageVO

use of org.olat.modules.fo.restapi.MessageVO in project openolat by klemens.

the class ForumTest method testReplyWithTwoAttachments.

@Test
public void testReplyWithTwoAttachments() throws IOException, URISyntaxException {
    RestConnection conn = new RestConnection();
    assertTrue(conn.login(id1.getName(), "A6B7C8"));
    ReplyVO vo = new ReplyVO();
    vo.setTitle("Reply with attachment");
    vo.setBody("Reply with attachment body");
    File64VO[] files = new File64VO[2];
    // upload portrait
    InputStream portraitStream = CoursesElementsTest.class.getResourceAsStream("portrait.jpg");
    assertNotNull(portraitStream);
    byte[] portraitBytes = IOUtils.toByteArray(portraitStream);
    byte[] portrait64 = Base64.encodeBase64(portraitBytes, true);
    files[0] = new File64VO("portrait64.jpg", new String(portrait64));
    // upload single page
    InputStream indexStream = ForumTest.class.getResourceAsStream("singlepage.html");
    assertNotNull(indexStream);
    byte[] indexBytes = IOUtils.toByteArray(indexStream);
    byte[] index64 = Base64.encodeBase64(indexBytes, true);
    files[1] = new File64VO("singlepage64.html", new String(index64));
    vo.setAttachments(files);
    URI uri = getForumUriBuilder().path("posts").path(m1.getKey().toString()).build();
    HttpPut method = conn.createPut(uri, MediaType.APPLICATION_JSON, true);
    conn.addJsonEntity(method, vo);
    method.addHeader("Accept-Language", "en");
    HttpResponse response = conn.execute(method);
    assertEquals(200, response.getStatusLine().getStatusCode());
    MessageVO message = conn.parse(response, MessageVO.class);
    assertNotNull(message);
    assertNotNull(message.getAttachments());
    assertEquals(2, message.getAttachments().length);
    for (FileVO attachment : message.getAttachments()) {
        String title = attachment.getTitle();
        assertNotNull(title);
        String href = attachment.getHref();
        URI attachmentUri = new URI(href);
        HttpGet getAttachment = conn.createGet(attachmentUri, "*/*", true);
        HttpResponse attachmentCode = conn.execute(getAttachment);
        assertEquals(200, attachmentCode.getStatusLine().getStatusCode());
        EntityUtils.consume(attachmentCode.getEntity());
    }
    // check if the file exists
    ForumManager fm = ForumManager.getInstance();
    VFSContainer container = fm.getMessageContainer(message.getForumKey(), message.getKey());
    VFSItem uploadedFile = container.resolve("portrait64.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);
    // check if the single page exists
    VFSItem uploadedPage = container.resolve("singlepage64.html");
    assertNotNull(uploadedPage);
    assertTrue(uploadedPage instanceof VFSLeaf);
    conn.shutdown();
}
Also used : VFSLeaf(org.olat.core.util.vfs.VFSLeaf) InputStream(java.io.InputStream) File64VO(org.olat.restapi.support.vo.File64VO) HttpGet(org.apache.http.client.methods.HttpGet) VFSContainer(org.olat.core.util.vfs.VFSContainer) HttpResponse(org.apache.http.HttpResponse) VFSItem(org.olat.core.util.vfs.VFSItem) URI(java.net.URI) HttpPut(org.apache.http.client.methods.HttpPut) BufferedImage(java.awt.image.BufferedImage) ForumManager(org.olat.modules.fo.manager.ForumManager) ReplyVO(org.olat.modules.fo.restapi.ReplyVO) FileVO(org.olat.restapi.support.vo.FileVO) MessageVO(org.olat.modules.fo.restapi.MessageVO) Test(org.junit.Test)

Example 9 with MessageVO

use of org.olat.modules.fo.restapi.MessageVO in project openolat by klemens.

the class ForumTest method testUploadAttachment.

@Test
public void testUploadAttachment() 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(message.getKey().toString()).path("attachments").build();
    HttpPost attachMethod = conn.createPost(attachUri, MediaType.APPLICATION_JSON);
    conn.addMultipart(attachMethod, "portrait.jpg", portrait);
    HttpResponse attachResponse = conn.execute(attachMethod);
    assertEquals(200, attachResponse.getStatusLine().getStatusCode());
    // check if the file exists
    ForumManager fm = ForumManager.getInstance();
    VFSContainer container = fm.getMessageContainer(message.getForumKey(), message.getKey());
    VFSItem uploadedFile = container.resolve("portrait.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();
}
Also used : HttpPost(org.apache.http.client.methods.HttpPost) VFSLeaf(org.olat.core.util.vfs.VFSLeaf) InputStream(java.io.InputStream) VFSContainer(org.olat.core.util.vfs.VFSContainer) HttpResponse(org.apache.http.HttpResponse) VFSItem(org.olat.core.util.vfs.VFSItem) URI(java.net.URI) HttpPut(org.apache.http.client.methods.HttpPut) URL(java.net.URL) BufferedImage(java.awt.image.BufferedImage) ForumManager(org.olat.modules.fo.manager.ForumManager) MessageVO(org.olat.modules.fo.restapi.MessageVO) File(java.io.File) Test(org.junit.Test)

Example 10 with MessageVO

use of org.olat.modules.fo.restapi.MessageVO in project openolat by klemens.

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());
}
Also used : InputStream(java.io.InputStream) HttpGet(org.apache.http.client.methods.HttpGet) HttpResponse(org.apache.http.HttpResponse) URI(java.net.URI) MessageVO(org.olat.modules.fo.restapi.MessageVO) Test(org.junit.Test)

Aggregations

URI (java.net.URI)22 HttpResponse (org.apache.http.HttpResponse)22 Test (org.junit.Test)22 MessageVO (org.olat.modules.fo.restapi.MessageVO)22 InputStream (java.io.InputStream)18 HttpPut (org.apache.http.client.methods.HttpPut)14 HttpGet (org.apache.http.client.methods.HttpGet)12 ForumManager (org.olat.modules.fo.manager.ForumManager)12 BufferedImage (java.awt.image.BufferedImage)8 VFSContainer (org.olat.core.util.vfs.VFSContainer)8 VFSItem (org.olat.core.util.vfs.VFSItem)8 VFSLeaf (org.olat.core.util.vfs.VFSLeaf)8 HttpPost (org.apache.http.client.methods.HttpPost)6 File (java.io.File)4 URL (java.net.URL)4 Message (org.olat.modules.fo.Message)4 File64VO (org.olat.restapi.support.vo.File64VO)4 FileVO (org.olat.restapi.support.vo.FileVO)4 BasicNameValuePair (org.apache.http.message.BasicNameValuePair)2 ReplyVO (org.olat.modules.fo.restapi.ReplyVO)2