From b92ee503ab72969e2813cbe1c0f1223b8d9482ce Mon Sep 17 00:00:00 2001 From: fhanik Date: Tue, 20 Apr 2010 16:34:27 +0000 Subject: [PATCH] Add test case for bug 49158 git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@935984 13f79535-47bb-0310-9956-ffa450edef68 --- test/org/apache/tomcat/util/http/TestBug49158.java | 85 ++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 test/org/apache/tomcat/util/http/TestBug49158.java diff --git a/test/org/apache/tomcat/util/http/TestBug49158.java b/test/org/apache/tomcat/util/http/TestBug49158.java new file mode 100644 index 000000000..985d265a7 --- /dev/null +++ b/test/org/apache/tomcat/util/http/TestBug49158.java @@ -0,0 +1,85 @@ +/* + * 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 java.util.HashMap; +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 javax.servlet.http.HttpSession; + +import org.apache.catalina.Context; +import org.apache.catalina.startup.Tomcat; +import org.apache.tomcat.util.buf.ByteChunk; + +/** + * Test case for {@link Cookies}. Note because of the use of final + * static 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 TestBug49158 extends CookiesBaseTest { + public static final String path = "49158"; + + @Override + public void testCookiesInstance() throws Exception { + Tomcat tomcat = getTomcatInstance(); + addServlets(tomcat); + tomcat.start(); + Map> headers = new HashMap>(); + ByteChunk res = new ByteChunk(); + getUrl("http://localhost:" + getPort() + "/"+path, res, headers); + List cookieHeaders = headers.get("Set-Cookie"); + int count = 0; + for (String cookieHeader : cookieHeaders) { + count++; + } + assertEquals("There should only be one Set-Cookie header in this test",1, count); + } + + public static void addServlets(Tomcat tomcat) { + // Must have a real docBase - just use temp + Context ctx = + tomcat.addContext("/", System.getProperty("java.io.tmpdir")); + + Tomcat.addServlet(ctx, path, new TestBug49158Servlet()); + ctx.addServletMapping("/"+path, path); + } + + public static class TestBug49158Servlet extends HttpServlet { + + private static final long serialVersionUID = 2725990508758127399L; + + @Override + public void service(HttpServletRequest req, HttpServletResponse res) + throws ServletException, IOException { + HttpSession session = req.getSession(); + session.invalidate(); + session = req.getSession(); + session.invalidate(); + session = req.getSession(); + } + + } + +} -- 2.11.0