From ce0b012f4327ab81f005a99bff795f79c6e3be1c Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Tue, 29 Oct 2019 13:27:39 +0100 Subject: [PATCH] Polish contribution See gh-23769 --- .../springframework/mock/web/MockCookie.java | 20 +++++++++++-------- .../mock/web/MockCookieTests.java | 16 +++++++-------- .../web/MockHttpServletResponseTests.java | 17 +++++++++++++++- .../mock/web/test/MockCookie.java | 20 +++++++++++-------- 4 files changed, 48 insertions(+), 25 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 a7565f180e..17c3f2c027 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 @@ -46,7 +46,7 @@ public class MockCookie extends Cookie { /** - * Constructor with the cookie name and value. + * Construct a new {@link MockCookie} with the supplied name and value. * @param name the name * @param value the value * @see Cookie#Cookie(String, String) @@ -56,14 +56,17 @@ public class MockCookie extends Cookie { } /** - * Add the "Expires" attribute to the cookie. + * Set the "Expires" attribute for this cookie. + * @since 5.1.11 */ public void setExpires(@Nullable ZonedDateTime expires) { this.expires = expires; } /** - * Return the "Expires" attribute, or {@code null} if not set. + * Get the "Expires" attribute for this cookie. + * @since 5.1.11 + * @return the "Expires" attribute for this cookie, or {@code null} if not set */ @Nullable public ZonedDateTime getExpires() { @@ -71,10 +74,10 @@ public class MockCookie extends Cookie { } /** - * Add the "SameSite" attribute to the cookie. + * Set the "SameSite" attribute for this cookie. *

This limits the scope of the cookie such that it will only be attached - * to same site requests if {@code "Strict"} or cross-site requests if - * {@code "Lax"}. + * to same-site requests if the supplied value is {@code "Strict"} or cross-site + * requests if the supplied value is {@code "Lax"}. * @see RFC6265 bis */ public void setSameSite(@Nullable String sameSite) { @@ -82,7 +85,8 @@ public class MockCookie extends Cookie { } /** - * Return the "SameSite" attribute, or {@code null} if not set. + * Get the "SameSite" attribute for this cookie. + * @return the "SameSite" attribute for this cookie, or {@code null} if not set */ @Nullable public String getSameSite() { @@ -91,7 +95,7 @@ public class MockCookie extends Cookie { /** - * Factory method that parses the value of a "Set-Cookie" header. + * Factory method that parses the value of the supplied "Set-Cookie" header. * @param setCookieHeader the "Set-Cookie" value; never {@code null} or empty * @return the created cookie */ 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 436fdff387..13eedd5c3d 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 @@ -16,11 +16,11 @@ package org.springframework.mock.web; -import org.junit.jupiter.api.Test; - import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import org.junit.jupiter.api.Test; + import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; @@ -86,15 +86,15 @@ class MockCookieTests { @Test void parseNullHeader() { - assertThatIllegalArgumentException().isThrownBy(() -> - MockCookie.parse(null)) + assertThatIllegalArgumentException() + .isThrownBy(() -> MockCookie.parse(null)) .withMessageContaining("Set-Cookie header must not be null"); } @Test void parseInvalidHeader() { - assertThatIllegalArgumentException().isThrownBy(() -> - MockCookie.parse("BOOM")) + assertThatIllegalArgumentException() + .isThrownBy(() -> MockCookie.parse("BOOM")) .withMessageContaining("Invalid Set-Cookie header 'BOOM'"); } @@ -102,8 +102,8 @@ class MockCookieTests { void parseInvalidAttribute() { String header = "SESSION=123; Path="; - assertThatIllegalArgumentException().isThrownBy(() -> - MockCookie.parse(header)) + assertThatIllegalArgumentException() + .isThrownBy(() -> MockCookie.parse(header)) .withMessageContaining("No value in attribute 'Path' for Set-Cookie header '" + header + "'"); } diff --git a/spring-test/src/test/java/org/springframework/mock/web/MockHttpServletResponseTests.java b/spring-test/src/test/java/org/springframework/mock/web/MockHttpServletResponseTests.java index 98e200b7f4..c09101a811 100644 --- a/spring-test/src/test/java/org/springframework/mock/web/MockHttpServletResponseTests.java +++ b/spring-test/src/test/java/org/springframework/mock/web/MockHttpServletResponseTests.java @@ -350,6 +350,18 @@ class MockHttpServletResponseTests { assertPrimarySessionCookie("999"); } + /** + * @since 5.1.11 + */ + @Test + void setCookieHeaderWithExpiresAttribute() { + String cookieValue = "SESSION=123; Path=/; Max-Age=100; Expires=Tue, 8 Oct 2019 19:50:00 GMT; Secure; " + + "HttpOnly; SameSite=Lax"; + response.setHeader(HttpHeaders.SET_COOKIE, cookieValue); + assertNumCookies(1); + assertThat(response.getHeader(HttpHeaders.SET_COOKIE)).isEqualTo(cookieValue); + } + @Test void addCookieHeader() { response.addHeader(HttpHeaders.SET_COOKIE, "SESSION=123; Path=/; Secure; HttpOnly; SameSite=Lax"); @@ -363,8 +375,11 @@ class MockHttpServletResponseTests { assertCookieValues("123", "999"); } + /** + * @since 5.1.11 + */ @Test - void addCookieHeaderWithExpires() { + void addCookieHeaderWithExpiresAttribute() { String cookieValue = "SESSION=123; Path=/; Max-Age=100; Expires=Tue, 8 Oct 2019 19:50:00 GMT; Secure; " + "HttpOnly; SameSite=Lax"; response.addHeader(HttpHeaders.SET_COOKIE, cookieValue); diff --git a/spring-web/src/test/java/org/springframework/mock/web/test/MockCookie.java b/spring-web/src/test/java/org/springframework/mock/web/test/MockCookie.java index 9b6ba94485..3bea81f01d 100644 --- a/spring-web/src/test/java/org/springframework/mock/web/test/MockCookie.java +++ b/spring-web/src/test/java/org/springframework/mock/web/test/MockCookie.java @@ -46,7 +46,7 @@ public class MockCookie extends Cookie { /** - * Constructor with the cookie name and value. + * Construct a new {@link MockCookie} with the supplied name and value. * @param name the name * @param value the value * @see Cookie#Cookie(String, String) @@ -56,14 +56,17 @@ public class MockCookie extends Cookie { } /** - * Add the "Expires" attribute to the cookie. + * Set the "Expires" attribute for this cookie. + * @since 5.1.11 */ public void setExpires(@Nullable ZonedDateTime expires) { this.expires = expires; } /** - * Return the "Expires" attribute, or {@code null} if not set. + * Get the "Expires" attribute for this cookie. + * @since 5.1.11 + * @return the "Expires" attribute for this cookie, or {@code null} if not set */ @Nullable public ZonedDateTime getExpires() { @@ -71,10 +74,10 @@ public class MockCookie extends Cookie { } /** - * Add the "SameSite" attribute to the cookie. + * Set the "SameSite" attribute for this cookie. *

This limits the scope of the cookie such that it will only be attached - * to same site requests if {@code "Strict"} or cross-site requests if - * {@code "Lax"}. + * to same-site requests if the supplied value is {@code "Strict"} or cross-site + * requests if the supplied value is {@code "Lax"}. * @see RFC6265 bis */ public void setSameSite(@Nullable String sameSite) { @@ -82,7 +85,8 @@ public class MockCookie extends Cookie { } /** - * Return the "SameSite" attribute, or {@code null} if not set. + * Get the "SameSite" attribute for this cookie. + * @return the "SameSite" attribute for this cookie, or {@code null} if not set */ @Nullable public String getSameSite() { @@ -91,7 +95,7 @@ public class MockCookie extends Cookie { /** - * Factory method that parses the value of a "Set-Cookie" header. + * Factory method that parses the value of the supplied "Set-Cookie" header. * @param setCookieHeader the "Set-Cookie" value; never {@code null} or empty * @return the created cookie */