Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimone Bordet2014-05-20 17:44:32 +0000
committerSimone Bordet2014-05-20 20:46:08 +0000
commit4e3118f5b18a0826a276277b8e728333e19eeeee (patch)
treec2c0608a6fb81a20c72f1324ae00dd16c4fa7c28
parent724fb7d6d3443bfb5046bb1a1bed2e2c115e62ea (diff)
downloadorg.eclipse.jetty.project-4e3118f5b18a0826a276277b8e728333e19eeeee.tar.gz
org.eclipse.jetty.project-4e3118f5b18a0826a276277b8e728333e19eeeee.tar.xz
org.eclipse.jetty.project-4e3118f5b18a0826a276277b8e728333e19eeeee.zip
More tests for FastCGIProxyServlet.
-rw-r--r--jetty-fcgi/fcgi-server/src/test/java/org/eclipse/jetty/fcgi/server/proxy/FastCGIProxyServletTest.java52
1 files changed, 48 insertions, 4 deletions
diff --git a/jetty-fcgi/fcgi-server/src/test/java/org/eclipse/jetty/fcgi/server/proxy/FastCGIProxyServletTest.java b/jetty-fcgi/fcgi-server/src/test/java/org/eclipse/jetty/fcgi/server/proxy/FastCGIProxyServletTest.java
index b1a85c191f..6e745e29db 100644
--- a/jetty-fcgi/fcgi-server/src/test/java/org/eclipse/jetty/fcgi/server/proxy/FastCGIProxyServletTest.java
+++ b/jetty-fcgi/fcgi-server/src/test/java/org/eclipse/jetty/fcgi/server/proxy/FastCGIProxyServletTest.java
@@ -20,7 +20,9 @@ package org.eclipse.jetty.fcgi.server.proxy;
import java.io.IOException;
import java.net.URI;
+import java.nio.ByteBuffer;
import java.util.Random;
+import java.util.concurrent.TimeUnit;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
@@ -28,12 +30,16 @@ import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.client.HttpClient;
import org.eclipse.jetty.client.api.ContentResponse;
+import org.eclipse.jetty.client.api.Request;
+import org.eclipse.jetty.client.api.Response;
+import org.eclipse.jetty.client.util.FutureResponseListener;
import org.eclipse.jetty.fcgi.server.ServerFCGIConnectionFactory;
import org.eclipse.jetty.server.HttpConfiguration;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.util.Callback;
import org.junit.After;
import org.junit.Assert;
import org.junit.Test;
@@ -89,7 +95,24 @@ public class FastCGIProxyServletTest
@Test
public void testGETWithSmallResponseContent() throws Exception
{
- final byte[] data = new byte[1024];
+ testGETWithResponseContent(1024, 0);
+ }
+
+ @Test
+ public void testGETWithLargeResponseContent() throws Exception
+ {
+ testGETWithResponseContent(16 * 1024 * 1024, 0);
+ }
+
+ @Test
+ public void testGETWithLargeResponseContentWithSlowClient() throws Exception
+ {
+ testGETWithResponseContent(16 * 1024 * 1024, 1);
+ }
+
+ private void testGETWithResponseContent(int length, final long delay) throws Exception
+ {
+ final byte[] data = new byte[length];
new Random().nextBytes(data);
final String path = "/foo/index.php";
@@ -103,9 +126,30 @@ public class FastCGIProxyServletTest
}
});
- ContentResponse response = client.newRequest("localhost", httpConnector.getLocalPort())
- .path(path)
- .send();
+ Request request = client.newRequest("localhost", httpConnector.getLocalPort())
+ .onResponseContentAsync(new Response.AsyncContentListener()
+ {
+ @Override
+ public void onContent(Response response, ByteBuffer content, Callback callback)
+ {
+ try
+ {
+ if (delay > 0)
+ TimeUnit.MILLISECONDS.sleep(delay);
+ callback.succeeded();
+ }
+ catch (InterruptedException x)
+ {
+ callback.failed(x);
+ }
+ }
+ })
+ .path(path);
+ FutureResponseListener listener = new FutureResponseListener(request, length);
+ request.send(listener);
+
+ ContentResponse response = listener.get(30, TimeUnit.SECONDS);
+
Assert.assertEquals(200, response.getStatus());
Assert.assertArrayEquals(data, response.getContent());
}

Back to the top