Author: remm Date: Fri Apr 20 08:34:43 2018 New Revision: 1829633 URL: http://svn.apache.org/viewvc?rev=1829633&view=rev Log: Add simple status code error page test to double check the addition of the report permitted logic.
Modified: tomcat/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java Modified: tomcat/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java?rev=1829633&r1=1829632&r2=1829633&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java (original) +++ tomcat/trunk/test/org/apache/catalina/valves/TestErrorReportValve.java Fri Apr 20 08:34:43 2018 @@ -21,6 +21,8 @@ import java.io.IOException; import javax.servlet.AsyncContext; import javax.servlet.RequestDispatcher; import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -33,6 +35,7 @@ import org.apache.catalina.Wrapper; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.startup.TomcatBaseTest; import org.apache.tomcat.util.buf.ByteChunk; +import org.apache.tomcat.util.descriptor.web.ErrorPage; public class TestErrorReportValve extends TomcatBaseTest { @@ -211,4 +214,53 @@ public class TestErrorReportValve extend } } } + + private static final class ExceptionServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + @Override + public void service(ServletRequest request, ServletResponse response) + throws IOException { + throw new RuntimeException(); + } + } + + + private static final class ErrorPageServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + @Override + public void service(ServletRequest request, ServletResponse response) + throws IOException { + response.getWriter().print("OK"); + } + } + + + @Test + public void testErrorPageServlet() throws Exception { + Tomcat tomcat = getTomcatInstance(); + + // No file system docBase required + Context ctx = tomcat.addContext("", null); + + Tomcat.addServlet(ctx, "exception", new ExceptionServlet()); + ctx.addServletMappingDecoded("/exception", "exception"); + Tomcat.addServlet(ctx, "erropage", new ErrorPageServlet()); + ctx.addServletMappingDecoded("/erropage", "erropage"); + ErrorPage errorPage = new ErrorPage(); + errorPage.setErrorCode(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + errorPage.setLocation("/erropage"); + ctx.addErrorPage(errorPage); + + tomcat.start(); + + ByteChunk res = new ByteChunk(); + int rc = getUrl("http://localhost:" + getPort() + "/exception", res, null); + + Assert.assertEquals(res.toString(), "OK"); + Assert.assertEquals(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, rc); + } + + } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org