private FormDataItem mockFormDataItem(String fieldName, String contentType, byte content[], boolean isFormField) throws IOException { InputStream in = new ByteArrayInputStream(content); FormDataItem formDataItem = mockControl.createMock(FormDataItem.class); expect(formDataItem.getContentType()).andStubReturn(contentType); expect(formDataItem.getSize()).andStubReturn((long) content.length); expect(formDataItem.get()).andStubReturn(content); expect(formDataItem.getAsString()).andStubReturn(new String(content)); expect(formDataItem.getFieldName()).andStubReturn(fieldName); expect(formDataItem.isFormField()).andStubReturn(isFormField); expect(formDataItem.getInputStream()).andStubReturn(in); return formDataItem; } }
protected String getPostContent(HttpServletRequest request, Map<String,FormDataItem> formItems) throws ContentTypes.InvalidContentTypeException, IOException { String content = null; ContentTypes.checkContentTypes(ALLOWED_CONTENT_TYPES, request.getContentType()); if (formParser.isMultipartContent(request)) { for (FormDataItem item : formParser.parse(request)) { if (item.isFormField() && REQUEST_PARAM.equals(item.getFieldName()) && content == null) { // As per spec, in case of a multipart/form-data content, there will be one form field // with field name as "request". It will contain the json request. Any further form // field or file item will not be parsed out, but will be exposed via getFormItem // method of RequestItem. if (!Strings.isNullOrEmpty(item.getContentType())) { ContentTypes.checkContentTypes(ContentTypes.ALLOWED_JSON_CONTENT_TYPES, item.getContentType()); } content = item.getAsString(); } else { formItems.put(item.getFieldName(), item); } } } else { content = IOUtils.toString(request.getInputStream(), request.getCharacterEncoding()); } return content; }
@Override public Object get(RequestItem req) { FormDataItem item = req.getFormMimePart(IMAGE_FIELDNAME); return ImmutableMap.of("image-data", new String(item.get()), "image-type", item.getContentType(), "image-ref", req.getParameter("image-ref")); } });
@Test public void testSingleFileItemAndRequest() throws Exception { MultipartFormBuilder builder = new MultipartFormBuilder(); builder.addFileItem(ALBUM_IMAGE_FIELDNAME, ALBUM_IMAGE_FILENAME, ALBUM_IMAGE_DATA, ALBUM_IMAGE_TYPE); builder.addFormField(REQUEST_FIELDNAME, REQUEST_DATA); setupRequest(builder.build(), builder.getContentType()); List<FormDataItem> formItems = Lists.newArrayList(multipartFormParser.parse(request)); assertEquals(2, formItems.size()); FormDataItem formItem = formItems.get(0); assertFalse(formItem.isFormField()); assertEquals(ALBUM_IMAGE_FIELDNAME, formItem.getFieldName()); assertEquals(ALBUM_IMAGE_FILENAME, formItem.getName()); assertEquals(ALBUM_IMAGE_TYPE, formItem.getContentType()); assertEquals(ALBUM_IMAGE_DATA, new String(formItem.get())); formItem = formItems.get(1); assertTrue(formItem.isFormField()); assertEquals(REQUEST_FIELDNAME, formItem.getFieldName()); assertEquals(REQUEST_DATA, new String(formItem.get())); }
@Test public void testSingleRequest() throws Exception { MultipartFormBuilder builder = new MultipartFormBuilder(); builder.addFormField(REQUEST_FIELDNAME, REQUEST_DATA); setupRequest(builder.build(), builder.getContentType()); List<FormDataItem> formItems = Lists.newArrayList(multipartFormParser.parse(request)); assertEquals(1, formItems.size()); FormDataItem formItem = formItems.get(0); assertTrue(formItem.isFormField()); assertEquals(REQUEST_FIELDNAME, formItem.getFieldName()); assertEquals(REQUEST_DATA, new String(formItem.get())); }
@Test public void testSingleFileItem() throws Exception { MultipartFormBuilder builder = new MultipartFormBuilder(); builder.addFileItem(ALBUM_IMAGE_FIELDNAME, ALBUM_IMAGE_FILENAME, ALBUM_IMAGE_DATA, ALBUM_IMAGE_TYPE); setupRequest(builder.build(), builder.getContentType()); List<FormDataItem> formItems = Lists.newArrayList(multipartFormParser.parse(request)); assertEquals(1, formItems.size()); FormDataItem formItem = formItems.get(0); assertFalse(formItem.isFormField()); assertEquals(ALBUM_IMAGE_FIELDNAME, formItem.getFieldName()); assertEquals(ALBUM_IMAGE_FILENAME, formItem.getName()); assertEquals(ALBUM_IMAGE_TYPE, formItem.getContentType()); assertEquals(ALBUM_IMAGE_DATA, new String(formItem.get())); }
protected String getPostContent(HttpServletRequest request, Map<String,FormDataItem> formItems) throws ContentTypes.InvalidContentTypeException, IOException { String content = null; ContentTypes.checkContentTypes(ALLOWED_CONTENT_TYPES, request.getContentType()); if (formParser.isMultipartContent(request)) { for (FormDataItem item : formParser.parse(request)) { if (item.isFormField() && REQUEST_PARAM.equals(item.getFieldName()) && content == null) { // As per spec, in case of a multipart/form-data content, there will be one form field // with field name as "request". It will contain the json request. Any further form // field or file item will not be parsed out, but will be exposed via getFormItem // method of RequestItem. if (!Strings.isNullOrEmpty(item.getContentType())) { ContentTypes.checkContentTypes(ContentTypes.ALLOWED_JSON_CONTENT_TYPES, item.getContentType()); } content = item.getAsString(); } else { formItems.put(item.getFieldName(), item); } } } else { content = IOUtils.toString(request.getInputStream(), request.getCharacterEncoding()); } return content; }
@Override public Object get(RequestItem req) { FormDataItem item = req.getFormMimePart(IMAGE_FIELDNAME); return ImmutableMap.of("image-data", new String(item.get()), "image-type", item.getContentType(), "image-ref", req.getParameter("image-ref")); } });
@Test public void testSingleRequest() throws Exception { MultipartFormBuilder builder = new MultipartFormBuilder(); builder.addFormField(REQUEST_FIELDNAME, REQUEST_DATA); setupRequest(builder.build(), builder.getContentType()); List<FormDataItem> formItems = Lists.newArrayList(multipartFormParser.parse(request)); assertEquals(1, formItems.size()); FormDataItem formItem = formItems.get(0); assertTrue(formItem.isFormField()); assertEquals(REQUEST_FIELDNAME, formItem.getFieldName()); assertEquals(REQUEST_DATA, new String(formItem.get())); }
@Test public void testSingleFileItemAndRequest() throws Exception { MultipartFormBuilder builder = new MultipartFormBuilder(); builder.addFileItem(ALBUM_IMAGE_FIELDNAME, ALBUM_IMAGE_FILENAME, ALBUM_IMAGE_DATA, ALBUM_IMAGE_TYPE); builder.addFormField(REQUEST_FIELDNAME, REQUEST_DATA); setupRequest(builder.build(), builder.getContentType()); List<FormDataItem> formItems = Lists.newArrayList(multipartFormParser.parse(request)); assertEquals(2, formItems.size()); FormDataItem formItem = formItems.get(0); assertFalse(formItem.isFormField()); assertEquals(ALBUM_IMAGE_FIELDNAME, formItem.getFieldName()); assertEquals(ALBUM_IMAGE_FILENAME, formItem.getName()); assertEquals(ALBUM_IMAGE_TYPE, formItem.getContentType()); assertEquals(ALBUM_IMAGE_DATA, new String(formItem.get())); formItem = formItems.get(1); assertTrue(formItem.isFormField()); assertEquals(REQUEST_FIELDNAME, formItem.getFieldName()); assertEquals(REQUEST_DATA, new String(formItem.get())); }
private FormDataItem mockFormDataItem(String fieldName, String contentType, byte content[], boolean isFormField) throws IOException { InputStream in = new ByteArrayInputStream(content); FormDataItem formDataItem = mockControl.createMock(FormDataItem.class); expect(formDataItem.getContentType()).andStubReturn(contentType); expect(formDataItem.getSize()).andStubReturn((long) content.length); expect(formDataItem.get()).andStubReturn(content); expect(formDataItem.getAsString()).andStubReturn(new String(content)); expect(formDataItem.getFieldName()).andStubReturn(fieldName); expect(formDataItem.isFormField()).andStubReturn(isFormField); expect(formDataItem.getInputStream()).andStubReturn(in); return formDataItem; } }
protected String getPostContent(HttpServletRequest request, Map<String,FormDataItem> formItems) throws ContentTypes.InvalidContentTypeException, IOException { String content = null; ContentTypes.checkContentTypes(ALLOWED_CONTENT_TYPES, request.getContentType()); if (formParser.isMultipartContent(request)) { for (FormDataItem item : formParser.parse(request)) { if (item.isFormField() && REQUEST_PARAM.equals(item.getFieldName()) && content == null) { // As per spec, in case of a multipart/form-data content, there will be one form field // with field name as "request". It will contain the json request. Any further form // field or file item will not be parsed out, but will be exposed via getFormItem // method of RequestItem. if (!Strings.isNullOrEmpty(item.getContentType())) { ContentTypes.checkContentTypes(ContentTypes.ALLOWED_JSON_CONTENT_TYPES, item.getContentType()); } content = item.getAsString(); } else { formItems.put(item.getFieldName(), item); } } } else { content = IOUtils.toString(request.getInputStream(), request.getCharacterEncoding()); } return content; }
@Override public Object get(RequestItem req) { FormDataItem item = req.getFormMimePart(IMAGE_FIELDNAME); return ImmutableMap.of("image-data", new String(item.get()), "image-type", item.getContentType(), "image-ref", req.getParameter("image-ref")); } });
@Test public void testSingleRequest() throws Exception { MultipartFormBuilder builder = new MultipartFormBuilder(); builder.addFormField(REQUEST_FIELDNAME, REQUEST_DATA); setupRequest(builder.build(), builder.getContentType()); List<FormDataItem> formItems = Lists.newArrayList(multipartFormParser.parse(request)); assertEquals(1, formItems.size()); FormDataItem formItem = formItems.get(0); assertTrue(formItem.isFormField()); assertEquals(REQUEST_FIELDNAME, formItem.getFieldName()); assertEquals(REQUEST_DATA, new String(formItem.get())); }
@Test public void testSingleFileItem() throws Exception { MultipartFormBuilder builder = new MultipartFormBuilder(); builder.addFileItem(ALBUM_IMAGE_FIELDNAME, ALBUM_IMAGE_FILENAME, ALBUM_IMAGE_DATA, ALBUM_IMAGE_TYPE); setupRequest(builder.build(), builder.getContentType()); List<FormDataItem> formItems = Lists.newArrayList(multipartFormParser.parse(request)); assertEquals(1, formItems.size()); FormDataItem formItem = formItems.get(0); assertFalse(formItem.isFormField()); assertEquals(ALBUM_IMAGE_FIELDNAME, formItem.getFieldName()); assertEquals(ALBUM_IMAGE_FILENAME, formItem.getName()); assertEquals(ALBUM_IMAGE_TYPE, formItem.getContentType()); assertEquals(ALBUM_IMAGE_DATA, new String(formItem.get())); }
private FormDataItem mockFormDataItem(String fieldName, String contentType, byte content[], boolean isFormField) throws IOException { InputStream in = new ByteArrayInputStream(content); FormDataItem formDataItem = mockControl.createMock(FormDataItem.class); expect(formDataItem.getContentType()).andStubReturn(contentType); expect(formDataItem.getSize()).andStubReturn((long) content.length); expect(formDataItem.get()).andStubReturn(content); expect(formDataItem.getAsString()).andStubReturn(new String(content)); expect(formDataItem.getFieldName()).andStubReturn(fieldName); expect(formDataItem.isFormField()).andStubReturn(isFormField); expect(formDataItem.getInputStream()).andStubReturn(in); return formDataItem; } }
protected String getPostContent(HttpServletRequest request, Map<String,FormDataItem> formItems) throws ContentTypes.InvalidContentTypeException, IOException { String content = null; ContentTypes.checkContentTypes(ALLOWED_CONTENT_TYPES, request.getContentType()); if (formParser.isMultipartContent(request)) { for (FormDataItem item : formParser.parse(request)) { if (item.isFormField() && REQUEST_PARAM.equals(item.getFieldName()) && content == null) { // As per spec, in case of a multipart/form-data content, there will be one form field // with field name as "request". It will contain the json request. Any further form // field or file item will not be parsed out, but will be exposed via getFormItem // method of RequestItem. if (!StringUtils.isEmpty(item.getContentType())) { ContentTypes.checkContentTypes(ContentTypes.ALLOWED_JSON_CONTENT_TYPES, item.getContentType()); } content = item.getAsString(); } else { formItems.put(item.getFieldName(), item); } } } else { content = IOUtils.toString(request.getInputStream(), request.getCharacterEncoding()); } return content; }
@Override public Object get(RequestItem req) { FormDataItem item = req.getFormMimePart(IMAGE_FIELDNAME); return ImmutableMap.of("image-data", item.get(), "image-type", item.getContentType(), "image-ref", req.getParameter("image-ref")); } });
@Test public void testSingleRequest() throws Exception { MultipartFormBuilder builder = new MultipartFormBuilder(); builder.addFormField(REQUEST_FIELDNAME, REQUEST_DATA); setupRequest(builder.build(), builder.getContentType()); List<FormDataItem> formItems = Lists.newArrayList(multipartFormParser.parse(request)); assertEquals(1, formItems.size()); FormDataItem formItem = formItems.get(0); assertTrue(formItem.isFormField()); assertEquals(REQUEST_FIELDNAME, formItem.getFieldName()); assertEquals(REQUEST_DATA, new String(formItem.get())); }
@Test public void testSingleFileItemAndRequest() throws Exception { MultipartFormBuilder builder = new MultipartFormBuilder(); builder.addFileItem(ALBUM_IMAGE_FIELDNAME, ALBUM_IMAGE_FILENAME, ALBUM_IMAGE_DATA, ALBUM_IMAGE_TYPE); builder.addFormField(REQUEST_FIELDNAME, REQUEST_DATA); setupRequest(builder.build(), builder.getContentType()); List<FormDataItem> formItems = Lists.newArrayList(multipartFormParser.parse(request)); assertEquals(2, formItems.size()); FormDataItem formItem = formItems.get(0); assertFalse(formItem.isFormField()); assertEquals(ALBUM_IMAGE_FIELDNAME, formItem.getFieldName()); assertEquals(ALBUM_IMAGE_FILENAME, formItem.getName()); assertEquals(ALBUM_IMAGE_TYPE, formItem.getContentType()); assertEquals(ALBUM_IMAGE_DATA, new String(formItem.get())); formItem = formItems.get(1); assertTrue(formItem.isFormField()); assertEquals(REQUEST_FIELDNAME, formItem.getFieldName()); assertEquals(REQUEST_DATA, new String(formItem.get())); }