Allow any Accept and Content-Type raw values
See gh-2079
This commit is contained in:
committed by
Rossen Stoyanchev
parent
f8d6896e40
commit
f4509d6e3a
@@ -29,6 +29,8 @@ import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.http.Cookie;
|
||||
|
||||
@@ -337,6 +339,21 @@ public class MockHttpServletRequestBuilderTests {
|
||||
assertThat(result.get(1).toString()).isEqualTo("application/xml");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void anyAcceptMultipleContentTypeViaStringArray() {
|
||||
this.builder.accept("any", "any2");
|
||||
|
||||
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
|
||||
List<String> accept = Collections.list(request.getHeaders("Accept"));
|
||||
List<String> result = Stream.of(accept.get(0).split(","))
|
||||
.map(String::trim)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
assertThat(result.get(0)).isEqualTo("any");
|
||||
assertThat(result).hasSize(2);
|
||||
assertThat(result.get(1)).isEqualTo("any2");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void contentType() {
|
||||
this.builder.contentType(MediaType.TEXT_HTML);
|
||||
@@ -363,6 +380,19 @@ public class MockHttpServletRequestBuilderTests {
|
||||
assertThat(contentTypes.get(0)).isEqualTo("text/html");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void anyContentTypeViaString() {
|
||||
this.builder.contentType("any");
|
||||
|
||||
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
|
||||
String contentType = request.getContentType();
|
||||
List<String> contentTypes = Collections.list(request.getHeaders("Content-Type"));
|
||||
|
||||
assertThat(contentType).isEqualTo("any");
|
||||
assertThat(contentTypes).hasSize(1);
|
||||
assertThat(contentTypes.get(0)).isEqualTo("any");
|
||||
}
|
||||
|
||||
@Test // SPR-11308
|
||||
public void contentTypeViaHeader() {
|
||||
this.builder.header("Content-Type", MediaType.TEXT_HTML_VALUE);
|
||||
@@ -372,6 +402,16 @@ public class MockHttpServletRequestBuilderTests {
|
||||
assertThat(contentType).isEqualTo("text/html");
|
||||
}
|
||||
|
||||
@Test // SPR-17643
|
||||
public void invalidContentTypeViaHeader() {
|
||||
this.builder.header("Content-Type", "yaml");
|
||||
this.builder.content("some content");
|
||||
MockHttpServletRequest request = this.builder.buildRequest(this.servletContext);
|
||||
String contentType = request.getContentType();
|
||||
|
||||
assertThat(contentType).isEqualTo("yaml");
|
||||
}
|
||||
|
||||
@Test // SPR-11308
|
||||
public void contentTypeViaMultipleHeaderValues() {
|
||||
this.builder.header("Content-Type", MediaType.TEXT_HTML_VALUE, MediaType.ALL_VALUE);
|
||||
|
||||
Reference in New Issue
Block a user