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

Reply via email to