Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Bartel2012-11-19 07:47:15 +0000
committerJan Bartel2012-11-19 07:48:03 +0000
commit3642de3b8ae2970b34f5616f45a4c4c69c1e7559 (patch)
tree3f5d071ab623028b4dfd0ab330804f6c554de07d
parent4bd36e3d38acbaab4db6202da27e00aad36b98ad (diff)
downloadorg.eclipse.jetty.project-3642de3b8ae2970b34f5616f45a4c4c69c1e7559.tar.gz
org.eclipse.jetty.project-3642de3b8ae2970b34f5616f45a4c4c69c1e7559.tar.xz
org.eclipse.jetty.project-3642de3b8ae2970b34f5616f45a4c4c69c1e7559.zip
392237 - Port test-integration to jetty-9
-rw-r--r--tests/test-integration/src/test/java/org/eclipse/jetty/test/DigestPostTest.java97
-rw-r--r--tests/test-integration/src/test/java/org/eclipse/jetty/test/support/rawhttp/HttpRequestTester.java103
2 files changed, 103 insertions, 97 deletions
diff --git a/tests/test-integration/src/test/java/org/eclipse/jetty/test/DigestPostTest.java b/tests/test-integration/src/test/java/org/eclipse/jetty/test/DigestPostTest.java
index 4b2d38ee1c..6ad029d4a8 100644
--- a/tests/test-integration/src/test/java/org/eclipse/jetty/test/DigestPostTest.java
+++ b/tests/test-integration/src/test/java/org/eclipse/jetty/test/DigestPostTest.java
@@ -18,18 +18,25 @@
package org.eclipse.jetty.test;
-import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.Socket;
import java.security.MessageDigest;
import java.util.Collections;
+import java.util.concurrent.TimeUnit;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.jetty.client.api.AuthenticationStore;
+import org.eclipse.jetty.client.api.ContentResponse;
+import org.eclipse.jetty.client.api.Request;
+import org.eclipse.jetty.client.util.BytesContentProvider;
+import org.eclipse.jetty.client.util.DigestAuthentication;
+import org.eclipse.jetty.client.util.StringContentProvider;
+import org.eclipse.jetty.http.HttpMethod;
import org.eclipse.jetty.security.ConstraintMapping;
import org.eclipse.jetty.security.ConstraintSecurityHandler;
import org.eclipse.jetty.security.HashLoginService;
@@ -217,68 +224,60 @@ public class DigestPostTest
@Test
public void testServerWithHttpClientStringContent() throws Exception
{
+ String srvUrl = "http://127.0.0.1:" + ((NetworkConnector)_server.getConnectors()[0]).getLocalPort() + "/test/";
HttpClient client = new HttpClient();
- client.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
- client.setRealmResolver(new SimpleRealmResolver(new TestRealm()));
- client.start();
- String srvUrl = "http://127.0.0.1:" + _server.getConnectors()[0].getLocalPort() + "/test/";
-
- ContentExchange ex = new ContentExchange();
- ex.setMethod(HttpMethods.POST);
- ex.setURL(srvUrl);
- ex.setRequestContent(new ByteArrayBuffer(__message,"UTF-8"));
-
- _received=null;
- client.send(ex);
- ex.waitForDone();
-
- Assert.assertEquals(__message,_received);
- Assert.assertEquals(200,ex.getResponseStatus());
+ try
+ {
+ AuthenticationStore authStore = client.getAuthenticationStore();
+ authStore.addAuthentication(new DigestAuthentication(srvUrl, "test", "testuser", "password"));
+ client.start();
+
+ Request request = client.newRequest(srvUrl);
+ request.method(HttpMethod.POST);
+ request.content(new BytesContentProvider(__message.getBytes("UTF8")));
+ _received=null;
+ ContentResponse response = request.send().get(5, TimeUnit.SECONDS);
+ Assert.assertEquals(__message,_received);
+ Assert.assertEquals(200,response.getStatus());
+ }
+ finally
+ {
+ client.stop();
+ }
}
-
+
@Test
public void testServerWithHttpClientStreamContent() throws Exception
{
+ String srvUrl = "http://127.0.0.1:" + ((NetworkConnector)_server.getConnectors()[0]).getLocalPort() + "/test/";
HttpClient client = new HttpClient();
- client.setConnectorType(HttpClient.CONNECTOR_SELECT_CHANNEL);
- client.setRealmResolver(new SimpleRealmResolver(new TestRealm()));
- client.start();
-
- String srvUrl = "http://127.0.0.1:" + _server.getConnectors()[0].getLocalPort() + "/test/";
-
- ContentExchange ex = new ContentExchange();
- ex.setMethod(HttpMethods.POST);
- ex.setURL(srvUrl);
- ex.setRequestContentSource(new BufferedInputStream(new FileInputStream("src/test/resources/message.txt")));
-
- _received=null;
- client.send(ex);
- ex.waitForDone();
-
- String sent = IO.toString(new FileInputStream("src/test/resources/message.txt"));
- Assert.assertEquals(sent,_received);
- Assert.assertEquals(200,ex.getResponseStatus());
- }
-
- public static class TestRealm implements Realm
- {
- public String getPrincipal()
+ try
{
- return "testuser";
- }
+ AuthenticationStore authStore = client.getAuthenticationStore();
+ authStore.addAuthentication(new DigestAuthentication(srvUrl, "test", "testuser", "password"));
+ client.start();
- public String getId()
- {
- return "test";
- }
+ String sent = IO.toString(new FileInputStream("src/test/resources/message.txt"));
+
+ Request request = client.newRequest(srvUrl);
+ request.method(HttpMethod.POST);
+ request.content(new StringContentProvider(sent));
+ _received=null;
+ ContentResponse response = request.send().get(5, TimeUnit.SECONDS);
+
+ Assert.assertEquals(200,response.getStatus());
+ Assert.assertEquals(sent,_received);
- public String getCredentials()
+ }
+ finally
{
- return "password";
+ client.stop();
}
}
+
+
public static class PostServlet extends HttpServlet
{
private static final long serialVersionUID = 1L;
diff --git a/tests/test-integration/src/test/java/org/eclipse/jetty/test/support/rawhttp/HttpRequestTester.java b/tests/test-integration/src/test/java/org/eclipse/jetty/test/support/rawhttp/HttpRequestTester.java
index c37d79b7d1..eb32f29e76 100644
--- a/tests/test-integration/src/test/java/org/eclipse/jetty/test/support/rawhttp/HttpRequestTester.java
+++ b/tests/test-integration/src/test/java/org/eclipse/jetty/test/support/rawhttp/HttpRequestTester.java
@@ -18,20 +18,18 @@
package org.eclipse.jetty.test.support.rawhttp;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.nio.ByteBuffer;
import javax.servlet.http.Cookie;
import org.eclipse.jetty.http.HttpFields;
import org.eclipse.jetty.http.HttpGenerator;
-import org.eclipse.jetty.http.HttpHeaders;
-import org.eclipse.jetty.http.HttpVersions;
+import org.eclipse.jetty.http.HttpVersion;
import org.eclipse.jetty.http.MimeTypes;
-import org.eclipse.jetty.io.Buffer;
-import org.eclipse.jetty.io.ByteArrayBuffer;
-import org.eclipse.jetty.io.SimpleBuffers;
-import org.eclipse.jetty.io.View;
-import org.eclipse.jetty.io.bio.StringEndPoint;
+import org.eclipse.jetty.util.BufferUtil;
+
/**
* Assist in Generating Proper Raw HTTP Requests. If you want ultimate control
@@ -162,16 +160,6 @@ public class HttpRequestTester
fields.addDateField(name,date);
}
- /**
- * @param name
- * @param value
- * @see org.eclipse.jetty.http.HttpFields#addLongField(java.lang.String,
- * long)
- */
- public void addLongHeader(String name, long value)
- {
- fields.addLongField(name,value);
- }
/**
* @param cookie
@@ -185,44 +173,63 @@ public class HttpRequestTester
public String generate() throws IOException
{
- charset = defaultCharset;
- Buffer contentTypeBuffer = fields.get(HttpHeaders.CONTENT_TYPE_BUFFER);
- if (contentTypeBuffer != null)
+
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ ByteBuffer header = null;
+ ByteBuffer chunk = null;
+ ByteBuffer content = null;
+ HttpVersion httpVersion = null;
+ if (version == null)
{
- String calcCharset = MimeTypes.getCharsetFromContentType(contentTypeBuffer);
- if (calcCharset != null)
- {
- this.charset = calcCharset;
- }
+ httpVersion = HttpVersion.HTTP_1_1;
}
-
- Buffer bb = new ByteArrayBuffer(32 * 1024 + (content != null?content.length:0));
- Buffer sb = new ByteArrayBuffer(4 * 1024);
- StringEndPoint endp = new StringEndPoint(charset);
- HttpGenerator generator = new HttpGenerator(new SimpleBuffers(sb,bb),endp);
-
- if (method != null)
+ else
{
- generator.setRequest(getMethod(),getURI());
- if (version == null)
- {
- generator.setVersion(HttpVersions.HTTP_1_1_ORDINAL);
- }
- else
- {
- generator.setVersion(HttpVersions.CACHE.getOrdinal(HttpVersions.CACHE.lookup(version)));
- }
-
- generator.completeHeader(fields,false);
+ httpVersion = httpVersion.fromString(version);
+ }
+
+ HttpGenerator.RequestInfo info = new HttpGenerator.RequestInfo(httpVersion,fields,0,method,uri);
- if (content != null)
+ HttpGenerator generator = new HttpGenerator();
+ loop: while(!generator.isEnd())
+ {
+ HttpGenerator.Result result = generator.generateRequest(info, header, chunk, content, true);
+ switch(result)
{
- generator.addContent(new View(new ByteArrayBuffer(content)),false);
+ case NEED_HEADER:
+ header=BufferUtil.allocate(8192);
+ continue;
+
+ case NEED_CHUNK:
+ chunk=BufferUtil.allocate(HttpGenerator.CHUNK_SIZE);
+ continue;
+
+ case NEED_INFO:
+ throw new IllegalStateException();
+
+ case FLUSH:
+ if (BufferUtil.hasContent(header))
+ {
+ out.write(BufferUtil.toArray(header));
+ BufferUtil.clear(header);
+ }
+ if (BufferUtil.hasContent(chunk))
+ {
+ out.write(BufferUtil.toArray(chunk));
+ BufferUtil.clear(chunk);
+ }
+ if (BufferUtil.hasContent(content))
+ {
+ out.write(BufferUtil.toArray(content));
+ BufferUtil.clear(content);
+ }
+ break;
+
+ case SHUTDOWN_OUT:
+ break loop;
}
}
- generator.complete();
- generator.flushBuffer();
- return endp.getOutput();
+ return out.toString();
}
}

Back to the top