Skip to content

Instantly share code, notes, and snippets.

@gregw
Created November 26, 2018 12:43
Show Gist options
  • Save gregw/984f4318df9ff194683996d9371f4dca to your computer and use it in GitHub Desktop.
Save gregw/984f4318df9ff194683996d9371f4dca to your computer and use it in GitHub Desktop.
diff --git a/jetty-server/src/test/java/org/eclipse/jetty/server/handler/CustomRequestLogTest.java b/jetty-server/src/test/java/org/eclipse/jetty/server/handler/CustomRequestLogTest.java
index eb8a22096f..f022d3da1e 100644
--- a/jetty-server/src/test/java/org/eclipse/jetty/server/handler/CustomRequestLogTest.java
+++ b/jetty-server/src/test/java/org/eclipse/jetty/server/handler/CustomRequestLogTest.java
@@ -38,6 +38,7 @@ import org.eclipse.jetty.server.CustomRequestLog;
import org.eclipse.jetty.server.ForwardedRequestCustomizer;
import org.eclipse.jetty.server.HttpConnectionFactory;
import org.eclipse.jetty.server.LocalConnector;
+import org.eclipse.jetty.server.QuietServletException;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.RequestLog;
import org.eclipse.jetty.server.Server;
@@ -470,15 +471,39 @@ public class CustomRequestLogTest
assertThat(log, is("UrlRequestPath: /path"));
}
- @Disabled
@Test
public void testLogConnectionStatus() throws Exception
{
- testHandlerServerStart("ConnectionStatus: %X");
+ testHandlerServerStart("%U ConnectionStatus: %s %X");
- _connector.getResponse("GET / HTTP/1.0\n\n");
- String log = _entries.poll(5,TimeUnit.SECONDS);
- fail(log);
+ _connector.getResponse("GET /one HTTP/1.0\n\n");
+ assertThat(_entries.poll(5,TimeUnit.SECONDS), is("/one ConnectionStatus: 200 -"));
+
+ _connector.getResponse("GET /two HTTP/1.1\n" +
+ "Host: localhost\n" +
+ "Connection: close\n" +
+ "\n");
+ assertThat(_entries.poll(5,TimeUnit.SECONDS), is("/two ConnectionStatus: 200 -"));
+
+ LocalConnector.LocalEndPoint connect = _connector.connect();
+ connect.addInput("GET /three HTTP/1.0\n" +
+ "Connection: keep-alive\n\n");
+ connect.addInput("GET /four HTTP/1.1\n" +
+ "Host: localhost\n\n");
+ connect.addInput("GET /BAD HTTP/1.1\n\n");
+ assertThat(connect.getResponse(), containsString("200 OK"));
+ assertThat(connect.getResponse(), containsString("200 OK"));
+ assertThat(connect.getResponse(), containsString("400 "));
+
+ assertThat(_entries.poll(5,TimeUnit.SECONDS), is("/three ConnectionStatus: 200 +"));
+ assertThat(_entries.poll(5,TimeUnit.SECONDS), is("/four ConnectionStatus: 200 +"));
+ assertThat(_entries.poll(5,TimeUnit.SECONDS), is("/BAD ConnectionStatus: 400 -"));
+
+ _connector.getResponse("GET /abort HTTP/1.1\n" +
+ "Host: localhost\n" +
+ "\n");
+ connect.getResponse();
+ assertThat(_entries.poll(5,TimeUnit.SECONDS), is("/abort ConnectionStatus: 200 X"));
}
@Disabled
@@ -555,6 +580,12 @@ public class CustomRequestLogTest
response.addHeader("Header1", "value1");
response.addHeader("Header2", "value2");
}
+ else if (request.getRequestURI().contains("/abort"))
+ {
+ response.getOutputStream().println("data");
+ response.flushBuffer();
+ baseRequest.getHttpChannel().abort(new QuietServletException("test abort"));
+ }
else if (request.getRequestURI().contains("delay"))
{
try
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment