/* * Copyright (C) 2014 Civilian Framework. * * Licensed under the Civilian License (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.civilian-framework.org/license.txt * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.civilian.context.servlet; import static org.mockito.Mockito.*; import java.io.PrintWriter; import java.util.Locale; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.civilian.CivTest; import org.civilian.content.ContentType; import org.civilian.context.servlet.ServletResponseAdapter; import org.civilian.context.servlet.SpRequestAdapter; import org.civilian.context.test.TestApp; import org.civilian.response.ResponseHeaders; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; public class ServletResponseTest extends CivTest { @BeforeClass public static void beforeClass() { app = new TestApp(); app.getConfig().setSupportedLocales(Locale.GERMAN); app.init("/app"); } @Before public void before() { servletReq = mock(HttpServletRequest.class); servletResp = mock(HttpServletResponse.class); when(servletReq.getLocale()).thenReturn(Locale.GERMAN); request = null; response = null; } private void init() { request = new SpRequestAdapter(app, servletReq); response = new ServletResponseAdapter(request, servletResp); } @Test public void testSimpleMethods() { init(); response.addCookie(null); verify(servletResp).addCookie(null); response.addSessionId(null); verify(servletResp).encodeURL(null); assertSame(servletResp, response.getServletResponse()); response.getStatus(); verify(servletResp).getStatus(); response.setStatus(11); verify(servletResp).setStatus(11); response.reset(); verify(servletResp).reset(); response.isCommitted(); verify(servletResp).isCommitted(); } @Test public void testSendError() throws Exception { init(); assertFalse(response.isCommitted()); response.sendError(123, "msg", null); verify(servletResp).setStatus(123); verify(servletResp).flushBuffer(); } @Test public void testSendRedirect() throws Exception { when(servletResp.encodeRedirectURL("x")).thenReturn("x!id"); init(); assertFalse(response.isCommitted()); response.sendRedirect("x"); verify(servletResp).sendRedirect("x!id"); } @Test public void testWriter() throws Exception { when(servletResp.getWriter()).thenReturn(mock(PrintWriter.class)); init(); response.getContentWriter(); verify(servletResp).getWriter(); } @Test public void testOutputstream() throws Exception { init(); response.getContentStream(); verify(servletResp).getOutputStream(); } @Test public void testContent() throws Exception { init(); assertNull(response.getContentType()); response.setContentType(ContentType.APPLICATION_EXCEL); assertSame(ContentType.APPLICATION_EXCEL, response.getContentType()); response.setContentLength(2L); verify(servletResp).setContentLength(2); } @Test public void testBuffer() throws Exception { init(); response.flushBuffer(); verify(servletResp).flushBuffer(); response.resetBuffer(); verify(servletResp).resetBuffer(); response.getBufferSize(); verify(servletResp).getBufferSize(); response.setBufferSize(2); verify(servletResp).setBufferSize(2); } @Test public void testHeaders() throws Exception { init(); ResponseHeaders headers = response.getHeaders(); headers.add("x", "y"); verify(servletResp).addHeader("x", "y"); headers.addDate("d", 123); verify(servletResp).addDateHeader("d", 123); headers.addInt("i", 456); verify(servletResp).addIntHeader("i", 456); headers.contains("x"); verify(servletResp).containsHeader("x"); headers.iterator(); verify(servletResp).getHeaderNames(); headers.getAll("y"); verify(servletResp).getHeaders("y"); headers.get("z"); verify(servletResp).getHeader("z"); headers.set("x", "y"); verify(servletResp).setHeader("x", null); verify(servletResp, times(2)).addHeader("x", "y"); } private static TestApp app; private HttpServletRequest servletReq; private HttpServletResponse servletResp; private SpRequestAdapter request; private ServletResponseAdapter response; }