From ce49354400936778b7a7a1e6ec1a373d2a1fa5cb Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Wed, 19 Jun 2024 12:31:17 +0200 Subject: [PATCH] Sync MockHttpServletResponse implementations See gh-33019 --- .../web/testfixture/servlet/MockHttpServletResponse.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spring-web/src/testFixtures/java/org/springframework/web/testfixture/servlet/MockHttpServletResponse.java b/spring-web/src/testFixtures/java/org/springframework/web/testfixture/servlet/MockHttpServletResponse.java index 336121698b..cbcff8f573 100644 --- a/spring-web/src/testFixtures/java/org/springframework/web/testfixture/servlet/MockHttpServletResponse.java +++ b/spring-web/src/testFixtures/java/org/springframework/web/testfixture/servlet/MockHttpServletResponse.java @@ -24,6 +24,7 @@ import java.io.PrintWriter; import java.io.UnsupportedEncodingException; import java.io.Writer; import java.nio.charset.Charset; +import java.nio.charset.StandardCharsets; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -72,6 +73,8 @@ public class MockHttpServletResponse implements HttpServletResponse { private static final TimeZone GMT = TimeZone.getTimeZone("GMT"); + private static final MediaType APPLICATION_PLUS_JSON = new MediaType("application", "*+json"); + //--------------------------------------------------------------------- // ServletResponse properties @@ -348,6 +351,10 @@ public class MockHttpServletResponse implements HttpServletResponse { if (mediaType.getCharset() != null) { setExplicitCharacterEncoding(mediaType.getCharset().name()); } + else if (mediaType.isCompatibleWith(MediaType.APPLICATION_JSON) || + mediaType.isCompatibleWith(APPLICATION_PLUS_JSON)) { + this.characterEncoding = StandardCharsets.UTF_8.name(); + } } catch (Exception ex) { // Try to get charset value anyway