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: [email protected]
For additional commands, e-mail: [email protected]