/** * Creates the {@link com.mockrunner.mock.web.MockHttpServletResponse} using <code>new</code>. * This method can be overridden to return a subclass of {@link com.mockrunner.mock.web.MockHttpServletResponse}. * @return the {@link com.mockrunner.mock.web.MockHttpServletResponse} */ public MockHttpServletResponse createMockResponse() { return new MockHttpServletResponse(); }
/** * Creates the {@link com.mockrunner.mock.web.MockHttpServletResponse} using <code>new</code>. * This method can be overridden to return a subclass of {@link com.mockrunner.mock.web.MockHttpServletResponse}. * @return the {@link com.mockrunner.mock.web.MockHttpServletResponse} */ public MockHttpServletResponse createMockResponse() { return new MockHttpServletResponse(); }
/** * Creates the {@link com.mockrunner.mock.web.MockHttpServletResponse} using <code>new</code>. * This method can be overridden to return a subclass of {@link com.mockrunner.mock.web.MockHttpServletResponse}. * @return the {@link com.mockrunner.mock.web.MockHttpServletResponse} */ public MockHttpServletResponse createMockResponse() { return new MockHttpServletResponse(); }
MockHttpServletResponse response() { MockHttpServletResponse response = new MockHttpServletResponse(); return response; } }
private MockHttpServletResponse sendRequest(MgnlFilter filter, String method, String contextPath, String uri) throws IOException, ServletException { MgnlContext.getAggregationState().setCurrentURI(uri); final HttpServletRequest request = mock(HttpServletRequest.class); when(request.getRequestURI()).thenReturn(uri); when(request.getContextPath()).thenReturn(contextPath); when(request.getMethod()).thenReturn(method); final MockHttpServletResponse response = spy(new MockHttpServletResponse()); filter.doFilter(request, response, mock(FilterChain.class)); return response; }
@Test public void testWithoutParameter() throws IOException, ServletException { // GIVEN FilterChain chain = mock(FilterChain.class); MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); MgnlContext.push(request, response); // WHEN filter.doFilter(request, response, chain); // THEN verify(chain).doFilter(request, response); }
@Test public void dotInFileNameResolvesSelectorsProperly() throws Exception { // GIVEN String uri = "http://example.com/page-1.1~foo=bar~.html"; state.setCurrentURI(uri); MockHttpServletResponse response = new MockHttpServletResponse(); // WHEN filter.doFilter(request, response, mock(FilterChain.class)); // THEN verify(mapping).getHandle("http://example.com/page-1.1.html"); }
@Test public void testSkipsRenderingWhenRenderingModelWantsItTo() throws Exception { // GIVEN FilterChain chain = mock(FilterChain.class); MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); setupRequestAndAggregationState(request, response, "12345"); EarlyExecutionAware renderingModel = mock(EarlyExecutionAware.class); when(renderingModel.executeEarly()).thenReturn(RenderingModel.SKIP_RENDERING); setupRendererThatReturnsMockRenderingModel(renderingModel); // WHEN filter.doFilter(request, response, chain); // THEN verify(renderingModel).executeEarly(); verify(chain, never()).doFilter(request, response); }
@Test public void contentTypeIsNotSetIfAlreadySetDeeperInFilterChain() throws Exception { // GIVEN when(request.getRequestURI()).thenReturn("/requestURI.foo"); MockHttpServletResponse response = new MockHttpServletResponse(); // WHEN filter.doFilter(request, response, new FilterChain() { @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { response.setContentType("mime/deeperInFilterChain"); } }); // THEN assertEquals("mime/deeperInFilterChain", response.getContentType()); }
@Test public void testExecutesRenderingModel() throws Exception { // GIVEN FilterChain chain = mock(FilterChain.class); MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); setupRequestAndAggregationState(request, response, "12345"); RenderingModel renderingModel = mock(RenderingModel.class); setupRendererThatReturnsMockRenderingModel(renderingModel); // WHEN filter.doFilter(request, response, chain); // THEN verify(renderingModel).execute(); verify(chain).doFilter(request, response); }
@Test public void testExecutesEarlyExecutionAwareRenderingModel() throws Exception { // GIVEN FilterChain chain = mock(FilterChain.class); MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); setupRequestAndAggregationState(request, response, "12345"); EarlyExecutionAware renderingModel = mock(EarlyExecutionAware.class); setupRendererThatReturnsMockRenderingModel(renderingModel); // WHEN filter.doFilter(request, response, chain); // THEN verify(renderingModel).executeEarly(); verify(chain).doFilter(request, response); }
@Test public void testWriteContentRemovesStreamingFiles() throws Exception { // GIVEN DelegatingBlobCachedEntry entry = new DelegatingBlobCachedEntry(5, null, null, 1, null, 0, null, 1); MockHttpServletRequest request = new MockHttpServletRequest(); File file = File.createTempFile("test", "txt"); request.setAttribute(DelegatingBlobCachedEntry.CONTENT_FILE_ATTRIBUTE, file); MockHttpServletResponse response = new MockHttpServletResponse(); // WHEN entry.writeContent(request, response, null, true); // THEN assertFalse(file.exists()); }
Request buildRequest(String gsCookieValue) { Request request = new Request(); MockHttpServletRequest httpRequest = new MockHttpServletRequest(); request.setHttpRequest(httpRequest); request.setHttpResponse(new MockHttpServletResponse()); if(gsCookieValue != null) { httpRequest.addCookie(new Cookie(UserFlowController.COOKIE_NAME, gsCookieValue)); } return request; } }
@Test public void testPercentSymbolInUriDoesNotThrowExceptionAndReturnsError400() throws Exception { // GIVEN String uri = "http://example.com/page~foo=bar%~.html"; state.setCurrentURI(uri); MockHttpServletResponse response = new MockHttpServletResponse(); // WHEN filter.doFilter(request, response, new FilterChain() { @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { } }); // THEN assertThat("URL is malformed and we expect that error 400 Bad request is send back in response.", response.getErrorCode(), equalTo(400)); }
@Test public void hasPercentSymbolInUrlDoesNotThrowExceptionAndReturnsError400() throws Exception { // GIVEN String url = "http://example.com/page.html?test=%"; MockHttpServletRequest request = new MockHttpServletRequest(); request.setRequestURI(StringUtils.substringBefore(url, "?")); request.setRequestURL(url); MockHttpServletResponse response = new MockHttpServletResponse(); // WHEN filter.doFilter(request, response, new FilterChain() { @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { } }); // THEN assertThat("URL is malformed and we expect that error 400 Bad request is send back in response.", response.getErrorCode(), equalTo(400)); }
Request buildRequest(String ipAddress, String proxyIp) { Request request = new Request(); MockHttpServletRequest httpRequest = new MockHttpServletRequest(); request.setHttpRequest(httpRequest); request.setHttpResponse(new MockHttpServletResponse()); if (ipAddress != null && !ipAddress.equals("")) { httpRequest.setRemoteAddr(ipAddress); } else { httpRequest.setRemoteAddr("127.0.0.1"); } if (!proxyIp.equals("")) { httpRequest.setHeader("x-forwarded-for", proxyIp + ", " + ipAddress); } return request; }
@Test public void eTagDoesNotContainJSessionIdNorFilename() throws IOException, ServletException { // GIVEN final String filename = "dummy.txt"; final RangeSupportFilter filter = new RangeSupportFilter(); final FilterChain chain = new FilterChain() { @Override public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { response.getOutputStream().println("dummy string"); } }; final MockHttpServletRequest request = new MockHttpServletRequest(); request.setMethod("GET"); request.setRequestURI(String.format("/some/path/%s;JSESSIONID=EE3DB6042B1B57AD55C2633428F44496", filename)); request.setHeader("Range", "bytes=0-56000"); final MockHttpServletResponse response = new MockHttpServletResponse(); // WHEN filter.doFilter(request, response, chain); // THEN assertThat(response.getHeader("ETag"), not(containsString("JSESSIONID"))); assertThat(response.getHeader("ETag"), not(containsString(filename))); }
@Test public void testThrowsServletExceptionWhenParameterPointsToNonExistingContent() throws Exception { // GIVEN FilterChain chain = mock(FilterChain.class); MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); setupRequestAndAggregationState(request, response, "10002"); EarlyExecutionAware renderingModel = mock(EarlyExecutionAware.class); setupRendererThatReturnsMockRenderingModel(renderingModel); // THEN try { filter.doFilter(request, response, chain); fail(); } catch (ServletException e) { assertEquals("Can't read content for early execution, node: 10002", e.getMessage()); } }
@Test public void testServletProvidersWhenWebContextSet() { // GIVEN MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpSession session = new MockHttpSession(); request.setSession(session); MockWebContext webContext = new MockWebContext(); webContext.setRequest(request); webContext.setResponse(response); MgnlContext.setInstance(webContext); GuiceComponentProvider provider = createComponentProviderWithSingleImplementation(MockSingletonWithContextProviders.class); // WHEN MockSingletonWithContextProviders component = provider.getComponent(MockSingletonWithContextProviders.class); // THEN assertSame(request, component.requestProvider.get()); assertSame(session, component.sessionProvider.get()); assertSame(response, component.responseProvider.get()); }
@Test public void testRequestScope() { // GIVEN MockWebContext webContext = new MockWebContext(); webContext.setRequest(new MockHttpServletRequest()); webContext.setResponse(new MockHttpServletResponse()); MgnlContext.setInstance(webContext); GuiceComponentProvider provider = createComponentProviderWithSingleImplementation(MockLocalScopedObject.class); // WHEN MockLocalScopedObject component = provider.getComponent(MockLocalScopedObject.class); // THEN assertNotNull(component); assertSame(component, provider.getComponent(MockLocalScopedObject.class)); // WHEN we switch request webContext = new MockWebContext(); webContext.setRequest(new MockHttpServletRequest()); webContext.setResponse(new MockHttpServletResponse()); MgnlContext.setInstance(webContext); // THEN we get a new object MockLocalScopedObject component2 = provider.getComponent(MockLocalScopedObject.class); assertNotNull(component2); assertNotSame(component2, component); }