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