|
|
|
@ -1,5 +1,5 @@ |
|
|
|
/* |
|
|
|
/* |
|
|
|
* Copyright 2002-2015 the original author or authors. |
|
|
|
* Copyright 2002-2016 the original author or authors. |
|
|
|
* |
|
|
|
* |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
@ -18,7 +18,6 @@ package org.springframework.web.multipart.support; |
|
|
|
|
|
|
|
|
|
|
|
import java.net.URI; |
|
|
|
import java.net.URI; |
|
|
|
import java.nio.charset.Charset; |
|
|
|
import java.nio.charset.Charset; |
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
|
import javax.servlet.http.HttpServletRequestWrapper; |
|
|
|
import javax.servlet.http.HttpServletRequestWrapper; |
|
|
|
|
|
|
|
|
|
|
|
@ -33,9 +32,7 @@ import org.springframework.mock.web.test.MockMultipartHttpServletRequest; |
|
|
|
import org.springframework.util.FileCopyUtils; |
|
|
|
import org.springframework.util.FileCopyUtils; |
|
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
import org.springframework.web.multipart.MultipartFile; |
|
|
|
|
|
|
|
|
|
|
|
import static org.junit.Assert.assertArrayEquals; |
|
|
|
import static org.junit.Assert.*; |
|
|
|
import static org.junit.Assert.assertEquals; |
|
|
|
|
|
|
|
import static org.junit.Assert.assertNotNull; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* @author Rossen Stoyanchev |
|
|
|
* @author Rossen Stoyanchev |
|
|
|
@ -89,9 +86,7 @@ public class RequestPartServletServerHttpRequestTests { |
|
|
|
assertArrayEquals(bytes, result); |
|
|
|
assertArrayEquals(bytes, result); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// SPR-13317
|
|
|
|
@Test // SPR-13317
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|
|
|
public void getBodyWithWrappedRequest() throws Exception { |
|
|
|
public void getBodyWithWrappedRequest() throws Exception { |
|
|
|
byte[] bytes = "content".getBytes("UTF-8"); |
|
|
|
byte[] bytes = "content".getBytes("UTF-8"); |
|
|
|
MultipartFile part = new MockMultipartFile("part", "", "application/json", bytes); |
|
|
|
MultipartFile part = new MockMultipartFile("part", "", "application/json", bytes); |
|
|
|
@ -103,12 +98,9 @@ public class RequestPartServletServerHttpRequestTests { |
|
|
|
assertArrayEquals(bytes, result); |
|
|
|
assertArrayEquals(bytes, result); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// SPR-13096
|
|
|
|
@Test // SPR-13096
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|
|
|
public void getBodyViaRequestParameter() throws Exception { |
|
|
|
public void getBodyViaRequestParameter() throws Exception { |
|
|
|
MockMultipartHttpServletRequest mockRequest = new MockMultipartHttpServletRequest() { |
|
|
|
MockMultipartHttpServletRequest mockRequest = new MockMultipartHttpServletRequest() { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public HttpHeaders getMultipartHeaders(String paramOrFileName) { |
|
|
|
public HttpHeaders getMultipartHeaders(String paramOrFileName) { |
|
|
|
HttpHeaders headers = new HttpHeaders(); |
|
|
|
HttpHeaders headers = new HttpHeaders(); |
|
|
|
@ -116,10 +108,10 @@ public class RequestPartServletServerHttpRequestTests { |
|
|
|
return headers; |
|
|
|
return headers; |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
byte[] bytes = {(byte) 0xC4}; |
|
|
|
byte[] bytes = {(byte) 0xC4}; |
|
|
|
mockRequest.setParameter("part", new String(bytes, Charset.forName("iso-8859-1"))); |
|
|
|
mockRequest.setParameter("part", new String(bytes, Charset.forName("ISO-8859-1"))); |
|
|
|
ServerHttpRequest request = new RequestPartServletServerHttpRequest(mockRequest, "part"); |
|
|
|
ServerHttpRequest request = new RequestPartServletServerHttpRequest(mockRequest, "part"); |
|
|
|
|
|
|
|
|
|
|
|
byte[] result = FileCopyUtils.copyToByteArray(request.getBody()); |
|
|
|
byte[] result = FileCopyUtils.copyToByteArray(request.getBody()); |
|
|
|
assertArrayEquals(bytes, result); |
|
|
|
assertArrayEquals(bytes, result); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -127,7 +119,6 @@ public class RequestPartServletServerHttpRequestTests { |
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void getBodyViaRequestParameterWithRequestEncoding() throws Exception { |
|
|
|
public void getBodyViaRequestParameterWithRequestEncoding() throws Exception { |
|
|
|
MockMultipartHttpServletRequest mockRequest = new MockMultipartHttpServletRequest() { |
|
|
|
MockMultipartHttpServletRequest mockRequest = new MockMultipartHttpServletRequest() { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public HttpHeaders getMultipartHeaders(String paramOrFileName) { |
|
|
|
public HttpHeaders getMultipartHeaders(String paramOrFileName) { |
|
|
|
HttpHeaders headers = new HttpHeaders(); |
|
|
|
HttpHeaders headers = new HttpHeaders(); |
|
|
|
@ -135,11 +126,11 @@ public class RequestPartServletServerHttpRequestTests { |
|
|
|
return headers; |
|
|
|
return headers; |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
byte[] bytes = {(byte) 0xC4}; |
|
|
|
byte[] bytes = {(byte) 0xC4}; |
|
|
|
mockRequest.setParameter("part", new String(bytes, Charset.forName("iso-8859-1"))); |
|
|
|
mockRequest.setParameter("part", new String(bytes, Charset.forName("ISO-8859-1"))); |
|
|
|
mockRequest.setCharacterEncoding("iso-8859-1"); |
|
|
|
mockRequest.setCharacterEncoding("iso-8859-1"); |
|
|
|
ServerHttpRequest request = new RequestPartServletServerHttpRequest(mockRequest, "part"); |
|
|
|
ServerHttpRequest request = new RequestPartServletServerHttpRequest(mockRequest, "part"); |
|
|
|
|
|
|
|
|
|
|
|
byte[] result = FileCopyUtils.copyToByteArray(request.getBody()); |
|
|
|
byte[] result = FileCopyUtils.copyToByteArray(request.getBody()); |
|
|
|
assertArrayEquals(bytes, result); |
|
|
|
assertArrayEquals(bytes, result); |
|
|
|
} |
|
|
|
} |
|
|
|
|