-
Notifications
You must be signed in to change notification settings - Fork 38.7k
Closed
Labels
in: testIssues in the test moduleIssues in the test modulein: webIssues in web modules (web, webmvc, webflux, websocket)Issues in web modules (web, webmvc, webflux, websocket)type: regressionA bug that is also a regressionA bug that is also a regression
Milestone
Description
I wrote simple controller:
@RestController
public class TestController {
@GetMapping("/api")
public Map<String, String> simpleTest() {
// here is the text with special characters, all in UTF-8
return Collections.singletonMap("test", "Příliš žluťoučký kůň úpěl ďábelské ódy");
}
}
Also very simple tutorial-like test:
@Before
public void setup() {
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
}
@Test
public void test() throws Exception {
this.mockMvc.perform(get("/api"))
.andDo(print())
.andExpect(jsonPath("$.test").value("Příliš žluťoučký kůň úpěl ďábelské ódy"));
}
The test fails in version 5.2.0.M3 now. Test passes in the previous milestone version 5.2.0.M2 and earlier versions.
The issue is somehow related to deprecation of org.springframework.http.MediaType#APPLICATION_JSON_UTF8_VALUE
.
Of course it is possible to fix the test by adding accept but I rather do not do that, because APPLICATION_JSON_UTF8_VALUE
is deprecated now.
.accept(MediaType.APPLICATION_JSON_UTF8_VALUE)
I have also prepared simple maven project to simulate the problem.
springutf8.zip
It seems to me, that MockMvc
client does not handle UTF-8 characters well, like other modern browsers.
JohannesFluegel, yanshenxian and InegoJohannesFluegel
Metadata
Metadata
Assignees
Labels
in: testIssues in the test moduleIssues in the test modulein: webIssues in web modules (web, webmvc, webflux, websocket)Issues in web modules (web, webmvc, webflux, websocket)type: regressionA bug that is also a regressionA bug that is also a regression