diff options
author | Simone Bordet | 2015-02-09 15:53:22 +0000 |
---|---|---|
committer | Simone Bordet | 2015-02-09 15:53:22 +0000 |
commit | 3855024bbadd40bf8faa8fbb9d60fb98f5fd2289 (patch) | |
tree | 1ba314406620b3096f9690c5d4feb52fc5f3f597 /tests/test-http-client-transport | |
parent | f974c743295d2be4d72eb03a39837e04366c6526 (diff) | |
download | org.eclipse.jetty.project-3855024bbadd40bf8faa8fbb9d60fb98f5fd2289.tar.gz org.eclipse.jetty.project-3855024bbadd40bf8faa8fbb9d60fb98f5fd2289.tar.xz org.eclipse.jetty.project-3855024bbadd40bf8faa8fbb9d60fb98f5fd2289.zip |
Added tests for HTTP2Client idle timeout.
Diffstat (limited to 'tests/test-http-client-transport')
-rw-r--r-- | tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/HttpClientIdleTimeoutTest.java | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/HttpClientIdleTimeoutTest.java b/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/HttpClientIdleTimeoutTest.java new file mode 100644 index 0000000000..9a5ea8541e --- /dev/null +++ b/tests/test-http-client-transport/src/test/java/org/eclipse/jetty/http/client/HttpClientIdleTimeoutTest.java @@ -0,0 +1,107 @@ +// +// ======================================================================== +// Copyright (c) 1995-2015 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.http.client; + +import java.io.IOException; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; +import javax.servlet.AsyncContext; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.eclipse.jetty.client.HttpClientTransport; +import org.eclipse.jetty.client.api.Response; +import org.eclipse.jetty.client.api.Result; +import org.eclipse.jetty.server.ConnectionFactory; +import org.eclipse.jetty.server.Request; +import org.eclipse.jetty.server.handler.AbstractHandler; +import org.junit.Assert; +import org.junit.Test; + +public class HttpClientIdleTimeoutTest extends AbstractTest +{ + private long idleTimeout = 1000; + + public HttpClientIdleTimeoutTest(HttpClientTransport httpClientTransport, ConnectionFactory serverConnectionFactory) + { + super(httpClientTransport, serverConnectionFactory); + } + + @Test + public void testClientIdleTimeout() throws Exception + { + start(new AbstractHandler() + { + @Override + public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException + { + baseRequest.setHandled(true); + AsyncContext asyncContext = request.startAsync(); + asyncContext.setTimeout(0); + } + }); + client.stop(); + client.setIdleTimeout(idleTimeout); + client.start(); + + final CountDownLatch latch = new CountDownLatch(1); + client.newRequest("localhost", connector.getLocalPort()).send(new Response.CompleteListener() + { + @Override + public void onComplete(Result result) + { + if (result.isFailed()) + latch.countDown(); + } + }); + + Assert.assertTrue(latch.await(2 * idleTimeout, TimeUnit.MILLISECONDS)); + } + + @Test + public void testRequestIdleTimeout() throws Exception + { + start(new AbstractHandler() + { + @Override + public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException + { + baseRequest.setHandled(true); + AsyncContext asyncContext = request.startAsync(); + asyncContext.setTimeout(0); + } + }); + + final CountDownLatch latch = new CountDownLatch(1); + client.newRequest("localhost", connector.getLocalPort()) + .idleTimeout(idleTimeout, TimeUnit.MILLISECONDS) + .send(new Response.CompleteListener() + { + @Override + public void onComplete(Result result) + { + if (result.isFailed()) + latch.countDown(); + } + }); + + Assert.assertTrue(latch.await(2 * idleTimeout, TimeUnit.MILLISECONDS)); + } +} |