@Test public void shouldAddLegacyUrlRequestHandler() throws Exception { ArgumentCaptor<ContextHandler> captor = ArgumentCaptor.forClass(ContextHandler.class); jetty6Server.configure(); verify(server, times(4)).addHandler(captor.capture()); List<ContextHandler> handlers = captor.getAllValues(); assertThat(handlers.size(), is(4)); ContextHandler handler = handlers.get(1); assertThat(handler instanceof Jetty6Server.LegacyUrlRequestHandler, is(true)); Jetty6Server.LegacyUrlRequestHandler legacyUrlRequestHandler = (Jetty6Server.LegacyUrlRequestHandler) handler; assertThat(legacyUrlRequestHandler.getContextPath(), is("/cruise")); }
@Test public void shouldGetLegacyRequestHandlerToHandleAllRequestSentToCruiseUrl() throws IOException, ServletException { Jetty6Server.LegacyUrlRequestHandler legacyUrlRequestHandler = (Jetty6Server.LegacyUrlRequestHandler) jetty6Server.legacyRequestHandler(); HttpServletResponse response = mock(HttpServletResponse.class); PrintWriter writer = mock(PrintWriter.class); when(response.getWriter()).thenReturn(writer); HttpServletRequest request = mock(HttpServletRequest.class); when(request.getMethod()).thenReturn(HttpMethods.GET); legacyUrlRequestHandler.handle("/cruise/foo", request, response, 1); verify(response).setHeader("Location", "/go/foo"); verify(response).setStatus(HttpStatus.ORDINAL_301_Moved_Permanently); verify(response).setHeader("Content-Type", "text/plain"); verify(writer) .write( String.format( "Url(s) starting in '/cruise' have been permanently moved to '/go', please use the new path.")); verify(writer).close(); }