Reset charset field in MockHttpServletResponse
Prior to this commit, calling reset() on MockHttpServletResponse did not reset the `charset` field to `false` which could result in the "Content-Type" header containing `;charset=null` which in turn would result in errors when parsing the "Content-Type" header. This commit resets the charset field to `false` in MockHttpServletResponse's reset() method to avoid such errors. Closes gh-25501
This commit is contained in:
@@ -458,4 +458,27 @@ class MockHttpServletResponseTests {
|
||||
assertThat(((MockCookie) cookie).getSameSite()).isEqualTo("Lax");
|
||||
}
|
||||
|
||||
@Test // gh-25501
|
||||
void resetResetsCharset() {
|
||||
assertThat(response.isCharset()).isFalse();
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
assertThat(response.isCharset()).isTrue();
|
||||
assertThat(response.getCharacterEncoding()).isEqualTo("UTF-8");
|
||||
response.setContentType("text/plain");
|
||||
assertThat(response.getContentType()).isEqualTo("text/plain");
|
||||
String contentTypeHeader = response.getHeader(CONTENT_TYPE);
|
||||
assertThat(contentTypeHeader).isEqualTo("text/plain;charset=UTF-8");
|
||||
|
||||
response.reset();
|
||||
|
||||
assertThat(response.isCharset()).isFalse();
|
||||
// Do not invoke setCharacterEncoding() since that sets the charset flag to true.
|
||||
// response.setCharacterEncoding("UTF-8");
|
||||
response.setContentType("text/plain");
|
||||
assertThat(response.isCharset()).isFalse(); // should still be false
|
||||
assertThat(response.getContentType()).isEqualTo("text/plain");
|
||||
contentTypeHeader = response.getHeader(CONTENT_TYPE);
|
||||
assertThat(contentTypeHeader).isEqualTo("text/plain");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user