Author: kkolinko
Date: Sun Jul 13 13:11:07 2014
New Revision: 1610188
URL: http://svn.apache.org/r1610188
Log:
Combine similar tests into same file. No functional change.
ContextRoot and WelcomeFile mapper tests are moved into TestMapperWebapps class.
Removed:
tomcat/trunk/test/org/apache/catalina/mapper/TestMapperContextRoot.java
tomcat/trunk/test/org/apache/catalina/mapper/TestMapperWelcomeFiles.java
Modified:
tomcat/trunk/test/org/apache/catalina/mapper/TestMapperWebapps.java
Modified: tomcat/trunk/test/org/apache/catalina/mapper/TestMapperWebapps.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/mapper/TestMapperWebapps.java?rev=1610188&r1=1610187&r2=1610188&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/mapper/TestMapperWebapps.java
(original)
+++ tomcat/trunk/test/org/apache/catalina/mapper/TestMapperWebapps.java Sun Jul
13 13:11:07 2014
@@ -17,10 +17,20 @@
package org.apache.catalina.mapper;
import java.io.File;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import org.junit.Assert;
import org.junit.Test;
+import org.apache.catalina.Context;
+import org.apache.catalina.core.StandardContext;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.startup.TomcatBaseTest;
import org.apache.tomcat.util.buf.ByteChunk;
@@ -32,7 +42,51 @@ import org.apache.tomcat.websocket.serve
public class TestMapperWebapps extends TomcatBaseTest{
@Test
- public void testContextReload_56658() throws Exception {
+ public void testContextRoot_Bug53339() throws Exception {
+ Tomcat tomcat = getTomcatInstance();
+ tomcat.enableNaming();
+
+ // Must have a real docBase - just use temp
+ Context ctx =
+ tomcat.addContext("", System.getProperty("java.io.tmpdir"));
+
+ Tomcat.addServlet(ctx, "Bug53356", new Bug53356Servlet());
+ ctx.addServletMapping("", "Bug53356");
+
+ tomcat.start();
+
+ ByteChunk body = getUrl("http://localhost:" + getPort());
+
+ Assert.assertEquals("OK", body.toString());
+ }
+
+ private static class Bug53356Servlet extends HttpServlet {
+
+ private static final long serialVersionUID = 1L;
+
+ @Override
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException {
+ // Confirm behaviour as per Servlet 12.2
+ boolean pass = "/".equals(req.getPathInfo());
+ if (pass) {
+ pass = "".equals(req.getServletPath());
+ }
+ if (pass) {
+ pass = "".equals(req.getContextPath());
+ }
+
+ resp.setContentType("text/plain");
+ if (pass) {
+ resp.getWriter().write("OK");
+ } else {
+ resp.getWriter().write("FAIL");
+ }
+ }
+ }
+
+ @Test
+ public void testContextReload_Bug56658() throws Exception {
Tomcat tomcat = getTomcatInstance();
File appDir = new File(getBuildDirectory(), "webapps/examples");
@@ -77,4 +131,62 @@ public class TestMapperWebapps extends T
text = res.toString();
Assert.assertTrue(text, text.contains("<title>Apache Tomcat
Examples</title>"));
}
+
+ @Test
+ public void testWelcomeFileNotStrict() throws Exception {
+
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir = new File("test/webapp");
+
+ StandardContext ctxt = (StandardContext) tomcat.addWebapp(null,
"/test",
+ appDir.getAbsolutePath());
+ ctxt.setReplaceWelcomeFiles(true);
+ ctxt.addWelcomeFile("index.jsp");
+ // Mapping for *.do is defined in web.xml
+ ctxt.addWelcomeFile("index.do");
+
+ tomcat.start();
+ ByteChunk bc = new ByteChunk();
+ int rc = getUrl("http://localhost:" + getPort() +
+ "/test/welcome-files", bc, new HashMap<String,List<String>>());
+ Assert.assertEquals(HttpServletResponse.SC_OK, rc);
+ Assert.assertTrue(bc.toString().contains("JSP"));
+
+ rc = getUrl("http://localhost:" + getPort() +
+ "/test/welcome-files/sub", bc,
+ new HashMap<String,List<String>>());
+ Assert.assertEquals(HttpServletResponse.SC_OK, rc);
+ Assert.assertTrue(bc.toString().contains("Servlet"));
+ }
+
+ @Test
+ public void testWelcomeFileStrict() throws Exception {
+
+ Tomcat tomcat = getTomcatInstance();
+
+ File appDir = new File("test/webapp");
+
+ StandardContext ctxt = (StandardContext) tomcat.addWebapp(null,
"/test",
+ appDir.getAbsolutePath());
+ ctxt.setReplaceWelcomeFiles(true);
+ ctxt.addWelcomeFile("index.jsp");
+ // Mapping for *.do is defined in web.xml
+ ctxt.addWelcomeFile("index.do");
+
+ // Simulate STRICT_SERVLET_COMPLIANCE
+ ctxt.setResourceOnlyServlets("");
+
+ tomcat.start();
+ ByteChunk bc = new ByteChunk();
+ int rc = getUrl("http://localhost:" + getPort() +
+ "/test/welcome-files", bc, new HashMap<String,List<String>>());
+ Assert.assertEquals(HttpServletResponse.SC_OK, rc);
+ Assert.assertTrue(bc.toString().contains("JSP"));
+
+ rc = getUrl("http://localhost:" + getPort() +
+ "/test/welcome-files/sub", bc,
+ new HashMap<String,List<String>>());
+ Assert.assertEquals(HttpServletResponse.SC_NOT_FOUND, rc);
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]