Author: markt Date: Fri Oct 14 10:53:19 2016 New Revision: 1764870 URL: http://svn.apache.org/viewvc?rev=1764870&view=rev Log: More plumbing for tests in progress
Modified: tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java Modified: tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java?rev=1764870&r1=1764869&r2=1764870&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java (original) +++ tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java Fri Oct 14 10:53:19 2016 @@ -359,23 +359,35 @@ public abstract class Http2TestBase exte protected String getEmptyResponseTrace(int streamId) { - return getSingleResponseBodyFrameTrace(streamId, 0); + return getResponseBodyFrameTrace(streamId, "0"); } protected String getSimpleResponseTrace(int streamId) { - return getSingleResponseBodyFrameTrace(streamId, 8192); + return getResponseBodyFrameTrace(streamId, "8192"); } - private String getSingleResponseBodyFrameTrace(int streamId, int bodySize) { + protected String getCookieResponseTrace(int streamId, int cookieCount) { + return getResponseBodyFrameTrace(streamId, "text/plain;charset=UTF-8", + "Cookie count: " + cookieCount); + } + + + private String getResponseBodyFrameTrace(int streamId, String body) { + return getResponseBodyFrameTrace(streamId, "application/octet-stream", body); + } + + private String getResponseBodyFrameTrace(int streamId, String contentType, String body) { StringBuilder result = new StringBuilder(); result.append(streamId); result.append("-HeadersStart\n"); result.append(streamId); result.append("-Header-[:status]-[200]\n"); result.append(streamId); - result.append("-Header-[content-type]-[application/octet-stream]\n"); + result.append("-Header-[content-type]-["); + result.append(contentType); + result.append("]\n"); result.append(streamId); result.append("-Header-[date]-["); result.append(DEFAULT_DATE); @@ -384,7 +396,7 @@ public abstract class Http2TestBase exte result.append("-HeadersEnd\n"); result.append(streamId); result.append("-Body-"); - result.append(bodySize); + result.append(body); result.append("\n"); result.append(streamId); result.append("-EndOfStream\n"); @@ -419,6 +431,8 @@ public abstract class Http2TestBase exte ctxt.addServletMappingDecoded("/simple", "simple"); Tomcat.addServlet(ctxt, "large", new LargeServlet()); ctxt.addServletMappingDecoded("/large", "large"); + Tomcat.addServlet(ctxt, "cookie", new CookieServlet()); + ctxt.addServletMappingDecoded("/cookie", "cookie"); tomcat.start(); } @@ -766,6 +780,12 @@ public abstract class Http2TestBase exte private StringBuffer trace = new StringBuffer(); private String lastStreamId = "0"; private ConnectionSettingsRemote remoteSettings = new ConnectionSettingsRemote("-1"); + private boolean traceBody = false; + private ByteBuffer bodyBuffer = null; + + public void setTraceBody(boolean traceBody) { + this.traceBody = traceBody; + } @Override @@ -777,14 +797,29 @@ public abstract class Http2TestBase exte @Override public ByteBuffer startRequestBodyFrame(int streamId, int payloadSize) { lastStreamId = Integer.toString(streamId); - trace.append(lastStreamId + "-Body-" + payloadSize + "\n"); - return null; + if (traceBody) { + bodyBuffer = ByteBuffer.allocate(payloadSize); + return bodyBuffer; + } else { + trace.append(lastStreamId + "-Body-" + payloadSize + "\n"); + return null; + } } @Override public void endRequestBodyFrame(int streamId) throws Http2Exception { - // NO-OP + if (bodyBuffer != null) { + if (bodyBuffer.limit() > 0) { + trace.append(lastStreamId + "-Body-"); + bodyBuffer.flip(); + while (bodyBuffer.hasRemaining()) { + trace.append((char) bodyBuffer.get()); + } + trace.append("\n"); + bodyBuffer = null; + } + } } @@ -1002,6 +1037,21 @@ public abstract class Http2TestBase exte } } + + private static class CookieServlet 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"); + resp.getWriter().print("Cookie count: " + req.getCookies().length); + resp.flushBuffer(); + } + } + static class SettingValue { private final int setting; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org