Author: markt
Date: Sat Oct 31 11:46:50 2009
New Revision: 831533

URL: http://svn.apache.org/viewvc?rev=831533&view=rev
Log:
New cookie unit tests and associated refactoring to get ant test target working.

Added:
    tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java
      - copied, changed from r831530, 
tomcat/trunk/test/org/apache/catalina/startup/TestTomcatBase.java
    tomcat/trunk/test/org/apache/tomcat/util/http/CookiesBaseTest.java
    
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesDefaultSysProps.java
    
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesNoFwdStrictSysProps.java
    
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesNoStrictNamingSysProps.java
    tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesStrictSysProps.java
Removed:
    tomcat/trunk/test/org/apache/catalina/startup/TestTomcatBase.java
Modified:
    tomcat/trunk/test/org/apache/catalina/connector/TestKeepAliveCount.java
    tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java
    tomcat/trunk/test/org/apache/catalina/core/TestStandardContext.java
    tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java

Modified: 
tomcat/trunk/test/org/apache/catalina/connector/TestKeepAliveCount.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/connector/TestKeepAliveCount.java?rev=831533&r1=831532&r2=831533&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/connector/TestKeepAliveCount.java 
(original)
+++ tomcat/trunk/test/org/apache/catalina/connector/TestKeepAliveCount.java Sat 
Oct 31 11:46:50 2009
@@ -25,10 +25,10 @@
 
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.startup.SimpleHttpClient;
-import org.apache.catalina.startup.TestTomcatBase;
+import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.catalina.startup.Tomcat;
 
