You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2016/10/14 10:53:19 UTC

svn commit: r1764870 - /tomcat/trunk/test/org/apache/coyote/http2/Http2TestBase.java

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org