use of org.hamcrest.Matchers.containsString in project jetty.project by eclipse.
the class HttpServerTestBase method testExceptionThrownInHandler.
@Test
public void testExceptionThrownInHandler() throws Exception {
configureServer(new AbstractHandler.ErrorDispatchHandler() {
@Override
public void doNonErrorHandle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
throw new QuietServletException("TEST handler exception");
}
});
StringBuffer request = new StringBuffer("GET / HTTP/1.0\r\n");
request.append("Host: localhost\r\n\r\n");
Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort());
OutputStream os = client.getOutputStream();
try (StacklessLogging stackless = new StacklessLogging(HttpChannel.class)) {
Log.getLogger(HttpChannel.class).info("Expecting ServletException: TEST handler exception...");
os.write(request.toString().getBytes());
os.flush();
String response = readResponse(client);
assertThat(response, Matchers.containsString(" 500 "));
}
}
use of org.hamcrest.Matchers.containsString in project jetty.project by eclipse.
the class HttpServerTestBase method testExceptionThrownInHandlerLoop.
@Test
public void testExceptionThrownInHandlerLoop() throws Exception {
configureServer(new AbstractHandler() {
@Override
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
throw new QuietServletException("TEST handler exception");
}
});
StringBuffer request = new StringBuffer("GET / HTTP/1.0\r\n");
request.append("Host: localhost\r\n\r\n");
Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort());
OutputStream os = client.getOutputStream();
try (StacklessLogging stackless = new StacklessLogging(HttpChannel.class)) {
Log.getLogger(HttpChannel.class).info("Expecting ServletException: TEST handler exception...");
os.write(request.toString().getBytes());
os.flush();
String response = readResponse(client);
assertThat(response, Matchers.containsString(" 500 "));
}
}
use of org.hamcrest.Matchers.containsString in project jetty.project by eclipse.
the class HttpServerTestBase method testOPTIONS.
@Test
public void testOPTIONS() throws Exception {
configureServer(new OptionsHandler());
try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) {
OutputStream os = client.getOutputStream();
os.write(("OPTIONS * HTTP/1.1\r\n" + "Host: " + _serverURI.getHost() + "\r\n" + "Connection: close\r\n" + "\r\n").getBytes(StandardCharsets.ISO_8859_1));
os.flush();
// Read the response.
String response = readResponse(client);
Assert.assertThat(response, Matchers.containsString("HTTP/1.1 200 OK"));
Assert.assertThat(response, Matchers.containsString("Allow: GET"));
}
try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort())) {
OutputStream os = client.getOutputStream();
os.write(("GET * HTTP/1.1\r\n" + "Host: " + _serverURI.getHost() + "\r\n" + "Connection: close\r\n" + "\r\n").getBytes(StandardCharsets.ISO_8859_1));
os.flush();
// Read the response.
String response = readResponse(client);
Assert.assertThat(response, Matchers.containsString("HTTP/1.1 400 "));
Assert.assertThat(response, Matchers.not(Matchers.containsString("Allow: ")));
}
}
use of org.hamcrest.Matchers.containsString in project jetty.project by eclipse.
the class HttpServerTestBase method testFullMethod.
/*
* Feed a full header method
*/
@Test
public void testFullMethod() throws Exception {
configureServer(new HelloWorldHandler());
try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort());
StacklessLogging stackless = new StacklessLogging(HttpConnection.class)) {
client.setSoTimeout(10000);
((AbstractLogger) Log.getLogger(HttpConnection.class)).info("expect request is too large, then ISE extra data ...");
OutputStream os = client.getOutputStream();
byte[] buffer = new byte[64 * 1024];
Arrays.fill(buffer, (byte) 'A');
os.write(buffer);
os.flush();
// Read the response.
String response = readResponse(client);
Assert.assertThat(response, Matchers.containsString("HTTP/1.1 431 "));
}
}
use of org.hamcrest.Matchers.containsString in project jetty.project by eclipse.
the class HttpServerTestBase method testCommittedError.
@Test
public void testCommittedError() throws Exception {
CommittedErrorHandler handler = new CommittedErrorHandler();
configureServer(handler);
try (Socket client = newSocket(_serverURI.getHost(), _serverURI.getPort());
StacklessLogging stackless = new StacklessLogging(HttpChannel.class)) {
((AbstractLogger) Log.getLogger(HttpChannel.class)).info("Expecting exception after commit then could not send 500....");
OutputStream os = client.getOutputStream();
InputStream is = client.getInputStream();
// Send a request
os.write(("GET / HTTP/1.1\r\n" + "Host: " + _serverURI.getHost() + ":" + _serverURI.getPort() + "\r\n" + "\r\n").getBytes());
os.flush();
client.setSoTimeout(2000);
String in = IO.toString(is);
// Closed by error!
assertEquals(-1, is.read());
assertThat(in, containsString("HTTP/1.1 200 OK"));
assertTrue(in.indexOf("Transfer-Encoding: chunked") > 0);
assertTrue(in.indexOf("Now is the time for all good men to come to the aid of the party") > 0);
assertThat(in, Matchers.not(Matchers.containsString("\r\n0\r\n")));
client.close();
Thread.sleep(200);
assertTrue(!handler._endp.isOpen());
}
}
Aggregations