Support cookie comments in MockHttpServletResponse and MockCookie

Prior to this commit, if a cookie was added to MockHttpServletResponse,
the comment attribute was not included in the generated Set-Cookie
header. In addition, MockCookie.parse(String) did not support the
Comment attribute.

This commit addresses both of these issues.

Closes gh-28730
This commit is contained in:
Sam Brannen
2022-06-30 16:51:43 +02:00
parent fe2b8580a0
commit 9ea45697ac
6 changed files with 89 additions and 16 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2021 the original author or authors.
* Copyright 2002-2022 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.
@@ -142,6 +142,9 @@ public class MockCookie extends Cookie {
else if (StringUtils.startsWithIgnoreCase(attribute, "SameSite")) {
cookie.setSameSite(extractAttributeValue(attribute, setCookieHeader));
}
else if (StringUtils.startsWithIgnoreCase(attribute, "Comment")) {
cookie.setComment(extractAttributeValue(attribute, setCookieHeader));
}
}
return cookie;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2021 the original author or authors.
* Copyright 2002-2022 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.
@@ -450,6 +450,9 @@ public class MockHttpServletResponse implements HttpServletResponse {
buf.append("; SameSite=").append(mockCookie.getSameSite());
}
}
if (StringUtils.hasText(cookie.getComment())) {
buf.append("; Comment=").append(cookie.getComment());
}
return buf.toString();
}