Filip Hanik - Dev Lists wrote: > isn't the .java file missing a "package > org.apache.catalina.tomcat.util.http" declaration, also having both > catalina and tomcat in the path, seems kind of redundant :)
Yep. I will change that after Remy's release. Cheers Jean-Frederic > > Filip > > [EMAIL PROTECTED] wrote: >> 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] >> >> >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]