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 be119c2907..e3589d7463 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 the original author or authors. + * Copyright 2002-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -104,7 +104,12 @@ public class MockCookie extends Cookie { * @see The Partitioned attribute spec */ public void setPartitioned(boolean partitioned) { - setAttribute("Partitioned", ""); + if (partitioned) { + setAttribute("Partitioned", ""); + } + else { + setAttribute("Partitioned", null); + } } /** 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 4f2e7a019b..e078b38094 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 @@ -46,6 +46,7 @@ class MockCookieTests { assertThat(cookie.getMaxAge()).isEqualTo(-1); assertThat(cookie.getPath()).isNull(); assertThat(cookie.isHttpOnly()).isFalse(); + assertThat(cookie.isPartitioned()).isFalse(); assertThat(cookie.getSecure()).isFalse(); assertThat(cookie.getSameSite()).isNull(); } @@ -207,9 +208,11 @@ class MockCookieTests { @Test void setPartitioned() { MockCookie cookie = new MockCookie("SESSION", "123"); - cookie.setAttribute("Partitioned", ""); - + assertThat(cookie.isPartitioned()).isFalse(); + cookie.setPartitioned(true); assertThat(cookie.isPartitioned()).isTrue(); + cookie.setPartitioned(false); + assertThat(cookie.isPartitioned()).isFalse(); } } 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 a2680c0ae5..ea0353fb21 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 the original author or authors. + * Copyright 2002-2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -104,7 +104,12 @@ public class MockCookie extends Cookie { * @see The Partitioned attribute spec */ public void setPartitioned(boolean partitioned) { - setAttribute("Partitioned", ""); + if (partitioned) { + setAttribute("Partitioned", ""); + } + else { + setAttribute("Partitioned", null); + } } /** @@ -197,6 +202,7 @@ public class MockCookie extends Cookie { .append("Comment", getComment()) .append("Secure", getSecure()) .append("HttpOnly", isHttpOnly()) + .append("Partitioned", isPartitioned()) .append(SAME_SITE, getSameSite()) .append("Max-Age", getMaxAge()) .append(EXPIRES, getAttribute(EXPIRES))