Browse Source

Added tests for @RequestMaping produces and consumes

git-svn-id: https://src.springframework.org/svn/spring-framework/trunk@4362 50f2f4bb-b051-0410-bef5-90022cba6387
pull/1/merge
Arjen Poutsma 15 years ago
parent
commit
2e8c494824
  1. 86
      org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ServletHandlerMethodTests.java

86
org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/method/annotation/ServletHandlerMethodTests.java

@ -1006,6 +1006,29 @@ public class ServletHandlerMethodTests { @@ -1006,6 +1006,29 @@ public class ServletHandlerMethodTests {
assertEquals(415, response.getStatus());
}
@Test
public void consumes() throws ServletException, IOException {
initDispatcherServlet(ConsumesController.class, null);
MockHttpServletRequest request = new MockHttpServletRequest("POST", "/something");
request.setContentType("application/pdf");
MockHttpServletResponse response = new MockHttpServletResponse();
servlet.service(request, response);
assertEquals("pdf", response.getContentAsString());
request = new MockHttpServletRequest("POST", "/something");
request.setContentType("text/html");
response = new MockHttpServletResponse();
servlet.service(request, response);
assertEquals("text", response.getContentAsString());
request = new MockHttpServletRequest("POST", "/something");
request.setContentType("application/xml");
response = new MockHttpServletResponse();
servlet.service(request, response);
assertEquals(415, response.getStatus());
}
@Test
public void negatedContentTypeHeaders() throws ServletException, IOException {
initDispatcherServlet(NegatedContentTypeHeadersController.class, null);
@ -1058,6 +1081,41 @@ public class ServletHandlerMethodTests { @@ -1058,6 +1081,41 @@ public class ServletHandlerMethodTests {
assertEquals(406, response.getStatus());
}
@Test
public void produces() throws ServletException, IOException {
initDispatcherServlet(ProducesController.class, null);
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/something");
request.addHeader("Accept", "text/html");
MockHttpServletResponse response = new MockHttpServletResponse();
servlet.service(request, response);
assertEquals("html", response.getContentAsString());
request = new MockHttpServletRequest("GET", "/something");
request.addHeader("Accept", "application/xml");
response = new MockHttpServletResponse();
servlet.service(request, response);
assertEquals("xml", response.getContentAsString());
request = new MockHttpServletRequest("GET", "/something");
request.addHeader("Accept", "application/xml, text/html");
response = new MockHttpServletResponse();
servlet.service(request, response);
assertEquals("xml", response.getContentAsString());
request = new MockHttpServletRequest("GET", "/something");
request.addHeader("Accept", "text/html;q=0.9, application/xml");
response = new MockHttpServletResponse();
servlet.service(request, response);
assertEquals("xml", response.getContentAsString());
request = new MockHttpServletRequest("GET", "/something");
request.addHeader("Accept", "application/msword");
response = new MockHttpServletResponse();
servlet.service(request, response);
assertEquals(406, response.getStatus());
}
@Test
public void responseStatus() throws ServletException, IOException {
initDispatcherServlet(ResponseStatusController.class, null);
@ -2271,6 +2329,20 @@ public class ServletHandlerMethodTests { @@ -2271,6 +2329,20 @@ public class ServletHandlerMethodTests {
}
}
@Controller
public static class ConsumesController {
@RequestMapping(value = "/something", consumes = "application/pdf")
public void handlePdf(Writer writer) throws IOException {
writer.write("pdf");
}
@RequestMapping(value = "/something", consumes = "text/*")
public void handleHtml(Writer writer) throws IOException {
writer.write("text");
}
}
@Controller
public static class NegatedContentTypeHeadersController {
@ -2300,6 +2372,20 @@ public class ServletHandlerMethodTests { @@ -2300,6 +2372,20 @@ public class ServletHandlerMethodTests {
}
}
@Controller
public static class ProducesController {
@RequestMapping(value = "/something", produces = "text/html")
public void handleHtml(Writer writer) throws IOException {
writer.write("html");
}
@RequestMapping(value = "/something", produces = "application/xml")
public void handleXml(Writer writer) throws IOException {
writer.write("xml");
}
}
@Controller
public static class ResponseStatusController {

Loading…
Cancel
Save