From 737f66d92206fb05796d4f45cc7280875a5ce700 Mon Sep 17 00:00:00 2001 From: Johnny Lim Date: Thu, 14 Aug 2025 21:56:51 +0900 Subject: [PATCH] Restore mixed use of uri() and queryParam() for query parameters in AbstractMockHttpServletRequestBuilder. See gh-35329 Signed-off-by: Johnny Lim --- .../request/AbstractMockHttpServletRequestBuilder.java | 2 +- .../request/MockHttpServletRequestBuilderTests.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilder.java b/spring-test/src/main/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilder.java index bcc47e2b491..8d688e7bfd4 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilder.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/request/AbstractMockHttpServletRequestBuilder.java @@ -826,7 +826,7 @@ public abstract class AbstractMockHttpServletRequestBuilder - 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) { diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java index f62cce7c551..6ba183d9aa4 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilderTests.java @@ -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("/");