New tests for verification of error page handling by the container.

The tests validate the use of dynamic and static resources as error
pages and validate that the appropriate request parameters are set
depending on the circumstances when the error resource is dynamic.

The attached .gz file can be untarred in the root directory of the
watchdog distribution and all new files will be put into the proper
directories.  Also attached are patches to the servlet-tests web
application's web.xml, and the servlet-gtest.xml file.

Comments are welcome.

-rl

Attachment: javax_servlet_Error.tar.gz
Description: GNU Zip compressed data

Index: servlet-gtest.xml
===================================================================
RCS file: /home/cvspublic/jakarta-watchdog-4.0/src/conf/servlet-gtest.xml,v
retrieving revision 1.19
diff -u -r1.19 servlet-gtest.xml
--- servlet-gtest.xml   2001/07/20 23:07:56     1.19
+++ servlet-gtest.xml   2001/11/30 20:23:12
@@ -586,6 +586,49 @@
            debug="0" host="${host}" port="${port}"
            
goldenFile="${wgdir}/javax_servlet/UnavailableException/UnavailableException_Constructor2Test.html"
 />
 
+  <!-- javax_servlet_Error tests -->
+
+    <gtest request="GET /servlet-tests/ServletToServletErrorPageTest HTTP/1.0"
+        debug="0" host="${host}" port="${port}"
+        goldenfile="${wgdir}/javax_servlet/Error/ServletToServletErrorPageTest.html"
+        testName="ServletToServletErrorPageTest"
+        assertion="Servlet error handlers can be installed for specific Exception 
+types."
+        testStrategy="The target servlet will generage a 
+java.lang.ArithmeticException.  The Servlet error page should display non-null values 
+for status_code, exception_type, message, exception, request_uri, and servlet_name"
+    />
+
+    <gtest request="GET /servlet-tests/ServletToServletError501PageTest HTTP/1.0"
+        debug="0" host="${host}" port="${port}"
+        
+goldenfile="${wgdir}/javax_servlet/Error/ServletToServletError501PageTest.html"
+        testName="ServletToServletError501PageTest"
+        assertion="Servlet error handlers can be installed for specific HTTP status 
+codes."
+        testStrategy="The target servlet will class HttpServletResponse.sendError( 
+int status, String message ).  The Servlet error page should display non-null values 
+for status_code, message, request_uri, and servlet_name"
+    />
+        
+    <gtest request="GET /servlet-tests/ServletToJSPErrorPageTest HTTP/1.0"
+        debug="0" host="${host}" port="${port}"
+        goldenfile="${wgdir}/javax_servlet/Error/ServletToJSPErrorPageTest.html"
+        testName="ServletToJSPErrorPageTest"
+        assertion="JSP error handlers can be installed for specific Exception types."
+        testStrategy="The target servlet will generage a 
+java.lang.ArrayIndexOutOfBoundsException.  The JSP error page should display non-null 
+values for status_code, exception_type, message, exception, request_uri, and 
+servlet_name"
+    />
+
+
+    <gtest request="GET /servlet-tests/ServletToJSPError502PageTest HTTP/1.0"
+        debug="0" host="${host}" port="${port}"
+        goldenfile="${wgdir}/javax_servlet/Error/ServletToJSPError502PageTest.html"
+        testName="ServletToJSPError502PageTest"
+        assertion="JSP error handlers can be installed for specific HTTP status 
+codes."
+        testStrategy="The target servlet will generage a 
+java.lang.ArrayIndexOutOfBoundsException.  The JSP error page should display non-null 
+values for status_code, message, request_uri, and servlet_name"
+    />
+
+
+    <gtest request="GET /servlet-tests/ServletToHTMLErrorPageTest HTTP/1.0"
+        debug="0" host="${host}" port="${port}"
+        goldenfile="${wgdir}/javax_servlet/Error/ServletToHTMLErrorPageTest.html"
+        testName="ServletToHTMLErrorPageTest"
+        assertion="Static HTML page error handlers can be installed for specific 
+Exception types."
+        testStrategy="The target servlet will generage a 
+java.lang.NumberFormatException.  The static HTML error page should be returned to 
+the client."
+    />
 
   <!-- javax_servlet_http_Cookie tests -->
 
Index: web.xml
===================================================================
RCS file: 
/home/cvspublic/jakarta-watchdog-4.0/src/server/servlet-tests/WEB-INF/web.xml,v
retrieving revision 1.3
diff -u -r1.3 web.xml
--- web.xml     2000/12/22 18:59:14     1.3
+++ web.xml     2001/11/30 20:23:35
@@ -242,6 +242,71 @@
        </servlet-class>
   </servlet>
 
