New cookie unit tests and associated refactoring to get ant test target working.
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sat, 31 Oct 2009 11:46:50 +0000 (11:46 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Sat, 31 Oct 2009 11:46:50 +0000 (11:46 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@831533 13f79535-47bb-0310-9956-ffa450edef68

test/org/apache/catalina/connector/TestKeepAliveCount.java
test/org/apache/catalina/connector/TestRequest.java
test/org/apache/catalina/core/TestStandardContext.java
test/org/apache/catalina/startup/TestTomcat.java
test/org/apache/catalina/startup/TestTomcatBase.java [deleted file]
test/org/apache/catalina/startup/TomcatBaseTest.java [new file with mode: 0644]
test/org/apache/tomcat/util/http/CookiesBaseTest.java [new file with mode: 0644]
test/org/apache/tomcat/util/http/TestCookiesDefaultSysProps.java [new file with mode: 0644]
test/org/apache/tomcat/util/http/TestCookiesNoFwdStrictSysProps.java [new file with mode: 0644]
test/org/apache/tomcat/util/http/TestCookiesNoStrictNamingSysProps.java [new file with mode: 0644]
test/org/apache/tomcat/util/http/TestCookiesStrictSysProps.java [new file with mode: 0644]

index 8dc4bc7..631727b 100644 (file)
@@ -25,10 +25,10 @@ import javax.servlet.http.HttpServletResponse;
 
 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();
index 3d526fe..9bc19dc 100644 (file)
@@ -28,13 +28,13 @@ import javax.servlet.http.HttpServletResponse;
 
 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
index 8b6ded2..b9d2b7d 100644 (file)
@@ -30,10 +30,10 @@ import javax.servlet.ServletResponse;
 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" +
index 8984137..c7c0cf2 100644 (file)
@@ -31,7 +31,7 @@ import org.apache.catalina.core.StandardContext;
 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 
diff --git a/test/org/apache/catalina/startup/TestTomcatBase.java b/test/org/apache/catalina/startup/TestTomcatBase.java
deleted file mode 100644 (file)
index 3c69846..0000000
+++ /dev/null
@@ -1,127 +0,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.
- */
-package org.apache.catalina.startup;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.PrintWriter;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.util.List;
-import java.util.Map;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.tomcat.util.buf.ByteChunk;
-
-import junit.framework.TestCase;
-
-/**
- * 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 {
-    private Tomcat tomcat;
-    private File tempDir;
-    private static int port = 8001;
-
-    /**
-     * Make Tomcat instance accessible to sub-classes.
-     */
-    public Tomcat getTomcatInstance() {
-        return tomcat;
-    }
-
-    /**
-     * Sub-classes need to know port so they can connect
-     */
-    public int getPort() {
-        return port;
-    }
-    
-    public void setUp() throws Exception {
-        tempDir = new File("output/tmp");
-        tempDir.mkdir();
-        
-        tomcat = new Tomcat();
-        tomcat.setBaseDir(tempDir.getAbsolutePath());
-        tomcat.getHost().setAppBase(tempDir.getAbsolutePath() + "/webapps");
-          
-        // If each test is running on same port - they
-        // may interfere with each other (on unix at least)
-        port++;
-        tomcat.setPort(port);
-    }
-    
-    public void tearDown() throws Exception {
-        tomcat.stop();
-        ExpandWar.delete(tempDir);
-    }
-    
-    /**
-     * Simple Hello World servlet for use by test cases
-     */
-    public static final class HelloWorldServlet extends HttpServlet {
-
-        private static final long serialVersionUID = 1L;
-
-        @Override
-        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
-                throws ServletException, IOException {
-            PrintWriter out = resp.getWriter();
-            out.print("<html><body><p>Hello World</p></body></html>");
-        }
-    }
-    
-
-    /**
-     *  Wrapper for getting the response.
-     */
-    public static ByteChunk getUrl(String path) throws IOException {
-        ByteChunk out = new ByteChunk();
-        getUrl(path, out, null);
-        return out;
-    }
-
-    public static int getUrl(String path, 
-                             ByteChunk out, 
-                             Map<String, List<String>> resHead) throws IOException {
-        URL url = new URL(path);
-        HttpURLConnection connection = 
-            (HttpURLConnection) url.openConnection();
-        connection.setReadTimeout(100000);
-        connection.connect();
-        int rc = connection.getResponseCode();
-        if (resHead != null) {
-            Map<String, List<String>> head = connection.getHeaderFields();
-            resHead.putAll(head);
-        }
-        InputStream is = connection.getInputStream();
-        BufferedInputStream bis = new BufferedInputStream(is);
-        byte[] buf = new byte[2048];
-        int rd = 0;
-        while((rd = bis.read(buf)) > 0) {
-            out.append(buf, 0, rd);
-        }
-        return rc;
-    }
-}
diff --git a/test/org/apache/catalina/startup/TomcatBaseTest.java b/test/org/apache/catalina/startup/TomcatBaseTest.java
new file mode 100644 (file)
index 0000000..2b32646
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+ * 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.catalina.startup;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.PrintWriter;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.tomcat.util.buf.ByteChunk;
+
+import junit.framework.TestCase;
+
+/**
+ * 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 TomcatBaseTest extends TestCase {
+    private Tomcat tomcat;
+    private File tempDir;
+    private static int port = 8001;
+
+    /**
+     * Make Tomcat instance accessible to sub-classes.
+     */
+    public Tomcat getTomcatInstance() {
+        return tomcat;
+    }
+
+    /**
+     * Sub-classes need to know port so they can connect
+     */
+    public int getPort() {
+        return port;
+    }
+    
+    public void setUp() throws Exception {
+        tempDir = new File("output/tmp");
+        tempDir.mkdir();
+        
+        tomcat = new Tomcat();
+        tomcat.setBaseDir(tempDir.getAbsolutePath());
+        tomcat.getHost().setAppBase(tempDir.getAbsolutePath() + "/webapps");
+          
+        // If each test is running on same port - they
+        // may interfere with each other (on unix at least)
+        port++;
+        tomcat.setPort(port);
+    }
+    
+    public void tearDown() throws Exception {
+        tomcat.stop();
+        ExpandWar.delete(tempDir);
+    }
+    
+    /**
+     * Simple Hello World servlet for use by test cases
+     */
+    public static final class HelloWorldServlet extends HttpServlet {
+
+        private static final long serialVersionUID = 1L;
+
+        @Override
+        protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+                throws ServletException, IOException {
+            PrintWriter out = resp.getWriter();
+            out.print("<html><body><p>Hello World</p></body></html>");
+        }
+    }
+    
+
+    /**
+     *  Wrapper for getting the response.
+     */
+    public static ByteChunk getUrl(String path) throws IOException {
+        ByteChunk out = new ByteChunk();
+        getUrl(path, out, null);
+        return out;
+    }
+
+    public static int getUrl(String path, 
+                             ByteChunk out, 
+                             Map<String, List<String>> resHead) throws IOException {
+        URL url = new URL(path);
+        HttpURLConnection connection = 
+            (HttpURLConnection) url.openConnection();
+        connection.setReadTimeout(100000);
+        connection.connect();
+        int rc = connection.getResponseCode();
+        if (resHead != null) {
+            Map<String, List<String>> head = connection.getHeaderFields();
+            resHead.putAll(head);
+        }
+        InputStream is = connection.getInputStream();
+        BufferedInputStream bis = new BufferedInputStream(is);
+        byte[] buf = new byte[2048];
+        int rd = 0;
+        while((rd = bis.read(buf)) > 0) {
+            out.append(buf, 0, rd);
+        }
+        return rc;
+    }
+}
diff --git a/test/org/apache/tomcat/util/http/CookiesBaseTest.java b/test/org/apache/tomcat/util/http/CookiesBaseTest.java
new file mode 100644 (file)
index 0000000..e18fb91
--- /dev/null
@@ -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;
+    
+}
diff --git a/test/org/apache/tomcat/util/http/TestCookiesDefaultSysProps.java b/test/org/apache/tomcat/util/http/TestCookiesDefaultSysProps.java
new file mode 100644 (file)
index 0000000..035bcc0
--- /dev/null
@@ -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());
+
+    }
+        
+}
diff --git a/test/org/apache/tomcat/util/http/TestCookiesNoFwdStrictSysProps.java b/test/org/apache/tomcat/util/http/TestCookiesNoFwdStrictSysProps.java
new file mode 100644 (file)
index 0000000..4db0cc0
--- /dev/null
@@ -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());
+
+    }
+    
+}
diff --git a/test/org/apache/tomcat/util/http/TestCookiesNoStrictNamingSysProps.java b/test/org/apache/tomcat/util/http/TestCookiesNoStrictNamingSysProps.java
new file mode 100644 (file)
index 0000000..b353445
--- /dev/null
@@ -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());
+    
+    }
+}
diff --git a/test/org/apache/tomcat/util/http/TestCookiesStrictSysProps.java b/test/org/apache/tomcat/util/http/TestCookiesStrictSysProps.java
new file mode 100644 (file)
index 0000000..0aaf46c
--- /dev/null
@@ -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());
+        
+    }
+        
+}