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 3e603040f2..0d3a1c3fcc 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 @@ -70,10 +70,11 @@ public class MockCookie extends Cookie { /** * Factory method that parses the value of a "Set-Cookie" header. - * @param setCookieHeader the "Set-Cookie" value + * @param setCookieHeader the "Set-Cookie" value; never {@code null} or empty * @return the created cookie */ public static MockCookie parse(String setCookieHeader) { + Assert.notNull(setCookieHeader, "Set-Cookie header must not be null"); 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 2902c1b14e..d4a1410a2c 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 @@ -80,6 +80,13 @@ public class MockCookieTests { assertEquals("Lax", cookie.getSameSite()); } + @Test + public void parseNullHeader() { + exception.expect(IllegalArgumentException.class); + exception.expectMessage("Set-Cookie header must not be null"); + MockCookie.parse(null); + } + @Test public void parseInvalidHeader() { exception.expect(IllegalArgumentException.class);