+  <!-- Error -->
+
+  <servlet>
+    <servlet-name>
+        ServletToServletErrorPageTest
+    </servlet-name>
+    <servlet-class>
+        tests.javax_servlet.Error.ServletToServletErrorPageTestServlet
+    </servlet-class>
+  </servlet>
+
+  <servlet>
+    <servlet-name>
+        ServletToServletError501PageTest
+    </servlet-name>
+    <servlet-class>
+        tests.javax_servlet.Error.ServletToServletError501PageTestServlet
+    </servlet-class>
+  </servlet>
+
+  <servlet>
+    <servlet-name>
+        JSPErrorPage
+    </servlet-name>
+    <jsp-file>
+        /tests/javax_servlet/Error/JSPErrorPage.jsp
+    </jsp-file>
+  </servlet>
+
+  <servlet>
+    <servlet-name>
+        ServletToHTMLErrorPageTest
+    </servlet-name>
+    <servlet-class>
+        tests.javax_servlet.Error.ServletToHTMLErrorPageTestServlet
+    </servlet-class>
+  </servlet>
+
+  <servlet>
+    <servlet-name>
+        ServletErrorPage
+    </servlet-name>
+    <servlet-class>
+        tests.javax_servlet.Error.ServletErrorPage
+    </servlet-class>
+  </servlet>
+
+  <servlet>
+    <servlet-name>
+        ServletToJSPError502PageTest
+    </servlet-name>
+    <servlet-class>
+        tests.javax_servlet.Error.ServletToJSPError502PageTestServlet
+    </servlet-class>
+  </servlet>
+
+  <servlet>
+    <servlet-name>
+        ServletToJSPErrorPageTest
+    </servlet-name>
+    <servlet-class>
+        tests.javax_servlet.Error.ServletToJSPErrorPageTestServlet
+    </servlet-class>
+  </servlet>
+
   <!-- HttpServletResponse     -->
 
   <servlet>
@@ -1997,6 +2062,71 @@
        </url-pattern>
   </servlet-mapping>
 
+<!-- Error -->
+  
+  <servlet-mapping>
+    <servlet-name>
+        ServletToServletErrorPageTest
+    </servlet-name>
+    <url-pattern>
+        /ServletToServletErrorPageTest
+    </url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>
+        JSPErrorPage
+    </servlet-name>
+    <url-pattern>
+        /JSPErrorPage
+    </url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>
+        ServletToHTMLErrorPageTest
+    </servlet-name>
+    <url-pattern>
+        /ServletToHTMLErrorPageTest
+    </url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>
+        ServletErrorPage
+    </servlet-name>
+    <url-pattern>
+        /ServletErrorPage
+    </url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>
+        ServletToServletError501PageTest
+    </servlet-name>
+    <url-pattern>
+        /ServletToServletError501PageTest
+    </url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>
+        ServletToJSPError502PageTest
+    </servlet-name>
+    <url-pattern>
+        /ServletToJSPError502PageTest
+    </url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>
+        ServletToJSPErrorPageTest
+    </servlet-name>
+    <url-pattern>
+        /ServletToJSPErrorPageTest
+    </url-pattern>
+  </servlet-mapping>
+
 <!--   HttpServletResponse     -->
 
 
@@ -4112,59 +4242,50 @@
                </session-timeout>
        </session-config>
 
-       <error-page>
-               <error-code>
-                       404     
-               </error-code>
-               <location>
-                       /IsNotThere
-               </location>
-       </error-page>
-
-       <error-page>
-               <error-code>
-                       503     
-               </error-code>
-               <location>
-                       /503.html
-               </location>
-       </error-page>
-
-       <error-page>
-               <error-code>
-                       500     
-               </error-code>
-               <location>
-                       /IsNotThere
-               </location>
-       </error-page>
-
-       <error-page>
-               <exception-type>
-                       ServletException
-               </exception-type>
-               <location>
-                       /IsNotThere
-               </location>
-       </error-page>
-
-       <error-page>
-               <exception-type>
-                       UnavaialableException
-               </exception-type>
-               <location>
-                       /503.html
-               </location>
-       </error-page>
-
-       <error-page>
-               <exception-type>
-                       FileNotFoundException
-               </exception-type>
-               <location>
-                       /NotAvailable
-               </location>
-       </error-page>
+    <error-page>
+        <exception-type>
+            java.lang.ArrayIndexOutOfBoundsException
+        </exception-type>
+        <location>
+            /JSPErrorPage
+        </location>
+    </error-page>
+
+    <error-page>
+        <error-code>
+            502
+        </error-code>
+        <location>
+            /JSPErrorPage
+        </location>
+    </error-page>
+
+    <error-page>
+        <exception-type>
+            java.lang.ArithmeticException
+        </exception-type>
+        <location>
+            /ServletErrorPage
+        </location>
+    </error-page>
+
+    <error-page>
+        <error-code>
+            501
+        </error-code>
+        <location>
+            /ServletErrorPage
+        </location>
+    </error-page>
+
+    <error-page>
+        <exception-type>
+            java.lang.NumberFormatException
+        </exception-type>
+        <location>
+            /tests/javax_servlet/Error/HTMLErrorPage.html
+        </location>
+    </error-page>
 
   <security-constraint>
        <web-resource-collection>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to