From e63bffcfa0c741577edb826c0256493178e23389 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Tue, 2 Oct 2018 13:07:20 +0200 Subject: [PATCH] Introduce not-null precondition for MockCookie parsing --- .../main/java/org/springframework/mock/web/MockCookie.java | 3 ++- .../java/org/springframework/mock/web/MockCookieTests.java | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) 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);