@Test public void setDefaultStatusCode() { exceptionResolver.setDefaultErrorView("default-view"); exceptionResolver.setDefaultStatusCode(HttpServletResponse.SC_BAD_REQUEST); exceptionResolver.resolveException(request, response, handler1, genericException); assertEquals(HttpServletResponse.SC_BAD_REQUEST, response.getStatus()); }
@Test public void noDefaultStatusCodeInInclude() { exceptionResolver.setDefaultErrorView("default-view"); exceptionResolver.setDefaultStatusCode(HttpServletResponse.SC_BAD_REQUEST); request.setAttribute(WebUtils.INCLUDE_REQUEST_URI_ATTRIBUTE, "some path"); exceptionResolver.resolveException(request, response, handler1, genericException); assertEquals(HttpServletResponse.SC_OK, response.getStatus()); }
@Test public void checkNotModifiedETagForHEAD() { String eTag = "\"Foo\""; servletRequest.setMethod("HEAD"); servletRequest.addHeader("If-None-Match", eTag); request.checkNotModified(eTag); assertEquals(304, servletResponse.getStatus()); }
@Test public void checkNotModifiedTimeStampForHEAD() { long currentTime = new Date().getTime(); servletRequest.setMethod("HEAD"); servletRequest.addHeader("If-Modified-Since", currentTime); request.checkNotModified(currentTime); assertEquals(304, servletResponse.getStatus()); }
@Test public void specificStatusCode() { exceptionResolver.setDefaultErrorView("default-view"); exceptionResolver.setDefaultStatusCode(HttpServletResponse.SC_BAD_REQUEST); Properties statusCodes = new Properties(); statusCodes.setProperty("default-view", "406"); exceptionResolver.setStatusCodes(statusCodes); exceptionResolver.resolveException(request, response, handler1, genericException); assertEquals(HttpServletResponse.SC_NOT_ACCEPTABLE, response.getStatus()); }
@Test public void explicitStatusCodeHttp10() throws Exception { RedirectView rv = new RedirectView(); rv.setUrl("http://url.somewhere.com"); rv.setStatusCode(HttpStatus.MOVED_PERMANENTLY); MockHttpServletRequest request = createRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); rv.render(new HashMap<String, Object>(), request, response); assertEquals(301, response.getStatus()); assertEquals("http://url.somewhere.com", response.getHeader("Location")); }
@Test public void checkModifiedETagForHEAD() { String currentETag = "\"Foo\""; String oldEtag = "Bar"; servletRequest.setMethod("HEAD"); servletRequest.addHeader("If-None-Match", oldEtag); request.checkNotModified(currentETag); assertEquals(200, servletResponse.getStatus()); assertEquals(currentETag, servletResponse.getHeader("ETag")); }
@Test public void checkModifiedTimeStampForHEAD() { long currentTime = new Date().getTime(); long oneMinuteAgo = currentTime - (1000 * 60); servletRequest.setMethod("HEAD"); servletRequest.addHeader("If-Modified-Since", oneMinuteAgo); request.checkNotModified(currentTime); assertEquals(200, servletResponse.getStatus()); assertEquals("" + currentTime, servletResponse.getHeader("Last-Modified")); }
@Test public void attributeStatusCodeHttp11() throws Exception { RedirectView rv = new RedirectView(); rv.setUrl("http://url.somewhere.com"); rv.setHttp10Compatible(false); MockHttpServletRequest request = createRequest(); request.setAttribute(View.RESPONSE_STATUS_ATTRIBUTE, HttpStatus.CREATED); MockHttpServletResponse response = new MockHttpServletResponse(); rv.render(new HashMap<String, Object>(), request, response); assertEquals(201, response.getStatus()); assertEquals("http://url.somewhere.com", response.getHeader("Location")); }
@Test public void http11() throws Exception { RedirectView rv = new RedirectView(); rv.setUrl("http://url.somewhere.com"); rv.setHttp10Compatible(false); MockHttpServletRequest request = createRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); request.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, new FlashMap()); request.setAttribute( DispatcherServlet.FLASH_MAP_MANAGER_ATTRIBUTE, new SessionFlashMapManager()); rv.render(new HashMap<String, Object>(), request, response); assertEquals(303, response.getStatus()); assertEquals("http://url.somewhere.com", response.getHeader("Location")); }
@Test public void setStatusCode() throws Exception { response.setStatusCode(HttpStatus.NOT_FOUND); assertEquals("Invalid status code", 404, mockResponse.getStatus()); }