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: [email protected]
For additional commands, e-mail: [email protected]