From: markt Date: Fri, 19 Jun 2009 12:55:56 +0000 (+0000) Subject: Add a header case-sensitivity test for 37794 test case (as reported by Tim) X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=44d796703dd97475cc3bbe0bfdad53b0b90ab1e6;p=tomcat7.0 Add a header case-sensitivity test for 37794 test case (as reported by Tim) git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@786486 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/test/org/apache/catalina/connector/TestRequest.java b/test/org/apache/catalina/connector/TestRequest.java index e7094a2ec..7166c7877 100644 --- a/test/org/apache/catalina/connector/TestRequest.java +++ b/test/org/apache/catalina/connector/TestRequest.java @@ -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 +