Browse Source

Restore mixed use of uri() and queryParam()

for query parameters in AbstractMockHttpServletRequestBuilder.

See gh-35329

Signed-off-by: Johnny Lim <izeye@naver.com>
pull/35397/head
Johnny Lim 8 months ago committed by rstoyanchev
parent
commit
737f66d922
  1. 2
      spring-test/src/main/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilder.java
  2. 9
      spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java

2
spring-test/src/main/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilder.java

@ -826,7 +826,7 @@ public abstract class AbstractMockHttpServletRequestBuilder<B extends AbstractMo @@ -826,7 +826,7 @@ public abstract class AbstractMockHttpServletRequestBuilder<B extends AbstractMo
addRequestParams(request, UriComponentsBuilder.fromUri(uri).build().getQueryParams());
this.parameters.forEach((name, values) ->
request.setParameter(name, values.toArray(new String[0])));
request.addParameter(name, values.toArray(new String[0])));
if (!this.formFields.isEmpty()) {
if (this.content != null && this.content.length > 0) {

9
spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java

@ -273,6 +273,15 @@ class MockHttpServletRequestBuilderTests { @@ -273,6 +273,15 @@ class MockHttpServletRequestBuilderTests {
assertThat(request.getParameterMap().get("foo")).containsExactly();
}
@Test
void queryParametersWithUriAndQueryParam() {
this.builder = new MockHttpServletRequestBuilder(GET).uri("/path?param1=value1");
this.builder.queryParam("param1", "value2");
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
assertThat(request.getParameterMap().get("param1")).containsExactly("value1", "value2");
}
@Test
void queryParameterMap() {
this.builder = new MockHttpServletRequestBuilder(GET).uri("/");

Loading…
Cancel
Save