MockHttpServletRequest preserves original Accept-Language header value
Issue: SPR-17566
This commit is contained in:
parent
d3cdecc621
commit
9efea7eb73
|
@ -1013,12 +1013,14 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
||||||
try {
|
try {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.add(HttpHeaders.ACCEPT_LANGUAGE, value.toString());
|
headers.add(HttpHeaders.ACCEPT_LANGUAGE, value.toString());
|
||||||
setPreferredLocales(headers.getAcceptLanguageAsLocales());
|
List<Locale> locales = headers.getAcceptLanguageAsLocales();
|
||||||
|
this.locales.clear();
|
||||||
|
this.locales.addAll(locales);
|
||||||
}
|
}
|
||||||
catch (IllegalArgumentException ex) {
|
catch (IllegalArgumentException ex) {
|
||||||
// Invalid Accept-Language format -> store plain header instead
|
// Invalid Accept-Language format -> just store plain header
|
||||||
doAddHeaderValue(name, value, true);
|
|
||||||
}
|
}
|
||||||
|
doAddHeaderValue(name, value, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
doAddHeaderValue(name, value, false);
|
doAddHeaderValue(name, value, false);
|
||||||
|
|
|
@ -341,6 +341,7 @@ public class MockHttpServletRequestTests {
|
||||||
List<Locale> actual = Collections.list(request.getLocales());
|
List<Locale> actual = Collections.list(request.getLocales());
|
||||||
assertEquals(Arrays.asList(Locale.forLanguageTag("fr-ch"), Locale.forLanguageTag("fr"),
|
assertEquals(Arrays.asList(Locale.forLanguageTag("fr-ch"), Locale.forLanguageTag("fr"),
|
||||||
Locale.forLanguageTag("en"), Locale.forLanguageTag("de")), actual);
|
Locale.forLanguageTag("en"), Locale.forLanguageTag("de")), actual);
|
||||||
|
assertEquals(headerValue, request.getHeader("Accept-Language"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -1013,12 +1013,14 @@ public class MockHttpServletRequest implements HttpServletRequest {
|
||||||
try {
|
try {
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.add(HttpHeaders.ACCEPT_LANGUAGE, value.toString());
|
headers.add(HttpHeaders.ACCEPT_LANGUAGE, value.toString());
|
||||||
setPreferredLocales(headers.getAcceptLanguageAsLocales());
|
List<Locale> locales = headers.getAcceptLanguageAsLocales();
|
||||||
|
this.locales.clear();
|
||||||
|
this.locales.addAll(locales);
|
||||||
}
|
}
|
||||||
catch (IllegalArgumentException ex) {
|
catch (IllegalArgumentException ex) {
|
||||||
// Invalid Accept-Language format -> store plain header instead
|
// Invalid Accept-Language format -> just store plain header
|
||||||
doAddHeaderValue(name, value, true);
|
|
||||||
}
|
}
|
||||||
|
doAddHeaderValue(name, value, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
doAddHeaderValue(name, value, false);
|
doAddHeaderValue(name, value, false);
|
||||||
|
|
Loading…
Reference in New Issue