From f998f1f1e8441074e0f5c5e28dd9f2c534cd701b Mon Sep 17 00:00:00 2001 From: Tran Ngoc Nhan Date: Thu, 13 Aug 2026 16:19:55 +0700 Subject: [PATCH 1/2] Update `MockCookie#parse(String)` validation Signed-off-by: Tran Ngoc Nhan --- .../org/springframework/mock/web/MockCookie.java | 2 +- .../springframework/mock/web/MockCookieTests.java | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockCookie.java b/spring-test/src/main/java/org/springframework/mock/web/MockCookie.java index b0dab61bf8e5..e9c50bb3d9f5 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockCookie.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockCookie.java @@ -132,7 +132,7 @@ public boolean isPartitioned() { * @return the created cookie */ public static MockCookie parse(String setCookieHeader) { - Assert.notNull(setCookieHeader, "Set-Cookie header must not be null"); + Assert.hasText(setCookieHeader, "Set-Cookie header must not be null or empty"); String[] cookieParts = setCookieHeader.split("\\s*=\\s*", 2); Assert.isTrue(cookieParts.length == 2, () -> "Invalid Set-Cookie header '" + setCookieHeader + "'"); diff --git a/spring-test/src/test/java/org/springframework/mock/web/MockCookieTests.java b/spring-test/src/test/java/org/springframework/mock/web/MockCookieTests.java index 461942b75e68..d689ad6c80ac 100644 --- a/spring-test/src/test/java/org/springframework/mock/web/MockCookieTests.java +++ b/spring-test/src/test/java/org/springframework/mock/web/MockCookieTests.java @@ -118,7 +118,17 @@ private void assertCookie(MockCookie cookie, String name, String value) { void parseNullHeader() { assertThatIllegalArgumentException() .isThrownBy(() -> MockCookie.parse(null)) - .withMessageContaining("Set-Cookie header must not be null"); + .withMessageContaining("Set-Cookie header must not be null or empty"); + } + + @Test + void parseEmptyHeader() { + assertThatIllegalArgumentException() + .isThrownBy(() -> MockCookie.parse("")) + .withMessageContaining("Set-Cookie header must not be null or empty"); + assertThatIllegalArgumentException() + .isThrownBy(() -> MockCookie.parse(" ")) + .withMessageContaining("Set-Cookie header must not be null or empty"); } @Test From 438486a6967d8107bdcf9e26c23b8165bfd708fe Mon Sep 17 00:00:00 2001 From: Tran Ngoc Nhan Date: Thu, 13 Aug 2026 17:21:44 +0700 Subject: [PATCH 2/2] Apply `@ParameterizedTest` for `MockCookieTests#parseEmptyHeader` Signed-off-by: Tran Ngoc Nhan --- .../org/springframework/mock/web/MockCookieTests.java | 10 ++++------ .../web/testfixture/servlet/MockCookie.java | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/spring-test/src/test/java/org/springframework/mock/web/MockCookieTests.java b/spring-test/src/test/java/org/springframework/mock/web/MockCookieTests.java index d689ad6c80ac..749f12192e60 100644 --- a/spring-test/src/test/java/org/springframework/mock/web/MockCookieTests.java +++ b/spring-test/src/test/java/org/springframework/mock/web/MockCookieTests.java @@ -121,13 +121,11 @@ void parseNullHeader() { .withMessageContaining("Set-Cookie header must not be null or empty"); } - @Test - void parseEmptyHeader() { - assertThatIllegalArgumentException() - .isThrownBy(() -> MockCookie.parse("")) - .withMessageContaining("Set-Cookie header must not be null or empty"); + @ParameterizedTest + @ValueSource(strings = {"", " "}) + void parseEmptyHeader(String header) { assertThatIllegalArgumentException() - .isThrownBy(() -> MockCookie.parse(" ")) + .isThrownBy(() -> MockCookie.parse(header)) .withMessageContaining("Set-Cookie header must not be null or empty"); } diff --git a/spring-web/src/testFixtures/java/org/springframework/web/testfixture/servlet/MockCookie.java b/spring-web/src/testFixtures/java/org/springframework/web/testfixture/servlet/MockCookie.java index d33e9ff11a90..43c7ed8055ba 100644 --- a/spring-web/src/testFixtures/java/org/springframework/web/testfixture/servlet/MockCookie.java +++ b/spring-web/src/testFixtures/java/org/springframework/web/testfixture/servlet/MockCookie.java @@ -132,7 +132,7 @@ public boolean isPartitioned() { * @return the created cookie */ public static MockCookie parse(String setCookieHeader) { - Assert.notNull(setCookieHeader, "Set-Cookie header must not be null"); + Assert.hasText(setCookieHeader, "Set-Cookie header must not be null or empty"); String[] cookieParts = setCookieHeader.split("\\s*=\\s*", 2); Assert.isTrue(cookieParts.length == 2, () -> "Invalid Set-Cookie header '" + setCookieHeader + "'");