Skip to content

Commit 2e30828

Browse files
committed
Restore mixed usage support with uri() and queryParam() for query parameters in AbstractMockHttpServletRequestBuilder.buildRequest()
See gh-35210 Signed-off-by: Johnny Lim <[email protected]>
1 parent a23230b commit 2e30828

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -826,7 +826,7 @@ public final MockHttpServletRequest buildRequest(ServletContext servletContext)
826826
addRequestParams(request, UriComponentsBuilder.fromUri(uri).build().getQueryParams());
827827

828828
this.parameters.forEach((name, values) ->
829-
request.setParameter(name, values.toArray(new String[0])));
829+
request.addParameter(name, values.toArray(new String[0])));
830830

831831
if (!this.formFields.isEmpty()) {
832832
if (this.content != null && this.content.length > 0) {

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -273,6 +273,15 @@ void queryParameterWithoutValues() {
273273
assertThat(request.getParameterMap().get("foo")).containsExactly();
274274
}
275275

276+
@Test
277+
void queryParametersWithUriAndQueryParam() {
278+
this.builder = new MockHttpServletRequestBuilder(GET).uri("/path?param1=value1");
279+
this.builder.queryParam("param1", "value2");
280+
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
281+
282+
assertThat(request.getParameterMap().get("param1")).containsExactly("value1", "value2");
283+
}
284+
276285
@Test
277286
void queryParameterMap() {
278287
this.builder = new MockHttpServletRequestBuilder(GET).uri("/");

0 commit comments

Comments
 (0)