-public class TestKeepAliveCount extends TestTomcatBase{
+public class TestKeepAliveCount extends TomcatBaseTest{
 
     public void testHttp10() throws Exception {
         TestKeepAliveClient client = new TestKeepAliveClient();

Modified: tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java?rev=831533&r1=831532&r2=831533&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java (original)
+++ tomcat/trunk/test/org/apache/catalina/connector/TestRequest.java Sat Oct 31 
11:46:50 2009
@@ -28,13 +28,13 @@
 
 import org.apache.catalina.core.StandardContext;
 import org.apache.catalina.startup.SimpleHttpClient;
-import org.apache.catalina.startup.TestTomcatBase;
+import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.catalina.startup.Tomcat;
 
 /**
  * Test case for {...@link Request}. 
  */
-public class TestRequest extends TestTomcatBase {
+public class TestRequest extends TomcatBaseTest {
 
     /**
      * Test case for https://issues.apache.org/bugzilla/show_bug.cgi?id=37794

Modified: tomcat/trunk/test/org/apache/catalina/core/TestStandardContext.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/core/TestStandardContext.java?rev=831533&r1=831532&r2=831533&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/core/TestStandardContext.java 
(original)
+++ tomcat/trunk/test/org/apache/catalina/core/TestStandardContext.java Sat Oct 
31 11:46:50 2009
@@ -30,10 +30,10 @@
 import org.apache.catalina.deploy.FilterDef;
 import org.apache.catalina.deploy.FilterMap;
 import org.apache.catalina.startup.SimpleHttpClient;
-import org.apache.catalina.startup.TestTomcatBase;
+import org.apache.catalina.startup.TomcatBaseTest;
 import org.apache.catalina.startup.Tomcat;
 
-public class TestStandardContext extends TestTomcatBase {
+public class TestStandardContext extends TomcatBaseTest {
 
     private static final String REQUEST =
         "GET / HTTP/1.1\r\n" +

Modified: tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java?rev=831533&r1=831532&r2=831533&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java (original)
+++ tomcat/trunk/test/org/apache/catalina/startup/TestTomcat.java Sat Oct 31 
11:46:50 2009
@@ -31,7 +31,7 @@
 import org.apache.catalina.deploy.ContextEnvironment;
 import org.apache.tomcat.util.buf.ByteChunk;
 
-public class TestTomcat extends TestTomcatBase {
+public class TestTomcat extends TomcatBaseTest {
 
     /**
      * Simple servlet to test in-line registration 

Copied: tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java (from 
r831530, tomcat/trunk/test/org/apache/catalina/startup/TestTomcatBase.java)
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java?p2=tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java&p1=tomcat/trunk/test/org/apache/catalina/startup/TestTomcatBase.java&r1=831530&r2=831533&rev=831533&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/startup/TestTomcatBase.java (original)
+++ tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java Sat Oct 
31 11:46:50 2009
@@ -39,7 +39,7 @@
  * Base test case that provides a Tomcat instance for each test - mainly so we
  * don't have to keep writing the cleanup code.
  */
-public abstract class TestTomcatBase extends TestCase {
+public abstract class TomcatBaseTest extends TestCase {
     private Tomcat tomcat;
     private File tempDir;
     private static int port = 8001;

Added: tomcat/trunk/test/org/apache/tomcat/util/http/CookiesBaseTest.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/CookiesBaseTest.java?rev=831533&view=auto
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/util/http/CookiesBaseTest.java (added)
+++ tomcat/trunk/test/org/apache/tomcat/util/http/CookiesBaseTest.java Sat Oct 
31 11:46:50 2009
@@ -0,0 +1,84 @@
+/*
+ *  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.
+ */
+
+package org.apache.tomcat.util.http;
+
+import java.io.IOException;
+
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.catalina.core.StandardContext;
+import org.apache.catalina.startup.TomcatBaseTest;
+import org.apache.catalina.startup.Tomcat;
+
+/**
+ * Base Test case for {...@link Cookies}. <b>Note</b> because of the use of
+ * <code>final static</code> constants in {...@link Cookies}, each of these 
tests
+ * must be executed in a new JVM instance. The tests have been place in 
separate
+ * classes to facilitate this when running the unit tests via Ant.
+ */
+public abstract class CookiesBaseTest extends TomcatBaseTest {
+
+    /**
+     * Servlet for cookie naming test.
+     */
+    public static class CookieName extends HttpServlet {
+
+        private static final long serialVersionUID = 1L;
+        
+        private final String cookieName;
+
+        public CookieName(String cookieName) {
+            this.cookieName = cookieName;
+        }
+        
+        public void doGet(HttpServletRequest req, HttpServletResponse res) 
+                throws IOException {
+            try {
+                Cookie cookie = new Cookie(cookieName,"Value");
+                res.addCookie(cookie);
+                res.getWriter().write("Cookie name ok");
+            } catch (IllegalArgumentException iae) {
+                res.getWriter().write("Cookie name fail");
+            }
+        }
+        
+    }
+    
+
+    public static void addServlets(Tomcat tomcat) {
+        // Must have a real docBase - just use temp
+        StandardContext ctx = 
+            tomcat.addContext("/", System.getProperty("java.io.tmpdir"));
+
+        Tomcat.addServlet(ctx, "invalid", new CookieName("na;me"));
+        ctx.addServletMapping("/invalid", "invalid");
+        Tomcat.addServlet(ctx, "invalidFwd", new CookieName("na/me"));
+        ctx.addServletMapping("/invalidFwd", "invalidFwd");
+        Tomcat.addServlet(ctx, "invalidStrict", new CookieName("na?me"));
+        ctx.addServletMapping("/invalidStrict", "invalidStrict");
+        Tomcat.addServlet(ctx, "valid", new CookieName("name"));
+        ctx.addServletMapping("/valid", "valid");
+
+    }
+    
+    public abstract void testCookiesInstance() throws Exception;
+    
+}

Added: 
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesDefaultSysProps.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesDefaultSysProps.java?rev=831533&view=auto
==============================================================================
--- 
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesDefaultSysProps.java 
(added)
+++ 
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesDefaultSysProps.java 
Sat Oct 31 11:46:50 2009
@@ -0,0 +1,51 @@
+/*
+ *  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.
+ */
+
+package org.apache.tomcat.util.http;
+
+import org.apache.catalina.startup.Tomcat;
+import org.apache.tomcat.util.buf.ByteChunk;
+
+/**
+ * Test case for {...@link Cookies}. <b>Note</b> because of the use of 
<code>final
+ * static</code> constants in {...@link Cookies}, each of these tests must be
+ * executed in a new JVM instance. The tests have been place in separate 
classes
+ * to facilitate this when running the unit tests via Ant.
+ */
+public class TestCookiesDefaultSysProps extends CookiesBaseTest {
+
+    @Override
+    public void testCookiesInstance() throws Exception {
+
+        Tomcat tomcat = getTomcatInstance();
+
+        addServlets(tomcat);
+        
+        tomcat.start();
+        
+        ByteChunk res = getUrl("http://localhost:"; + getPort() + "/invalid");
+        assertEquals("Cookie name fail", res.toString());
+        res = getUrl("http://localhost:"; + getPort() + "/invalidFwd");
+        assertEquals("Cookie name ok", res.toString());
+        res = getUrl("http://localhost:"; + getPort() + "/invalidStrict");
+        assertEquals("Cookie name ok", res.toString());
+        res = getUrl("http://localhost:"; + getPort() + "/valid");
+        assertEquals("Cookie name ok", res.toString());
+
+    }
+        
+}

Added: 
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesNoFwdStrictSysProps.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesNoFwdStrictSysProps.java?rev=831533&view=auto
==============================================================================
--- 
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesNoFwdStrictSysProps.java
 (added)
+++ 
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesNoFwdStrictSysProps.java
 Sat Oct 31 11:46:50 2009
@@ -0,0 +1,55 @@
+/*
+ *  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.
+ */
+
+package org.apache.tomcat.util.http;
+
+import org.apache.catalina.startup.Tomcat;
+import org.apache.tomcat.util.buf.ByteChunk;
+
+/**
+ * Test case for {...@link Cookies}. <b>Note</b> because of the use of 
<code>final
+ * static</code> constants in {...@link Cookies}, each of these tests must be
+ * executed in a new JVM instance. The tests have been place in separate 
classes
+ * to facilitate this when running the unit tests via Ant.
+ */
+public class TestCookiesNoFwdStrictSysProps extends CookiesBaseTest {
+    
+    public void testCookiesInstance() throws Exception {
+
+        System.setProperty("org.apache.catalina.STRICT_SERVLET_COMPLIANCE",
+                "true");
+        
System.setProperty("org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR",
+                "false");
+        
+        Tomcat tomcat = getTomcatInstance();
+
+        addServlets(tomcat);
+        
+        tomcat.start();
+        
+        ByteChunk res = getUrl("http://localhost:"; + getPort() + "/invalid");
+        assertEquals("Cookie name fail", res.toString());
+        res = getUrl("http://localhost:"; + getPort() + "/invalidFwd");
+        assertEquals("Cookie name ok", res.toString());
+        res = getUrl("http://localhost:"; + getPort() + "/invalidStrict");
+        assertEquals("Cookie name fail", res.toString());
+        res = getUrl("http://localhost:"; + getPort() + "/valid");
+        assertEquals("Cookie name ok", res.toString());
+
+    }
+    
+}

Added: 
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesNoStrictNamingSysProps.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesNoStrictNamingSysProps.java?rev=831533&view=auto
==============================================================================
--- 
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesNoStrictNamingSysProps.java
 (added)
+++ 
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesNoStrictNamingSysProps.java
 Sat Oct 31 11:46:50 2009
@@ -0,0 +1,55 @@
+/*
+ *  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.
+ */
+
+package org.apache.tomcat.util.http;
+
+import org.apache.catalina.startup.Tomcat;
+import org.apache.tomcat.util.buf.ByteChunk;
+
+/**
+ * Test case for {...@link Cookies}. <b>Note</b> because of the use of 
<code>final
+ * static</code> constants in {...@link Cookies}, each of these tests must be
+ * executed in a new JVM instance. The tests have been place in separate 
classes
+ * to facilitate this when running the unit tests via Ant.
+ */
+public class TestCookiesNoStrictNamingSysProps extends CookiesBaseTest {
+
+    @Override
+    public void testCookiesInstance() throws Exception {
+    
+        System.setProperty("org.apache.catalina.STRICT_SERVLET_COMPLIANCE",
+                "true");
+        
System.setProperty("org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING",
+                "false");
+    
+        Tomcat tomcat = getTomcatInstance();
+    
+        addServlets(tomcat);
+        
+        tomcat.start();
+        
+        ByteChunk res = getUrl("http://localhost:"; + getPort() + "/invalid");
+        assertEquals("Cookie name fail", res.toString());
+        res = getUrl("http://localhost:"; + getPort() + "/invalidFwd");
+        assertEquals("Cookie name ok", res.toString());
+        res = getUrl("http://localhost:"; + getPort() + "/invalidStrict");
+        assertEquals("Cookie name ok", res.toString());
+        res = getUrl("http://localhost:"; + getPort() + "/valid");
+        assertEquals("Cookie name ok", res.toString());
+    
+    }
+}

Added: 
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesStrictSysProps.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesStrictSysProps.java?rev=831533&view=auto
==============================================================================
--- 
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesStrictSysProps.java 
(added)
+++ 
tomcat/trunk/test/org/apache/tomcat/util/http/TestCookiesStrictSysProps.java 
Sat Oct 31 11:46:50 2009
@@ -0,0 +1,54 @@
+/*
+ *  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.
+ */
+
+package org.apache.tomcat.util.http;
+
+import org.apache.catalina.startup.Tomcat;
+import org.apache.tomcat.util.buf.ByteChunk;
+
+/**
+ * Test case for {...@link Cookies}. <b>Note</b> because of the use of 
<code>final
+ * static</code> constants in {...@link Cookies}, each of these tests must be
+ * executed in a new JVM instance. The tests have been place in separate 
classes
+ * to facilitate this when running the unit tests via Ant.
+ */
+public class TestCookiesStrictSysProps extends CookiesBaseTest {
+
+    @Override
+    public void testCookiesInstance() throws Exception {
+
+        System.setProperty("org.apache.catalina.STRICT_SERVLET_COMPLIANCE",
+                "true");
+        
+        Tomcat tomcat = getTomcatInstance();
+        
+        addServlets(tomcat);
+        
+        tomcat.start();
+        
+        ByteChunk res = getUrl("http://localhost:"; + getPort() + "/invalid");
+        assertEquals("Cookie name fail", res.toString());
+        res = getUrl("http://localhost:"; + getPort() + "/invalidFwd");
+        assertEquals("Cookie name fail", res.toString());
+        res = getUrl("http://localhost:"; + getPort() + "/invalidStrict");
+        assertEquals("Cookie name fail", res.toString());
+        res = getUrl("http://localhost:"; + getPort() + "/valid");
+        assertEquals("Cookie name ok", res.toString());
+        
+    }
+        
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to