This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/8.5.x by this push: new e7ea351 Test case for OPTIONS request on a sub-class e7ea351 is described below commit e7ea351e70b3ed480a4942a61e58e61e6069569c Author: Mark Thomas <ma...@apache.org> AuthorDate: Mon Feb 17 09:37:12 2020 +0000 Test case for OPTIONS request on a sub-class --- test/javax/servlet/http/TestHttpServlet.java | 63 ++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/test/javax/servlet/http/TestHttpServlet.java b/test/javax/servlet/http/TestHttpServlet.java index 8c03ee3..8de9d9f 100644 --- a/test/javax/servlet/http/TestHttpServlet.java +++ b/test/javax/servlet/http/TestHttpServlet.java @@ -22,6 +22,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import javax.servlet.Servlet; import javax.servlet.ServletException; import org.junit.Assert; @@ -157,6 +158,41 @@ public class TestHttpServlet extends TomcatBaseTest { } + + + @Test + public void testDoOptions() throws Exception { + doTestDoOptions(new OptionsServlet(), "GET, HEAD, OPTIONS"); + } + + + @Test + public void testDoOptionsSub() throws Exception { + doTestDoOptions(new OptionsServletSub(), "GET, HEAD, POST, OPTIONS"); + } + + + private void doTestDoOptions(Servlet servlet, String expectedAllow) throws Exception{ + Tomcat tomcat = getTomcatInstance(); + + // No file system docBase required + StandardContext ctx = (StandardContext) tomcat.addContext("", null); + + // Map the test Servlet + Tomcat.addServlet(ctx, "servlet", servlet); + ctx.addServletMappingDecoded("/", "servlet"); + + tomcat.start(); + + Map<String,List<String>> resHeaders= new HashMap<>(); + int rc = methodUrl("http://localhost:" + getPort() + "/", new ByteChunk(), + DEFAULT_CLIENT_TIMEOUT_MS, null, resHeaders, "OPTIONS"); + + Assert.assertEquals(HttpServletResponse.SC_OK, rc); + Assert.assertEquals(expectedAllow, resHeaders.get("Allow").get(0)); + } + + private static class Bug57602ServletOuter extends HttpServlet { private static final long serialVersionUID = 1L; @@ -204,4 +240,31 @@ public class TestHttpServlet extends TomcatBaseTest { pw.println("Data"); } } + + + private static class OptionsServlet extends HttpServlet { + + private static final long serialVersionUID = 1L; + + @Override + protected void doGet(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + resp.setContentType("text/plain"); + resp.setCharacterEncoding("UTF-8"); + PrintWriter pw = resp.getWriter(); + pw.print("OK"); + } + } + + + private static class OptionsServletSub extends OptionsServlet { + + private static final long serialVersionUID = 1L; + + @Override + protected void doPost(HttpServletRequest req, HttpServletResponse resp) + throws ServletException, IOException { + doGet(req, resp); + } + } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org