Fix exception mock request builder

Issue: SPR-11043
This commit is contained in:
Rossen Stoyanchev 2013-11-05 10:59:05 -05:00
parent c6c5555034
commit 0eeb6717e0
2 changed files with 15 additions and 3 deletions

View File

@ -593,9 +593,8 @@ public class MockHttpServletRequestBuilder implements RequestBuilder, Mergeable
for (Entry<String, List<String>> entry : this.uriComponents.getQueryParams().entrySet()) {
for (String value : entry.getValue()) {
request.addParameter(
UriUtils.decode(entry.getKey(), "UTF-8"),
UriUtils.decode(value, "UTF-8"));
value = (value != null) ? UriUtils.decode(value, "UTF-8") : null;
request.addParameter(UriUtils.decode(entry.getKey(), "UTF-8"), value);
}
}
}

View File

@ -228,6 +228,19 @@ public class MockHttpServletRequestBuilderTests {
assertEquals("bar=baz", request.getParameter("foo"));
}
// SPR-11043
@Test
public void requestParameterFromQueryNull() throws Exception {
this.builder = new MockHttpServletRequestBuilder(HttpMethod.GET, "/?foo");
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
Map<String, String[]> parameterMap = request.getParameterMap();
assertArrayEquals(new String[]{null}, parameterMap.get("foo"));
assertEquals("foo", request.getQueryString());
}
@Test
public void acceptHeader() throws Exception {
this.builder.accept(MediaType.TEXT_HTML, MediaType.APPLICATION_XML);