Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimone Bordet2015-02-09 15:53:22 +0000
committerSimone Bordet2015-02-09 15:53:22 +0000
commit3855024bbadd40bf8faa8fbb9d60fb98f5fd2289 (patch)
tree1ba314406620b3096f9690c5d4feb52fc5f3f597 /tests/test-http-client-transport
parentf974c743295d2be4d72eb03a39837e04366c6526 (diff)
downloadorg.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.java107
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));
+ }
+}

Back to the top