Restore mixed use of uri() and queryParam()

for query parameters in AbstractMockHttpServletRequestBuilder.

See gh-35329

Signed-off-by: Johnny Lim <izeye@naver.com>
This commit is contained in:
Johnny Lim
2025-08-29 09:13:51 +03:00
committed by rstoyanchev
parent 11cb062357
commit 737f66d922
2 changed files with 10 additions and 1 deletions
@@ -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) {
@@ -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("/");