Author: jfclere
Date: Fri Oct 26 07:51:23 2007
New Revision: 588673

URL: http://svn.apache.org/viewvc?rev=588673&view=rev
Log:
Add the tests of the cookies.

Added:
    tomcat/tc6.0.x/trunk/test/build.xml
    tomcat/tc6.0.x/trunk/test/org/apache/catalina/tomcat/
    tomcat/tc6.0.x/trunk/test/org/apache/catalina/tomcat/util/
    tomcat/tc6.0.x/trunk/test/org/apache/catalina/tomcat/util/http/
    
tomcat/tc6.0.x/trunk/test/org/apache/catalina/tomcat/util/http/TestCookies.java
Modified:
    tomcat/tc6.0.x/trunk/STATUS
    tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml

Modified: tomcat/tc6.0.x/trunk/STATUS
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS?rev=588673&r1=588672&r2=588673&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/STATUS (original)
+++ tomcat/tc6.0.x/trunk/STATUS Fri Oct 26 07:51:23 2007
@@ -26,10 +26,6 @@
   [ New proposals should be added at the end of the list ]
 
 
-* Tests for unit tests for the cookie issues. 
http://people.apache.org/~jfclere/patches/CookiesTest.patch
-  +1: fhanik, funkman, pero, jim
-  -1:
-
 * Guess java location from the PATH environment. 
http://people.apache.org/~jfclere/patches/setclasspath.sh.patch
   And improve fix for 37284.
   +1: fhanik, remm, funkman, pero, jim

Added: tomcat/tc6.0.x/trunk/test/build.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/test/build.xml?rev=588673&view=auto
==============================================================================
--- tomcat/tc6.0.x/trunk/test/build.xml (added)
+++ tomcat/tc6.0.x/trunk/test/build.xml Fri Oct 26 07:51:23 2007
@@ -0,0 +1,69 @@
+<?xml version="1.0"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+<project name="Tomcat 6.0" default="all" basedir=".">
+
+  <!-- See "build.properties.sample" in the top level directory for all     -->
+  <!-- property values you must customize for successful building!!!        -->
+  <property file="${user.home}/build.properties"/>
+  <property file="build.properties"/>
+
+  <property file="build.properties.default"/>
+
+  <property name="test.classes" value="${basedir}/output/classes"/>
+  <property name="tomcat.build" value="${basedir}/../output/build"/>
+
+  <property name="compile.source" value="1.5"/>
+
+  <property name="junit.jar" value="${junit.home}/junit.jar"/>
+  <property name="test.runner" value="junit.textui.TestRunner"/>
+
+  <path id="tomcat.test.classpath">
+    <pathelement location="${test.classes}"/>
+    <pathelement location="${junit.jar}"/>
+    <fileset dir="${tomcat.build}/lib/">
+      <include name="tomcat-coyote.jar"/>
+    </fileset>
+    <fileset dir="${tomcat.build}/bin/">
+      <include name="tomcat-juli.jar"/>
+    </fileset>
+  </path>
+
+  <target name="compile">
+
+  <mkdir dir="${test.classes}"/>
+
+  <!-- Compile -->
+  <javac srcdir="." destdir="${test.classes}"
+         debug="${compile.debug}"
+         deprecation="${compile.deprecation}"
+         source="${compile.source}"
+         optimize="${compile.optimize}">
+         <classpath refid="tomcat.test.classpath" />
+         <include name="org/apache/catalina/tomcat/util/**" />
+  </javac>
+
+  </target>
+
+  <target name="all" depends="compile">
+     <java dir="${test.classes}" classname="${test.runner}" fork="yes" 
failonerror="${test.failonerror}">
+            <arg value="TestCookies"/>
+            <classpath refid="tomcat.test.classpath"/>
+        </java>
+
+  </target>
+</project>

