From 49dd707b8a23154dab3ffc32f83ee3d816958a27 Mon Sep 17 00:00:00 2001 From: Arjen Poutsma Date: Thu, 25 Jun 2009 11:50:00 +0000 Subject: [PATCH] Test for SPR-5822 - Extend @CookieValue mapping to support user-defined types --- .../ServletAnnotationControllerTests.java | 41 +++++++++++++++++-- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java index 2be7a3ac4c..7f8c6147af 100644 --- a/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java +++ b/org.springframework.web.servlet/src/test/java/org/springframework/web/servlet/mvc/annotation/ServletAnnotationControllerTests.java @@ -974,14 +974,25 @@ public class ServletAnnotationControllerTests { } + @Test + public void bindingCookieValue() throws ServletException, IOException { + initServlet(BindingCookieValueController.class); + + MockHttpServletRequest request = new MockHttpServletRequest("GET", "/test"); + request.setCookies(new Cookie("date", "2008-11-18")); + MockHttpServletResponse response = new MockHttpServletResponse(); + servlet.service(request, response); + assertEquals("test-1226962800000", response.getContentAsString()); + } + @Test public void ambiguousParams() throws ServletException, IOException { initServlet(AmbiguousParamsController.class); - MockHttpServletRequest request;// = new MockHttpServletRequest("GET", "/test"); - MockHttpServletResponse response;// = new MockHttpServletResponse(); -// servlet.service(request, response); -// assertEquals("noParams", response.getContentAsString()); + MockHttpServletRequest request = new MockHttpServletRequest("GET", "/test"); + MockHttpServletResponse response = new MockHttpServletResponse(); + servlet.service(request, response); + assertEquals("noParams", response.getContentAsString()); request = new MockHttpServletRequest("GET", "/test"); request.addParameter("myParam", "42"); @@ -1679,5 +1690,27 @@ public class ServletAnnotationControllerTests { } + @Controller + @RequestMapping("/test*") + public static class BindingCookieValueController { + + @InitBinder + public void initBinder(WebDataBinder binder) { + binder.initBeanPropertyAccess(); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + dateFormat.setLenient(false); + binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false)); + } + + @RequestMapping(method = RequestMethod.GET) + public void handle(@CookieValue("date") Date date, Writer writer) + throws IOException { + assertEquals("Invalid path variable value", new Date(108, 10, 18), date); + writer.write("test-" + date.getTime()); + } + + } + + }