Merge branch '6.2.x'
This commit is contained in:
@@ -681,7 +681,12 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
||||
|
||||
@Override
|
||||
public void setHeader(String name, @Nullable String value) {
|
||||
setHeaderValue(name, value);
|
||||
if (value == null) {
|
||||
this.headers.remove(name);
|
||||
}
|
||||
else {
|
||||
setHeaderValue(name, value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -88,6 +88,18 @@ class MockHttpServletResponseTests {
|
||||
assertThat(response.containsHeader(headerName)).isFalse();
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@ValueSource(strings = {
|
||||
CONTENT_TYPE,
|
||||
CONTENT_LANGUAGE,
|
||||
"X-Test-Header"
|
||||
})
|
||||
void removeHeaderIfNullValue(String headerName) {
|
||||
response.addHeader(headerName, "test");
|
||||
response.setHeader(headerName, null);
|
||||
assertThat(response.containsHeader(headerName)).isFalse();
|
||||
}
|
||||
|
||||
@Test // gh-26493
|
||||
void setLocaleWithNullValue() {
|
||||
assertThat(response.getLocale()).isEqualTo(Locale.getDefault());
|
||||
|
||||
@@ -161,7 +161,13 @@ public class ContentCachingResponseWrapper extends HttpServletResponseWrapper {
|
||||
@Override
|
||||
public void setHeader(String name, String value) {
|
||||
if (HttpHeaders.CONTENT_LENGTH.equalsIgnoreCase(name)) {
|
||||
this.contentLength = toContentLengthInt(Long.parseLong(value));
|
||||
if (value != null) {
|
||||
this.contentLength = toContentLengthInt(Long.parseLong(value));
|
||||
}
|
||||
else {
|
||||
this.contentLength = null;
|
||||
super.setHeader(name, null);
|
||||
}
|
||||
}
|
||||
else {
|
||||
super.setHeader(name, value);
|
||||
|
||||
@@ -270,6 +270,17 @@ class ContentCachingResponseWrapperTests {
|
||||
.withMessageContaining(overflow);
|
||||
}
|
||||
|
||||
@Test
|
||||
void setContentLengthNull() {
|
||||
MockHttpServletResponse response = new MockHttpServletResponse();
|
||||
ContentCachingResponseWrapper responseWrapper = new ContentCachingResponseWrapper(response);
|
||||
responseWrapper.setContentLength(1024);
|
||||
responseWrapper.setHeader(CONTENT_LENGTH, null);
|
||||
|
||||
assertThat(response.getHeaderNames()).doesNotContain(CONTENT_LENGTH);
|
||||
assertThat(responseWrapper.getHeader(CONTENT_LENGTH)).isNull();
|
||||
}
|
||||
|
||||
|
||||
private void assertHeader(HttpServletResponse response, String header, int value) {
|
||||
assertHeader(response, header, Integer.toString(value));
|
||||
|
||||
@@ -681,7 +681,12 @@ public class MockHttpServletResponse implements HttpServletResponse {
|
||||
|
||||
@Override
|
||||
public void setHeader(String name, @Nullable String value) {
|
||||
setHeaderValue(name, value);
|
||||
if (value == null) {
|
||||
this.headers.remove(name);
|
||||
}
|
||||
else {
|
||||
setHeaderValue(name, value);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user