Add a header case-sensitivity test for 37794 test case (as reported by Tim)
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Fri, 19 Jun 2009 12:55:56 +0000 (12:55 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Fri, 19 Jun 2009 12:55:56 +0000 (12:55 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@786486 13f79535-47bb-0310-9956-ffa450edef68

test/org/apache/catalina/connector/TestRequest.java

index e7094a2..7166c78 100644 (file)
@@ -56,35 +56,41 @@ public class TestRequest extends TestCase {
         Bug37794Client client = new Bug37794Client();
 
         // Edge cases around zero
-        client.doRequest(-1); // Unlimited
+        client.doRequest(-1, false); // Unlimited
         assertTrue(client.isResponse200());
         assertTrue(client.isResponseBodyOK());
         client.reset();
-        client.doRequest(0); // Unlimited
+        client.doRequest(0, false); // Unlimited
         assertTrue(client.isResponse200());
         assertTrue(client.isResponseBodyOK());
         client.reset();
-        client.doRequest(1); // 1 byte - too small should fail
+        client.doRequest(1, false); // 1 byte - too small should fail
         assertTrue(client.isResponse500());
         
         client.reset();
         
         // Edge cases around actual content length
         client.reset();
-        client.doRequest(6); // Too small should fail
+        client.doRequest(6, false); // Too small should fail
         assertTrue(client.isResponse500());
         client.reset();
-        client.doRequest(7); // Just enough should pass
+        client.doRequest(7, false); // Just enough should pass
         assertTrue(client.isResponse200());
         assertTrue(client.isResponseBodyOK());
         client.reset();
-        client.doRequest(8); // 1 extra - should pass
+        client.doRequest(8, false); // 1 extra - should pass
         assertTrue(client.isResponse200());
         assertTrue(client.isResponseBodyOK());
         
         // Much larger
         client.reset();
-        client.doRequest(8096); // Plenty of space - should pass
+        client.doRequest(8096, false); // Plenty of space - should pass
+        assertTrue(client.isResponse200());
+        assertTrue(client.isResponseBodyOK());
+
+        // Check for case insensitivity
+        client.reset();
+        client.doRequest(8096, true); // Plenty of space - should pass
         assertTrue(client.isResponse200());
         assertTrue(client.isResponseBodyOK());
     }
@@ -115,7 +121,7 @@ public class TestRequest extends TestCase {
      * Bug 37794 test client.
      */
     private static class Bug37794Client extends SimpleHttpClient {
-        private Exception doRequest(int postLimit) {
+        private Exception doRequest(int postLimit, boolean ucChunkedHead) {
             Tomcat tomcat = new Tomcat();
             try {
                 StandardContext root = tomcat.addContext("", TEMP_DIR);
@@ -129,14 +135,25 @@ public class TestRequest extends TestCase {
                 
                 // Send request in two parts
                 String[] request = new String[2];
-                request[0] =
-                    "POST http://localhost:8080/test HTTP/1.1" + CRLF +
-                    "content-type: application/x-www-form-urlencoded" + CRLF +
-                    "Transfer-Encoding: chunked" + CRLF +
-                    "Connection: close" + CRLF +
-                    CRLF +
-                    "3" + CRLF +
-                    "a=1" + CRLF;
+                if (ucChunkedHead) {
+                    request[0] =
+                        "POST http://localhost:8080/test HTTP/1.1" + CRLF +
+                        "content-type: application/x-www-form-urlencoded" + CRLF +
+                        "Transfer-Encoding: CHUNKED" + CRLF +
+                        "Connection: close" + CRLF +
+                        CRLF +
+                        "3" + CRLF +
+                        "a=1" + CRLF;
+                } else {
+                    request[0] =
+                        "POST http://localhost:8080/test HTTP/1.1" + CRLF +
+                        "content-type: application/x-www-form-urlencoded" + CRLF +
+                        "Transfer-Encoding: chunked" + CRLF +
+                        "Connection: close" + CRLF +
+                        CRLF +
+                        "3" + CRLF +
+                        "a=1" + CRLF;
+                }
                 request[1] =
                     "4" + CRLF +
                     "&b=2" + CRLF +