Added: 
tomcat/tc6.0.x/trunk/test/org/apache/catalina/tomcat/util/http/TestCookies.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/test/org/apache/catalina/tomcat/util/http/TestCookies.java?rev=588673&view=auto
==============================================================================
--- 
tomcat/tc6.0.x/trunk/test/org/apache/catalina/tomcat/util/http/TestCookies.java 
(added)
+++ 
tomcat/tc6.0.x/trunk/test/org/apache/catalina/tomcat/util/http/TestCookies.java 
Fri Oct 26 07:51:23 2007
@@ -0,0 +1,258 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+import org.apache.tomcat.util.http.Cookies;
+import org.apache.tomcat.util.http.ServerCookie;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+import junit.textui.TestRunner;
+
+import java.lang.Exception;
+
+
+public class TestCookies extends TestCase {
+    public static void main( String args[] ) {
+       TestRunner.run(suite());
+    }
+    public static Test suite() {
+       TestSuite suite = new TestSuite();
+       suite.addTest(new TestSuite(TestCookies.class));
+       return suite;
+    }
+/*
+       int i = 10000000;
+          // These tests are not really representative 
+         while (i-- > 0) { 
+             test("session=1234567890;name=\"John Q. Public\";");
+        }
+//        runtests();
+    } 
+ */
+    
+    public void testCookies() throws Exception {
+        test("foo=bar; a=b", "foo", "bar", "a", "b");
+        test("foo=bar;a=b", "foo", "bar", "a", "b");
+        test("foo=bar;a=b;", "foo", "bar", "a", "b");
+        test("foo=bar;a=b; ", "foo", "bar", "a", "b");
+        test("foo=bar;a=b; ;", "foo", "bar", "a", "b");
+        test("foo=;a=b; ;", "foo", "", "a", "b");
+        test("foo;a=b; ;", "foo", "", "a", "b");
+        // v1 
+        test("$Version=1; foo=bar;a=b", "foo", "bar", "a", "b"); 
+
+        // OK
+        test("$Version=1;foo=bar;a=b; ; ",  "foo", "bar", "a", "b");
+        test("$Version=1;foo=;a=b; ; ",  "foo", "", "a", "b");
+        test("$Version=1;foo= ;a=b; ; ",  "foo", "", "a", "b");
+        test("$Version=1;foo;a=b; ; ", "foo", "", "a", "b");
+        test("$Version=1;foo=\"bar\";a=b; ; ", "foo", "bar", "a", "b");
+
+        test("$Version=1;foo=\"bar\";$Domain=apache.org;a=b", "foo", "bar", 
"a", "b");
+        
test("$Version=1;foo=\"bar\";$Domain=apache.org;a=b;$Domain=yahoo.com", "foo", 
"bar", "a", "b");
+        // rfc2965
+        test("$Version=1;foo=\"bar\";$Domain=apache.org;$Port=8080;a=b", 
"foo", "bar", "a", "b");
+
+        // make sure these never split into two cookies - JVK
+        test("$Version=1;foo=\"b\"ar\";$Domain=apache.org;$Port=8080;a=b",  
"foo", "b", "a", "b");
+        test("$Version=1;foo=\"b\\\"ar\";$Domain=apache.org;$Port=8080;a=b", 
"foo", "b\\\"ar", "a", "b");
+        test("$Version=1;foo=\"b'ar\";$Domain=apache.org;$Port=8080;a=b", 
"foo", "b'ar", "a", "b");
+        // JFC: sure it is "b" and not b'ar ?
+        test("$Version=1;foo=b'ar;$Domain=apache.org;$Port=8080;a=b", "foo", 
"b", "a", "b");
+
+        // Ends in quoted value
+        test("foo=bar;a=\"b\"",  "foo", "bar", "a", "b");
+        test("foo=bar;a=\"b\";",  "foo", "bar", "a", "b");
+
+        // Last character is an escape character
+        
test("$Version=1;foo=b'ar;$Domain=\"apache.org\";$Port=8080;a=\"b\\\"", "foo", 
"b");
+        test("$Version=1;foo=b'ar;$Domain=\"apache.org\";$Port=8080;a=\"b\\",  
"foo", "b");
+        
+        // Bad... a token cannot be quoted with ' chars
+        test("$Version=\"1\"; foo='bar'; $Path=/path; $Domain=\"localhost\"");
+    
+        // wrong, path should not have '/' JVK
+        test("$Version=1;foo=\"bar\";$Path=/examples;a=b; ; ", "foo", "bar", 
"a", "b");
+
+        // wrong
+        test("$Version=1;foo=\"bar\";$Domain=apache.org;$Port=8080;a=b", 
"foo", "bar", "a", "b");
+
+        // Test name-only at the end of the header
+        test("foo;a=b;bar", "foo", "", "a", "b", "bar", "");
+        test("foo;a=b;bar;", "foo", "", "a", "b", "bar", "");
+        test("foo;a=b;bar ", "foo", "", "a", "b", "bar", "");
+        test("foo;a=b;bar ;", "foo", "", "a", "b", "bar", "");
+
+        // Multiple delimiters next to each other
+ 
+        // BUG -- the ' ' needs to be skipped.
+        test("foo;a=b; ;bar", "foo", "", "a", "b", "bar", "");
+        // BUG -- ';' needs skipping
+        test("foo;a=b;;bar", "foo", "", "a", "b", "bar", "");
+        test("foo;a=b; ;;bar=rab", "foo", "", "a", "b", "bar", "rab");
+        // These pass currently
+        test("foo;a=b;; ;bar=rab", "foo", "", "a", "b", "bar", "rab");
+
+        // '#' is a valid cookie name (not a separator)
+        test("foo;a=b;;#;bar=rab","foo", "", "a", "b", "#", "", "bar", "rab");
+
+        
+        test("foo;a=b;;\\;bar=rab", "foo", "", "a", "b", "bar", "rab");
+    }
+
+    public static void test( String s ) throws Exception {
+        System.out.println("Processing [" + s + "]");
+        Cookies cs=new Cookies(null);
+        cs.processCookieHeader( s.getBytes(), 0, s.length());
+
+        int num = cs.getCookieCount();
+        for( int i=0; i< num ; i++ ) {
+            System.out.println("Cookie: " + cs.getCookie( i ));
+        }
+        if (num != 0)
+          throw new Exception("wrong number of cookies " + num);
+    }
+    public static void test( String s, String name, String val ) throws 
Exception {
+        System.out.println("Processing [" + s + "]");
+        Cookies cs=new Cookies(null);
+        cs.processCookieHeader( s.getBytes(), 0, s.length());
+
+        int num = cs.getCookieCount();
+        if (num != 1)
+          throw new Exception("wrong number of cookies " + num);
+        ServerCookie co = cs.getCookie(0);
+        System.out.println("One Cookie: " + co);
+        String coname = co.getName().toString();
+        String coval  = co.getValue().toString();
+        if ( ! name.equals(coname))
+          throw new Exception("wrong name " + coname + " != " + name);
+        if ( ! val.equals(coval))
+          throw new Exception("wrong value " + coval + " != " + val);
+    }
+    public static void test( String s, String name, String val, String name2, 
String val2 ) throws Exception {
+        System.out.println("Processing [" + s + "]");
+        Cookies cs=new Cookies(null);
+        cs.processCookieHeader( s.getBytes(), 0, s.length());
+
+        int num = cs.getCookieCount();
+        if (num != 2)
+          throw new Exception("wrong number of cookies " + num);
+        ServerCookie co = cs.getCookie(0);
+        System.out.println("1 - Cookie: " + co);
+        ServerCookie co2 = cs.getCookie(1);
+        System.out.println("2 - Cookie: " + co2);
+
+        String coname = co.getName().toString();
+        String coval  = co.getValue().toString();
+        if ( ! name.equals(coname))
+          throw new Exception("1 - wrong name " + coname + " != " + name);
+        if ( ! val.equals(coval))
+          throw new Exception("1 - wrong value " + coval + " != " + val);
+
+        String coname2 = co2.getName().toString();
+        String coval2  = co2.getValue().toString();
+        if ( ! name2.equals(coname2))
+          throw new Exception("2 - wrong name " + coname2 + " != " + name2);
+        if ( ! val2.equals(coval2))
+          throw new Exception("2 - wrong value " + coval2 + " != " + val2);
+    }
+    public static void test( String s, String name, String val, String name2,
+                             String val2, String name3, String val3 ) throws 
Exception {
+        System.out.println("Processing [" + s + "]");
+        Cookies cs=new Cookies(null);
+        cs.processCookieHeader( s.getBytes(), 0, s.length());
+
+        int num = cs.getCookieCount();
+        if (num != 3)
+          throw new Exception("wrong number of cookies " + num);
+        ServerCookie co = cs.getCookie(0);
+        System.out.println("1 - Cookie: " + co);
+        ServerCookie co2 = cs.getCookie(1);
+        System.out.println("2 - Cookie: " + co2);
+        ServerCookie co3 = cs.getCookie(2);
+        System.out.println("3 - Cookie: " + co3);
+
+        String coname = co.getName().toString();
+        String coval  = co.getValue().toString();
+        if ( ! name.equals(coname))
+          throw new Exception("1 - wrong name " + coname + " != " + name);
+        if ( ! val.equals(coval))
+          throw new Exception("1 - wrong value " + coval + " != " + val);
+
+        String coname2 = co2.getName().toString();
+        String coval2  = co2.getValue().toString();
+        if ( ! name2.equals(coname2))
+          throw new Exception("2 - wrong name " + coname2 + " != " + name2);
+        if ( ! val2.equals(coval2))
+          throw new Exception("2 - wrong value " + coval2 + " != " + val2);
+
+        String coname3 = co3.getName().toString();
+        String coval3  = co3.getValue().toString();
+        if ( ! name3.equals(coname3))
+          throw new Exception("3 - wrong name " + coname3 + " != " + name3);
+        if ( ! val2.equals(coval2))
+          throw new Exception("3 - wrong value " + coval3 + " != " + val3);
+    }
+    public static void test( String s, String name, String val, String name2,
+                             String val2, String name3, String val3,
+                             String name4, String val4 ) throws Exception {
+        System.out.println("Processing [" + s + "]");
+        Cookies cs=new Cookies(null);
+        cs.processCookieHeader( s.getBytes(), 0, s.length());
+
+        int num = cs.getCookieCount();
+        if (num != 4)
+          throw new Exception("wrong number of cookies " + num);
+        ServerCookie co = cs.getCookie(0);
+        System.out.println("1 - Cookie: " + co);
+        ServerCookie co2 = cs.getCookie(1);
+        System.out.println("2 - Cookie: " + co2);
+        ServerCookie co3 = cs.getCookie(2);
+        System.out.println("3 - Cookie: " + co3);
+        ServerCookie co4 = cs.getCookie(3);
+        System.out.println("4 - Cookie: " + co4);
+
+        String coname = co.getName().toString();
+        String coval  = co.getValue().toString();
+        if ( ! name.equals(coname))
+          throw new Exception("1 - wrong name " + coname + " != " + name);
+        if ( ! val.equals(coval))
+          throw new Exception("1 - wrong value " + coval + " != " + val);
+
+        String coname2 = co2.getName().toString();
+        String coval2  = co2.getValue().toString();
+        if ( ! name2.equals(coname2))
+          throw new Exception("2 - wrong name " + coname2 + " != " + name2);
+        if ( ! val2.equals(coval2))
+          throw new Exception("2 - wrong value " + coval2 + " != " + val2);
+
+        String coname3 = co3.getName().toString();
+        String coval3  = co3.getValue().toString();
+        if ( ! name3.equals(coname3))
+          throw new Exception("3 - wrong name " + coname3 + " != " + name3);
+        if ( ! val3.equals(coval3))
+          throw new Exception("3 - wrong value " + coval3 + " != " + val3);
+
+        String coname4 = co4.getName().toString();
+        String coval4  = co4.getValue().toString();
+        if ( ! name4.equals(coname4))
+          throw new Exception("4 - wrong name " + coname4 + " != " + name4);
+        if ( ! val4.equals(coval4))
+          throw new Exception("4 - wrong value " + coval4 + " != " + val4);
+    }
+}

Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=588673&r1=588672&r2=588673&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Fri Oct 26 07:51:23 2007
@@ -197,6 +197,13 @@
       </fix>
     </changelog>
   </subsection>
+  <subsection name="Other">
+    <changelog>
+      <add>
+         Tests for unit tests for the cookie issues. (jfclere)
+      </add>
+    </changelog>
+  </subsection>
   
 </section>
 <section name="Tomcat 6.0.14 (remm)">



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

Reply via email to