/** * Test * * @throws Exception * Any exception */ @Test public void createMultiPartRequestContentWithDataTest() throws Exception { String string="FILE_DATA"; File file=File.createTempFile("temp_",".txt"); file.deleteOnExit(); byte[] input=string.getBytes(IOHelper.getDefaultEncoding()); IOHelper.writeFile(input,file); HTTPRequest httpRequest=new HTTPRequest(); ContentPart<?>[] parts=new ContentPart[5]; //make array bigger to simulate null parts parts[0]=new ContentPart<String>("string_part","TEST_DATA",ContentPartType.STRING); parts[1]=new ContentPart<String>("string_part2","TEST_DATA2",ContentPartType.STRING); parts[2]=new ContentPart<File>("file_part",file,ContentPartType.FILE); httpRequest.setContent(parts); HttpMethodBase method=this.client.createMethod("http://fax4j.org",HTTPMethod.POST); RequestEntity output=this.client.createMultiPartRequestContent(httpRequest,method); file.delete(); Assert.assertNotNull(output); Assert.assertEquals(MultipartRequestEntity.class,output.getClass()); }
/** * Test that the body consisting of a file part can be posted. */ public void testPostFilePart() throws Exception { this.server.setHttpService(new EchoService()); PostMethod method = new PostMethod(); byte[] content = "Hello".getBytes(); MultipartRequestEntity entity = new MultipartRequestEntity( new Part[] { new FilePart( "param1", new ByteArrayPartSource("filename.txt", content), "text/plain", "ISO-8859-1") }, method.getParams()); method.setRequestEntity(entity); client.executeMethod(method); assertEquals(200,method.getStatusCode()); String body = method.getResponseBodyAsString(); assertTrue(body.indexOf("Content-Disposition: form-data; name=\"param1\"; filename=\"filename.txt\"") >= 0); assertTrue(body.indexOf("Content-Type: text/plain; charset=ISO-8859-1") >= 0); assertTrue(body.indexOf("Content-Transfer-Encoding: binary") >= 0); assertTrue(body.indexOf("Hello") >= 0); }
public PostRequest buildMultipartPostRequest(File file, String filename, String siteId, String containerId) throws IOException { Part[] parts = { new FilePart("filedata", file.getName(), file, "text/plain", null), new StringPart("filename", filename), new StringPart("description", "description"), new StringPart("siteid", siteId), new StringPart("containerid", containerId) }; MultipartRequestEntity multipartRequestEntity = new MultipartRequestEntity(parts, new HttpMethodParams()); ByteArrayOutputStream os = new ByteArrayOutputStream(); multipartRequestEntity.writeRequest(os); PostRequest postReq = new PostRequest(UPLOAD_URL, os.toByteArray(), multipartRequestEntity.getContentType()); return postReq; }
/** * Test that the body consisting of a string part can be posted. */ public void testPostStringPart() throws Exception { this.server.setHttpService(new EchoService()); PostMethod method = new PostMethod(); MultipartRequestEntity entity = new MultipartRequestEntity( new Part[] { new StringPart("param", "Hello", "ISO-8859-1") }, method.getParams()); method.setRequestEntity(entity); client.executeMethod(method); assertEquals(200,method.getStatusCode()); String body = method.getResponseBodyAsString(); assertTrue(body.indexOf("Content-Disposition: form-data; name=\"param\"") >= 0); assertTrue(body.indexOf("Content-Type: text/plain; charset=ISO-8859-1") >= 0); assertTrue(body.indexOf("Content-Transfer-Encoding: 8bit") >= 0); assertTrue(body.indexOf("Hello") >= 0); }
public void testPostFilePartUnknownLength() throws Exception { this.server.setHttpService(new EchoService()); String enc = "ISO-8859-1"; PostMethod method = new PostMethod(); byte[] content = "Hello".getBytes(enc); MultipartRequestEntity entity = new MultipartRequestEntity( new Part[] { new FilePart( "param1", new TestPartSource("filename.txt", content), "text/plain", enc) }, method.getParams()); method.setRequestEntity(entity); client.executeMethod(method); assertEquals(200,method.getStatusCode()); String body = method.getResponseBodyAsString(); assertTrue(body.indexOf("Content-Disposition: form-data; name=\"param1\"; filename=\"filename.txt\"") >= 0); assertTrue(body.indexOf("Content-Type: text/plain; charset="+enc) >= 0); assertTrue(body.indexOf("Content-Transfer-Encoding: binary") >= 0); assertTrue(body.indexOf("Hello") >= 0); }
private TeleplanResponse processRequest(String url,Part[] parts){ TeleplanResponse tr = null; try{ PostMethod filePost = new PostMethod(url); filePost.setRequestEntity( new MultipartRequestEntity(parts, filePost.getParams()) ); httpclient.executeMethod(filePost); InputStream in = filePost.getResponseBodyAsStream(); tr = new TeleplanResponse(); tr.processResponseStream(in); TeleplanResponseDAO trDAO = new TeleplanResponseDAO(); trDAO.save(tr); }catch(Exception e){ MiscUtils.getLogger().error("Error", e); } return tr; }
/** Test whether the HTTP sender able to send the HTTP header with multi-part to our monitor successfully. */ public void testSendWithMultipart() throws Exception { this.target = new HttpSender(this.testClassLogger, new KVPairData(0)){ public HttpMethod onCreateRequest() throws Exception { PostMethod method = new PostMethod("http://localhost:1999"); Part[] parts = { new StringPart("testparamName", "testparamValue") }; method.setRequestEntity( new MultipartRequestEntity(parts, method.getParams()) ); return method; } }; this.assertSend(); }
@Test public void testSendMultiPartForm() throws Exception { HttpClient httpclient = new HttpClient(); File file = new File("src/main/resources/META-INF/NOTICE.txt"); PostMethod httppost = new PostMethod("http://localhost:" + getPort() + "/test"); Part[] parts = { new StringPart("comment", "A binary file of some kind"), new FilePart(file.getName(), file) }; MultipartRequestEntity reqEntity = new MultipartRequestEntity(parts, httppost.getParams()); httppost.setRequestEntity(reqEntity); int status = httpclient.executeMethod(httppost); assertEquals("Get a wrong response status", 200, status); String result = httppost.getResponseBodyAsString(); assertEquals("Get a wrong result", "A binary file of some kind", result); assertNotNull("Did not use custom multipart filter", httppost.getResponseHeader("MyMultipartFilter")); }
@Test public void testSendMultiPartFormOverrideEnableMultpartFilterFalse() throws Exception { HttpClient httpclient = new HttpClient(); File file = new File("src/main/resources/META-INF/NOTICE.txt"); PostMethod httppost = new PostMethod("http://localhost:" + getPort() + "/test2"); Part[] parts = { new StringPart("comment", "A binary file of some kind"), new FilePart(file.getName(), file) }; MultipartRequestEntity reqEntity = new MultipartRequestEntity(parts, httppost.getParams()); httppost.setRequestEntity(reqEntity); int status = httpclient.executeMethod(httppost); assertEquals("Get a wrong response status", 200, status); assertNotNull("Did not use custom multipart filter", httppost.getResponseHeader("MyMultipartFilter")); }
@Test public void testHttpClient() throws Exception { File jpg = new File("src/test/resources/java.jpg"); String body = "TEST"; Part[] parts = new Part[] {new StringPart("body", body), new FilePart(jpg.getName(), jpg)}; PostMethod method = new PostMethod("http://localhost:" + port2 + "/test/hello"); MultipartRequestEntity requestEntity = new MultipartRequestEntity(parts, method.getParams()); method.setRequestEntity(requestEntity); HttpClient client = new HttpClient(); client.executeMethod(method); String responseBody = method.getResponseBodyAsString(); assertEquals(body, responseBody); String numAttachments = method.getResponseHeader("numAttachments").getValue(); assertEquals(numAttachments, "2"); }
/** * Test * * @throws Exception * Any exception */ @Test public void setRequestContentMultiPartDataTest() throws Exception { HTTPRequest httpRequest=new HTTPRequest(); ContentPart<?>[] parts=new ContentPart[3]; //make array bigger to simulate null parts parts[0]=new ContentPart<String>("string_part","TEST_DATA",ContentPartType.STRING); httpRequest.setContent(parts); PostMethod method=(PostMethod)this.client.createMethod("http://fax4j.org",HTTPMethod.POST); this.client.setRequestContent(httpRequest,method); RequestEntity output=method.getRequestEntity(); Assert.assertNotNull(output); Assert.assertEquals(MultipartRequestEntity.class,output.getClass()); }
@Test public void testUploadFile() throws IOException, URISyntaxException { final HttpClient c = loginWithCookie("administrator", "olat"); final URI uri = UriBuilder.fromUri(getNodeURI()).path("files").build(); // create single page final URL fileUrl = RepositoryEntriesITCase.class.getResource("singlepage.html"); assertNotNull(fileUrl); final File file = new File(fileUrl.toURI()); final PutMethod method = createPut(uri, MediaType.APPLICATION_JSON, true); method.addRequestHeader("Content-Type", MediaType.MULTIPART_FORM_DATA); final Part[] parts = { new FilePart("file", file), new StringPart("filename", file.getName()) }; method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams())); final int code = c.executeMethod(method); assertEquals(code, 200); final OlatNamedContainerImpl folder = BCCourseNode.getNodeFolderContainer((BCCourseNode) bcNode, course1.getCourseEnvironment()); final VFSItem item = folder.resolve(file.getName()); assertNotNull(item); }
private MockHttpServletRequest getMultipartRequest( ) throws Exception { MockHttpServletRequest request = new MockHttpServletRequest( ); byte [ ] fileContent = new byte [ ] { 1, 2, 3 }; Part [ ] parts = new Part [ ] { new FilePart( "file1", new ByteArrayPartSource( "file1", fileContent ) ) }; MultipartRequestEntity multipartRequestEntity = new MultipartRequestEntity( parts, new PostMethod( ).getParams( ) ); // Serialize request body ByteArrayOutputStream requestContent = new ByteArrayOutputStream( ); multipartRequestEntity.writeRequest( requestContent ); // Set request body to HTTP servlet request request.setContent( requestContent.toByteArray( ) ); // Set content type to HTTP servlet request (important, includes Mime boundary string) request.setContentType( multipartRequestEntity.getContentType( ) ); request.setMethod( "POST" ); return request; }
private static PostMethod getExtractivProcessString( final URI extractivURI, final String content, final String serviceKey) throws FileNotFoundException { final PartBase filePart = new StringPart("content", content, null); // bytes to upload final ArrayList<Part> message = new ArrayList<Part>(); message.add(filePart); message.add(new StringPart("formids", "content")); message.add(new StringPart("output_format", "JSON")); message.add(new StringPart("api_key", serviceKey)); final Part[] messageArray = message.toArray(new Part[0]); // Use a Post for the file upload final PostMethod postMethod = new PostMethod(extractivURI.toString()); postMethod.setRequestEntity(new MultipartRequestEntity(messageArray, postMethod.getParams())); postMethod.addRequestHeader("Accept-Encoding", "gzip"); // Request the response be compressed (this is highly recommended) return postMethod; }
/** * <p>This creates a HttpMethod with the message as its payload and image attachment. The message should be a properly formatted JSON * String (No validation is done on this).</p> * * <p>The message can be easily created using the {@link #getJsonPayload(Message)} method.</p> * * @param uri The full URI which we will post to * @param message A properly formatted JSON message. UTF-8 is expected * @param image A complete instance of ImageAttachment object * @throws IOException */ public HttpMethod getJsonPostForMultipartRequestEntity(String uri, String message, ImageAttachment image) throws IOException { PostMethod post = new PostMethod(uri); StringPart bodyPart = new StringPart("json", message); bodyPart.setContentType("application/json"); FilePart filePart= new FilePart("feedItemFileUpload", image.retrieveObjectFile()); filePart.setContentType(image.retrieveContentType()); Part[] parts = { bodyPart, filePart, }; post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams())); return post; }
/** * Imports a model from a JSON file. */ public static void importModel() throws Exception { // Upload file to H2O HttpClient client = new HttpClient(); PostMethod post = new PostMethod(URL + "/Upload.json?key=" + JSON_FILE.getName()); Part[] parts = { new FilePart(JSON_FILE.getName(), JSON_FILE) }; post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams())); if( 200 != client.executeMethod(post) ) throw new RuntimeException("Request failed: " + post.getStatusLine()); post.releaseConnection(); // Parse the key into a model GetMethod get = new GetMethod(URL + "/2/ImportModel.json?" // + "destination_key=MyImportedNeuralNet&" // + "type=NeuralNetModel&" // + "json=" + JSON_FILE.getName()); if( 200 != client.executeMethod(get) ) throw new RuntimeException("Request failed: " + get.getStatusLine()); get.releaseConnection(); }
public void handleUpload(HttpMethod method, Context context) throws EngineException { if (method instanceof PostMethod) { try { PostMethod uploadMethod = (PostMethod) method; MultipartRequestEntity mp = new MultipartRequestEntity(parts.toArray(new Part[parts.size()]), uploadMethod.getParams()); HeaderName.ContentType.setRequestHeader(method, mp.getContentType()); uploadMethod.setRequestEntity(mp); } catch (Exception e) { throw new EngineException("(HTTPUploadStatement) failed to handleUpload", e); } } }
public PostRequest buildMultipartPostRequest(File file) throws IOException { Part[] parts = { new FilePart("filedata", file.getName(), file, "application/zip", null) }; MultipartRequestEntity multipartRequestEntity = new MultipartRequestEntity(parts, new HttpMethodParams()); ByteArrayOutputStream os = new ByteArrayOutputStream(); multipartRequestEntity.writeRequest(os); PostRequest postReq = new PostRequest(UPLOAD_URL, os.toByteArray(), multipartRequestEntity.getContentType()); return postReq; }
public MultiPartRequest build() throws IOException { List<Part> parts = new ArrayList<>(); if (fileData != null) { FilePart fp = new FilePart("filedata", fileData.getFileName(), fileData.getFile(), fileData.getMimetype(), null); // Get rid of the default values added upon FilePart instantiation fp.setCharSet(fileData.getEncoding()); fp.setContentType(fileData.getMimetype()); parts.add(fp); addPartIfNotNull(parts, "name", fileData.getFileName()); } addPartIfNotNull(parts, "relativepath", relativePath); addPartIfNotNull(parts, "updatenoderef", updateNodeRef); addPartIfNotNull(parts, "description", description); addPartIfNotNull(parts, "contenttype", contentTypeQNameStr); addPartIfNotNull(parts, "aspects", getCommaSeparated(aspects)); addPartIfNotNull(parts, "majorversion", majorVersion); addPartIfNotNull(parts, "overwrite", overwrite); addPartIfNotNull(parts, "autorename", autoRename); addPartIfNotNull(parts, "nodetype", nodeType); addPartIfNotNull(parts, "renditions", getCommaSeparated(renditionIds)); if (!properties.isEmpty()) { for (Entry<String, String> prop : properties.entrySet()) { parts.add(new StringPart(prop.getKey(), prop.getValue())); } } MultipartRequestEntity req = new MultipartRequestEntity(parts.toArray(new Part[parts.size()]), new HttpMethodParams()); ByteArrayOutputStream os = new ByteArrayOutputStream(); req.writeRequest(os); return new MultiPartRequest(os.toByteArray(), req.getContentType(), req.getContentLength()); }
/** * 支持multipart方式上传图片 * */ public Response multPartURL(String url, PostParameter[] params, ImageItem item, String token) throws WeiboException { PostMethod postMethod = new PostMethod(url); try { Part[] parts = null; if (params == null) { parts = new Part[1]; } else { parts = new Part[params.length + 1]; } if (params != null) { int i = 0; for (PostParameter entry : params) { parts[i++] = new StringPart(entry.getName(), (String) entry.getValue()); } parts[parts.length - 1] = new ByteArrayPart(item.getContent(), item.getName(), item.getContentType()); } postMethod.setRequestEntity(new MultipartRequestEntity(parts, postMethod.getParams())); return httpRequest(postMethod, token); } catch (Exception ex) { throw new WeiboException(ex.getMessage(), ex, -1); } }
public Response multPartURL(String fileParamName, String url, PostParameter[] params, File file, boolean authenticated, String token) throws WeiboException { PostMethod postMethod = new PostMethod(url); try { Part[] parts = null; if (params == null) { parts = new Part[1]; } else { parts = new Part[params.length + 1]; } if (params != null) { int i = 0; for (PostParameter entry : params) { parts[i++] = new StringPart(entry.getName(), (String) entry.getValue()); } } FilePart filePart = new FilePart(fileParamName, file.getName(), file, new MimetypesFileTypeMap().getContentType(file), "UTF-8"); filePart.setTransferEncoding("binary"); parts[parts.length - 1] = filePart; postMethod.setRequestEntity(new MultipartRequestEntity(parts, postMethod.getParams())); return httpRequest(postMethod, token); } catch (Exception ex) { throw new WeiboException(ex.getMessage(), ex, -1); } }
public static void httpPost(final @NotNull String uploadUrl, final @NotNull Part[] parts, final @Nullable OutputStream outputStream, Credentials credentials, URI serverUri, final HttpClient httpClient) throws IOException, TfsException { setupHttpClient(credentials, serverUri, httpClient); PostMethod method = new PostMethod(uploadUrl); try { method.setRequestHeader("X-TFS-Version", "1.0.0.0"); method.setRequestHeader("accept-language", "en-US"); method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams())); int statusCode = httpClient.executeMethod(method); if (statusCode == HttpStatus.SC_OK) { if (outputStream != null) { StreamUtil.copyStreamContent(getInputStream(method), outputStream); } } else if (statusCode == HttpStatus.SC_INTERNAL_SERVER_ERROR) { throw new OperationFailedException(method.getResponseBodyAsString()); } else { throw TfsExceptionManager.createHttpTransportErrorException(statusCode, null); } } finally { method.releaseConnection(); } }
public HttpMethod buildMultipartRequest(URI location, Map<Path, byte[]> toUpload) throws HttpException, IOException { PostMethod filePost = new PostMethod(location.toASCIIString()); List<Part> parts = new ArrayList<Part>(toUpload.size()); for (Entry<Path, byte[]> entry : toUpload.entrySet()) parts.add(new FilePart(entry.getKey().toString(), new ByteArrayPartSource(entry.getKey().toString(), entry.getValue()))); filePost.setRequestEntity(new MultipartRequestEntity(parts.toArray(new Part[0]), filePost.getParams())); return filePost; }
public static int sendFile(final String host, final String port, final String path, final String fileName, final InputStream inputStream, final long lengthInBytes) { HttpClient client = new HttpClient(); try { client.getParams().setParameter("http.protocol.version", HttpVersion.HTTP_1_1); client.getParams().setSoTimeout(3600 * 1000); // One hour PostMethod post = new PostMethod("http://" + host + ":" + port + "/" + path); Part[] parts = { new FilePart(fileName, new PartSource() { @Override public long getLength() { return lengthInBytes; } @Override public String getFileName() { return "fileName"; } @Override public InputStream createInputStream() throws IOException { return new BufferedInputStream(inputStream); } }) }; post.setRequestEntity(new MultipartRequestEntity(parts, new HttpMethodParams())); client.executeMethod(post); if (post.getStatusCode() >= 400) { String errorString = "POST Status Code: " + post.getStatusCode() + "\n"; if (post.getResponseHeader("Error") != null) { errorString += "ServletException: " + post.getResponseHeader("Error").getValue(); } throw new HttpException(errorString); } return post.getStatusCode(); } catch (Exception e) { LOGGER.error("Caught exception while sending file", e); Utils.rethrowException(e); throw new AssertionError("Should not reach this"); } }
/** * Post this multipart request. * @param responseBody the response is written into this OutputStream. * @return a MultiPartRespnse which contains headers, status, and status code. */ public MultiPartRespnse post(OutputStream responseBody) { if (targetURL == null || parts.size() == 0) { return null; } logStart(); PostMethod filePost = new PostMethod(targetURL); for(Param p : headers) { filePost.addRequestHeader(p.getName(), p.getValue()); } try { filePost.setRequestEntity( new MultipartRequestEntity(parts.toArray(new Part[parts.size()]), filePost.getParams()) ); HttpServices.executeMethod(filePost, userId, passwd); MultiPartRespnse resp = new MultiPartRespnse(filePost.getResponseHeaders(), filePost.getStatusCode(), filePost.getStatusText()); if (responseBody != null) { readBody(responseBody, filePost.getResponseBodyAsStream()); } return resp; } catch (Exception ex) { LOG.error(ex, "Error while posting multipart request to" + targetURL); return null; } finally { filePost.releaseConnection(); } }
public void addFile(final int executionId, final String uid, final File file) throws Exception { PostMethod method = new PostMethod(baseUri + "executions/" + executionId + "/details/" + uid + "/file/"); Part[] parts = new Part[] { new FilePart("file", file) }; method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams())); final int responseCode = client.executeMethod(method); handleResponseCode(method, responseCode); }
@Test public void testImportCp() throws HttpException, IOException, URISyntaxException { final URL cpUrl = RepositoryEntriesITCase.class.getResource("cp-demo.zip"); assertNotNull(cpUrl); final File cp = new File(cpUrl.toURI()); final HttpClient c = loginWithCookie("administrator", "olat"); final PutMethod method = createPut("repo/entries", MediaType.APPLICATION_JSON, true); method.addRequestHeader("Content-Type", MediaType.MULTIPART_FORM_DATA); final Part[] parts = { new FilePart("file", cp), new StringPart("filename", "cp-demo.zip"), new StringPart("resourcename", "CP demo"), new StringPart("displayname", "CP demo") }; method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams())); final int code = c.executeMethod(method); assertTrue(code == 200 || code == 201); final String body = method.getResponseBodyAsString(); method.releaseConnection(); final RepositoryEntryVO vo = parse(body, RepositoryEntryVO.class); assertNotNull(vo); final Long key = vo.getKey(); final RepositoryEntry re = RepositoryServiceImpl.getInstance().lookupRepositoryEntry(key); assertNotNull(re); assertNotNull(re.getOwnerGroup()); assertNotNull(re.getOlatResource()); assertEquals("CP demo", re.getDisplayname()); }
@Test public void testImportTest() throws HttpException, IOException, URISyntaxException { final URL cpUrl = RepositoryEntriesITCase.class.getResource("qti-demo.zip"); assertNotNull(cpUrl); final File cp = new File(cpUrl.toURI()); final HttpClient c = loginWithCookie("administrator", "olat"); final PutMethod method = createPut("repo/entries", MediaType.APPLICATION_JSON, true); method.addRequestHeader("Content-Type", MediaType.MULTIPART_FORM_DATA); final Part[] parts = { new FilePart("file", cp), new StringPart("filename", "qti-demo.zip"), new StringPart("resourcename", "QTI demo"), new StringPart("displayname", "QTI demo") }; method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams())); final int code = c.executeMethod(method); assertTrue(code == 200 || code == 201); final String body = method.getResponseBodyAsString(); method.releaseConnection(); final RepositoryEntryVO vo = parse(body, RepositoryEntryVO.class); assertNotNull(vo); final Long key = vo.getKey(); final RepositoryEntry re = RepositoryServiceImpl.getInstance().lookupRepositoryEntry(key); assertNotNull(re); assertNotNull(re.getOwnerGroup()); assertNotNull(re.getOlatResource()); assertEquals("QTI demo", re.getDisplayname()); log.info(re.getOlatResource().getResourceableTypeName()); }
@Test public void testImportQuestionnaire() throws HttpException, IOException, URISyntaxException { final URL cpUrl = RepositoryEntriesITCase.class.getResource("questionnaire-demo.zip"); assertNotNull(cpUrl); final File cp = new File(cpUrl.toURI()); final HttpClient c = loginWithCookie("administrator", "olat"); final PutMethod method = createPut("repo/entries", MediaType.APPLICATION_JSON, true); method.addRequestHeader("Content-Type", MediaType.MULTIPART_FORM_DATA); final Part[] parts = { new FilePart("file", cp), new StringPart("filename", "questionnaire-demo.zip"), new StringPart("resourcename", "Questionnaire demo"), new StringPart("displayname", "Questionnaire demo") }; method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams())); final int code = c.executeMethod(method); assertTrue(code == 200 || code == 201); final String body = method.getResponseBodyAsString(); method.releaseConnection(); final RepositoryEntryVO vo = parse(body, RepositoryEntryVO.class); assertNotNull(vo); final Long key = vo.getKey(); final RepositoryEntry re = RepositoryServiceImpl.getInstance().lookupRepositoryEntry(key); assertNotNull(re); assertNotNull(re.getOwnerGroup()); assertNotNull(re.getOlatResource()); assertEquals("Questionnaire demo", re.getDisplayname()); log.info(re.getOlatResource().getResourceableTypeName()); }
@Test public void testImportWiki() throws HttpException, IOException, URISyntaxException { final URL cpUrl = RepositoryEntriesITCase.class.getResource("wiki-demo.zip"); assertNotNull(cpUrl); final File cp = new File(cpUrl.toURI()); final HttpClient c = loginWithCookie("administrator", "olat"); final PutMethod method = createPut("repo/entries", MediaType.APPLICATION_JSON, true); method.addRequestHeader("Content-Type", MediaType.MULTIPART_FORM_DATA); final Part[] parts = { new FilePart("file", cp), new StringPart("filename", "wiki-demo.zip"), new StringPart("resourcename", "Wiki demo"), new StringPart("displayname", "Wiki demo") }; method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams())); final int code = c.executeMethod(method); assertTrue(code == 200 || code == 201); final String body = method.getResponseBodyAsString(); method.releaseConnection(); final RepositoryEntryVO vo = parse(body, RepositoryEntryVO.class); assertNotNull(vo); final Long key = vo.getKey(); final RepositoryEntry re = RepositoryServiceImpl.getInstance().lookupRepositoryEntry(key); assertNotNull(re); assertNotNull(re.getOwnerGroup()); assertNotNull(re.getOlatResource()); assertEquals("Wiki demo", re.getDisplayname()); log.info(re.getOlatResource().getResourceableTypeName()); }
@Test public void testImportBlog() throws HttpException, IOException, URISyntaxException { final URL cpUrl = RepositoryEntriesITCase.class.getResource("blog-demo.zip"); assertNotNull(cpUrl); final File cp = new File(cpUrl.toURI()); final HttpClient c = loginWithCookie("administrator", "olat"); final PutMethod method = createPut("repo/entries", MediaType.APPLICATION_JSON, true); method.addRequestHeader("Content-Type", MediaType.MULTIPART_FORM_DATA); final Part[] parts = { new FilePart("file", cp), new StringPart("filename", "blog-demo.zip"), new StringPart("resourcename", "Blog demo"), new StringPart("displayname", "Blog demo") }; method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams())); final int code = c.executeMethod(method); assertTrue(code == 200 || code == 201); final String body = method.getResponseBodyAsString(); method.releaseConnection(); final RepositoryEntryVO vo = parse(body, RepositoryEntryVO.class); assertNotNull(vo); final Long key = vo.getKey(); final RepositoryEntry re = RepositoryServiceImpl.getInstance().lookupRepositoryEntry(key); assertNotNull(re); assertNotNull(re.getOwnerGroup()); assertNotNull(re.getOlatResource()); assertEquals("Blog demo", re.getDisplayname()); log.info(re.getOlatResource().getResourceableTypeName()); }
@Test public void testPortrait() throws IOException, URISyntaxException { final URL portraitUrl = RepositoryEntriesITCase.class.getResource("portrait.jpg"); assertNotNull(portraitUrl); final File portrait = new File(portraitUrl.toURI()); final HttpClient c = loginWithCookie("rest-one", "A6B7C8"); // upload portrait final String request = "/users/" + id1.getKey() + "/portrait"; final PostMethod method = createPost(request, MediaType.APPLICATION_JSON, true); method.addRequestHeader("Content-Type", MediaType.MULTIPART_FORM_DATA); final Part[] parts = { new FilePart("file", portrait), new StringPart("filename", "portrait.jpg") }; method.setRequestEntity(new MultipartRequestEntity(parts, method.getParams())); final int code = c.executeMethod(method); assertEquals(code, 200); method.releaseConnection(); // check if big and small portraits exist final DisplayPortraitManager dps = DisplayPortraitManager.getInstance(); final File uploadDir = dps.getPortraitDir(id1); assertTrue(new File(uploadDir, DisplayPortraitManager.PORTRAIT_SMALL_FILENAME).exists()); assertTrue(new File(uploadDir, DisplayPortraitManager.PORTRAIT_BIG_FILENAME).exists()); // check get portrait final String getRequest = "/users/" + id1.getKey() + "/portrait"; final GetMethod getMethod = createGet(getRequest, MediaType.APPLICATION_OCTET_STREAM, true); final int getCode = c.executeMethod(getMethod); assertEquals(getCode, 200); final InputStream in = getMethod.getResponseBodyAsStream(); int b = 0; int count = 0; while ((b = in.read()) > -1) { count++; } assertEquals(-1, b);// up to end of file assertTrue(count > 1000);// enough bytes method.releaseConnection(); }