Merge branch '7.0.x'

This commit is contained in:
Sam Brannen
2026-08-31 17:17:01 +02:00
4 changed files with 31 additions and 2 deletions
@@ -181,7 +181,7 @@ public final class MockMvcWebConnection implements WebConnection {
private static Cookie createCookie(jakarta.servlet.http.Cookie cookie) {
Date expires = null;
if (cookie.getMaxAge() > -1) {
expires = new Date(System.currentTimeMillis() + cookie.getMaxAge() * 1000);
expires = new Date(System.currentTimeMillis() + cookie.getMaxAge() * 1000L);
}
return new Cookie(cookie.getDomain(), cookie.getName(), cookie.getValue(), cookie.getPath(),
expires, cookie.getSecure(), cookie.isHttpOnly());
@@ -109,6 +109,17 @@ class MockMvcWebClientBuilderTests {
assertThat(getResponse(client, "http://localhost/").getContentAsString()).isEqualTo("NA");
}
@Test
void cookieWithLargeMaxAgeIsStored() throws Exception {
this.mockMvc = MockMvcBuilders.standaloneSetup(new CookieController()).build();
WebClient client = MockMvcWebClientBuilder.mockMvcSetup(this.mockMvc).build();
assertThat(getResponse(client, "http://localhost/").getContentAsString()).isEqualTo("NA");
assertThat(postResponse(client, "http://localhost/long-lived", "cookie=foo")
.getContentAsString()).isEqualTo("Set");
assertThat(getResponse(client, "http://localhost/").getContentAsString()).isEqualTo("foo");
}
private void assertMockMvcUsed(WebClient client, String url) throws Exception {
assertThat(getResponse(client, url).getContentAsString()).isEqualTo("mvc");
}
@@ -162,6 +173,15 @@ class MockMvcWebClientBuilderTests {
return "Set";
}
@PostMapping(path = "/long-lived", produces = "text/plain")
String setLongLivedCookie(@RequestParam String cookie, HttpServletResponse response) {
jakarta.servlet.http.Cookie longLived = new jakarta.servlet.http.Cookie(COOKIE_NAME, cookie);
longLived.setMaxAge(Integer.MAX_VALUE);
longLived.setPath("/");
response.addCookie(longLived);
return "Set";
}
@DeleteMapping(path = "/", produces = "text/plain")
String deleteCookie(HttpServletResponse response) {
jakarta.servlet.http.Cookie cookie = new jakarta.servlet.http.Cookie(COOKIE_NAME, "");
@@ -112,7 +112,7 @@ public final class FlashMap extends HashMap<String, Object> implements Comparabl
* @param timeToLive the number of seconds before expiration
*/
public void startExpirationPeriod(int timeToLive) {
this.expirationTime = System.currentTimeMillis() + timeToLive * 1000;
this.expirationTime = System.currentTimeMillis() + timeToLive * 1000L;
}
/**
@@ -50,6 +50,15 @@ class FlashMapTests {
assertThat(flashMap.isExpired()).isFalse();
}
@Test
void notExpiredWithLargeTimeToLive() {
FlashMap flashMap = new FlashMap();
flashMap.startExpirationPeriod(Integer.MAX_VALUE);
assertThat(flashMap.getExpirationTime()).isGreaterThan(System.currentTimeMillis());
assertThat(flashMap.isExpired()).isFalse();
}
@Test
void compareTo() {
FlashMap flashMap1 = new FlashMap();