Search in sources :

Example 6 with Matchers.containsString

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 "));
    }
}
Also used : ByteArrayOutputStream(java.io.ByteArrayOutputStream) ServletOutputStream(javax.servlet.ServletOutputStream) OutputStream(java.io.OutputStream) HttpServletRequest(javax.servlet.http.HttpServletRequest) HttpServletResponse(javax.servlet.http.HttpServletResponse) Matchers.containsString(org.hamcrest.Matchers.containsString) IOException(java.io.IOException) AbstractHandler(org.eclipse.jetty.server.handler.AbstractHandler) HttpServletRequest(javax.servlet.http.HttpServletRequest) ServletException(javax.servlet.ServletException) StacklessLogging(org.eclipse.jetty.util.log.StacklessLogging) Socket(java.net.Socket) Test(org.junit.Test)

Example 7 with Matchers.containsString

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 "));
    }
}
Also used : ByteArrayOutputStream(java.io.ByteArrayOutputStream) ServletOutputStream(javax.servlet.ServletOutputStream) OutputStream(java.io.OutputStream) HttpServletRequest(javax.servlet.http.HttpServletRequest) HttpServletResponse(javax.servlet.http.HttpServletResponse) Matchers.containsString(org.hamcrest.Matchers.containsString) IOException(java.io.IOException) AbstractHandler(org.eclipse.jetty.server.handler.AbstractHandler) HttpServletRequest(javax.servlet.http.HttpServletRequest) ServletException(javax.servlet.ServletException) StacklessLogging(org.eclipse.jetty.util.log.StacklessLogging) Socket(java.net.Socket) Test(org.junit.Test)

Example 8 with Matchers.containsString

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: ")));
    }
}
Also used : ByteArrayOutputStream(java.io.ByteArrayOutputStream) ServletOutputStream(javax.servlet.ServletOutputStream) OutputStream(java.io.OutputStream) Matchers.containsString(org.hamcrest.Matchers.containsString) Socket(java.net.Socket) Test(org.junit.Test)

Example 9 with Matchers.containsString

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 "));
    }
}
Also used : ByteArrayOutputStream(java.io.ByteArrayOutputStream) ServletOutputStream(javax.servlet.ServletOutputStream) OutputStream(java.io.OutputStream) StacklessLogging(org.eclipse.jetty.util.log.StacklessLogging) Matchers.containsString(org.hamcrest.Matchers.containsString) Socket(java.net.Socket) AbstractLogger(org.eclipse.jetty.util.log.AbstractLogger) Test(org.junit.Test)

Example 10 with Matchers.containsString

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());
    }
}
Also used : ServletInputStream(javax.servlet.ServletInputStream) InputStream(java.io.InputStream) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ServletOutputStream(javax.servlet.ServletOutputStream) OutputStream(java.io.OutputStream) StacklessLogging(org.eclipse.jetty.util.log.StacklessLogging) Matchers.containsString(org.hamcrest.Matchers.containsString) Socket(java.net.Socket) AbstractLogger(org.eclipse.jetty.util.log.AbstractLogger) Test(org.junit.Test)

Aggregations

Matchers.containsString (org.hamcrest.Matchers.containsString)26 Test (org.junit.Test)24 Socket (java.net.Socket)12 OutputStream (java.io.OutputStream)11 ByteArrayOutputStream (java.io.ByteArrayOutputStream)9 ServletOutputStream (javax.servlet.ServletOutputStream)9 StacklessLogging (org.eclipse.jetty.util.log.StacklessLogging)6 HttpServletResponse (javax.servlet.http.HttpServletResponse)5 IOException (java.io.IOException)4 ServletException (javax.servlet.ServletException)4 HttpServletRequest (javax.servlet.http.HttpServletRequest)4 AbstractHandler (org.eclipse.jetty.server.handler.AbstractHandler)4 InputStream (java.io.InputStream)3 ByteBuffer (java.nio.ByteBuffer)3 HttpConnectionFactory (org.eclipse.jetty.server.HttpConnectionFactory)3 AbstractLogger (org.eclipse.jetty.util.log.AbstractLogger)3 SSLSocket (javax.net.ssl.SSLSocket)2 ServletInputStream (javax.servlet.ServletInputStream)2 ServerConnector (org.eclipse.jetty.server.ServerConnector)2 SslConnectionFactory (org.eclipse.jetty.server.SslConnectionFactory)2