Hi,

This test, the way it is currently written, expects that whent he client
invokes the HTTP HEAD method, that a response-body is returned.  This is
incorrect.  The test currently passes due to Tomcat Bugzilla 5126.

I've modified the test so that no response output is written via a
writer and instead will use sendError( int, string ), to send the status
of the test.  I had to add a new instance variable and setter method to
GTest so that the response message could be configured by the
servlet-gtest.xml file, and be checked appropriately by the
checkResponse() method of GTest.

NOTE:  The goldenfile
${wgdir}/javax_servlet_http/HttpServletRequest/GetMethod_HEADTest.html
should be removed from the repository.

Attached are the patches necessary to correct this test.

Comments welcome.

-rl




Index: GTest.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-watchdog-4.0/src/tools/org/apache/tomcat/task/GTest.java,v
retrieving revision 1.3
diff -u -r1.3 GTest.java
--- GTest.java  2001/09/28 04:09:56     1.3
+++ GTest.java  2001/11/27 15:19:57
@@ -37,6 +37,7 @@
     Hashtable expectHeaders;
     // Match request line
     String returnCode="";
+    String returnCodeMsg = "";
 
     // Actual response
     String responseLine;
@@ -221,6 +222,10 @@
        this.returnCode=s;
     }
 
+   public void setReturnCodeMsg( String s ) {
+       this.returnCodeMsg = s;
+   }
+
    public void setHeaders( String s ) {
        requestHeaders=new Hashtable();
        parseHeader( s, requestHeaders );
@@ -309,7 +314,13 @@
        
        // If returnCode doesn't match
        if( request.indexOf( "HTTP/1." ) > -1) {
-           boolean match= ( responseLine!=null && responseLine.indexOf(returnCode) > 
-1);
+        boolean match = false;
+        if ( returnCodeMsg == "" ) {
+               match = ( responseLine != null && responseLine.indexOf( returnCode ) > 
+-1 );
+        } else {
+            match = ( responseLine != null && responseLine.indexOf( returnCode ) > -1 
+                      && responseLine.indexOf( returnCodeMsg ) > -1 );
+        }
            if( match != testCondition ) {
                                responseStatus = false;
                                System.out.println("ERROR in: " + request);
Index: GetMethod_HEADTestServlet.java
===================================================================
RCS file: 
/home/cvspublic/jakarta-watchdog-4.0/src/server/servlet-tests/WEB-INF/classes/tests/javax_servlet_http/HttpServletRequest/GetMethod_HEADTestServlet.java,v
retrieving revision 1.1
diff -u -r1.1 GetMethod_HEADTestServlet.java
--- GetMethod_HEADTestServlet.java      2000/10/16 22:38:56     1.1
+++ GetMethod_HEADTestServlet.java      2001/11/27 14:52:17
@@ -80,20 +80,16 @@
 
 
        public void service (HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException {
-               PrintWriter out = response.getWriter();
 
                String method = request.getMethod();
                if(method!=null) {
                        if(method.trim().equalsIgnoreCase("HEAD"))
                        {
-                               out.println("GetMethod_HEADTest test PASSED");
+                               response.sendError( HttpServletResponse.SC_OK, 
+"GetMethod_HEADTest PASSED");
                                return;
                        }
                }
-               out.println("GetMethod_HEADTest test FAILED");
-               out.println( "<BR>getMethod did not return proper method type");
-               out.println("Actual Return Value : " + method );
-               out.println("Expected Return Value : HEAD "  );
+        response.sendError( HttpServletResponse.SC_INTERNAL_SERVER_ERROR, 
+"GetMethod_HEADTest FAILED" );
 
        }
 }
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/27 15:14:13
@@ -739,7 +739,7 @@
 
       <gtest request="HEAD /servlet-tests/GetMethod_HEADTest HTTP/1.0"
            debug="0" host="${host}" port="${port}"  
-           
goldenFile="${wgdir}/javax_servlet_http/HttpServletRequest/GetMethod_HEADTest.html" />
+           returnCode="200" returnCodeMsg="GetMethod_HEADTest PASSED" />
 
       <gtest request="POST /servlet-tests/GetMethod_POSTTest HTTP/1.0"
            debug="0" host="${host}" port="${port}"  

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

Reply via email to