You are viewing a plain text version of this content. The canonical link for it is here.
Posted to awf-commits@incubator.apache.org by jm...@apache.org on 2011/08/20 23:15:10 UTC
svn commit: r1159923 - in /incubator/deft/sandbox/src:
main/java/org/apache/deft/configuration/ main/java/org/apache/deft/web/
test/java/org/apache/deft/configuration/ test/java/org/apache/deft/web/
Author: jmeehan
Date: Sat Aug 20 23:15:10 2011
New Revision: 1159923
URL: http://svn.apache.org/viewvc?rev=1159923&view=rev
Log:
DEFT-182 - DeftSystemTest in place again.
Added:
incubator/deft/sandbox/src/test/java/org/apache/deft/web/DeftSystemTestHandlers.java (with props)
Modified:
incubator/deft/sandbox/src/main/java/org/apache/deft/configuration/AnnotationsScanner.java
incubator/deft/sandbox/src/main/java/org/apache/deft/web/HttpServer.java
incubator/deft/sandbox/src/test/java/org/apache/deft/configuration/AnnotationsScannerTest.java
incubator/deft/sandbox/src/test/java/org/apache/deft/web/DeftSystemTest.java
incubator/deft/sandbox/src/test/java/org/apache/deft/web/HttpServerTest.java
Modified: incubator/deft/sandbox/src/main/java/org/apache/deft/configuration/AnnotationsScanner.java
URL: http://svn.apache.org/viewvc/incubator/deft/sandbox/src/main/java/org/apache/deft/configuration/AnnotationsScanner.java?rev=1159923&r1=1159922&r2=1159923&view=diff
==============================================================================
--- incubator/deft/sandbox/src/main/java/org/apache/deft/configuration/AnnotationsScanner.java (original)
+++ incubator/deft/sandbox/src/main/java/org/apache/deft/configuration/AnnotationsScanner.java Sat Aug 20 23:15:10 2011
@@ -34,6 +34,8 @@ import org.apache.deft.web.handler.Reque
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import com.google.common.base.Strings;
+
/**
* Provides functionality to retrieve known <code>Annotation</code> types and
* associated values.
@@ -59,6 +61,11 @@ public class AnnotationsScanner {
*/
public Map<String, RequestHandler> findHandlers(String handlerPackage) {
+ if (Strings.isNullOrEmpty(handlerPackage)) {
+ logger.warn("No RequestHandler package defined");
+ return pathHandlers;
+ }
+
List<Class<?>> classes = findClasses(handlerPackage);
for (Class<?> clazz : classes) {
if (clazz.isAnnotationPresent(Path.class)) {
Modified: incubator/deft/sandbox/src/main/java/org/apache/deft/web/HttpServer.java
URL: http://svn.apache.org/viewvc/incubator/deft/sandbox/src/main/java/org/apache/deft/web/HttpServer.java?rev=1159923&r1=1159922&r2=1159923&view=diff
==============================================================================
--- incubator/deft/sandbox/src/main/java/org/apache/deft/web/HttpServer.java (original)
+++ incubator/deft/sandbox/src/main/java/org/apache/deft/web/HttpServer.java Sat Aug 20 23:15:10 2011
@@ -35,7 +35,6 @@ import org.apache.deft.web.http.HttpProt
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import com.google.common.base.Strings;
import com.google.common.collect.Lists;
public class HttpServer {
@@ -52,10 +51,6 @@ public class HttpServer {
public HttpServer(Configuration configuration) {
- if (Strings.isNullOrEmpty(configuration.getHandlerPackage())) {
- logger.warn("No RequestHandler found under package [" + configuration.getHandlerPackage() + "]");
- }
-
application = createApplication(configuration.getHandlerPackage());
application.setStaticContentDir(configuration.getStaticDirectory());
application.setConfiguration(configuration);
Modified: incubator/deft/sandbox/src/test/java/org/apache/deft/configuration/AnnotationsScannerTest.java
URL: http://svn.apache.org/viewvc/incubator/deft/sandbox/src/test/java/org/apache/deft/configuration/AnnotationsScannerTest.java?rev=1159923&r1=1159922&r2=1159923&view=diff
==============================================================================
--- incubator/deft/sandbox/src/test/java/org/apache/deft/configuration/AnnotationsScannerTest.java (original)
+++ incubator/deft/sandbox/src/test/java/org/apache/deft/configuration/AnnotationsScannerTest.java Sat Aug 20 23:15:10 2011
@@ -48,4 +48,13 @@ public class AnnotationsScannerTest {
assertEquals(0, handlers.size());
}
+
+ @Test
+ public void testFindHandlersForEmptyPath() {
+
+ AnnotationsScanner scanner = new AnnotationsScanner();
+ Map<String, RequestHandler> handlers = scanner.findHandlers(null);
+
+ assertEquals(0, handlers.size());
+ }
}
Modified: incubator/deft/sandbox/src/test/java/org/apache/deft/web/DeftSystemTest.java
URL: http://svn.apache.org/viewvc/incubator/deft/sandbox/src/test/java/org/apache/deft/web/DeftSystemTest.java?rev=1159923&r1=1159922&r2=1159923&view=diff
==============================================================================
--- incubator/deft/sandbox/src/test/java/org/apache/deft/web/DeftSystemTest.java (original)
+++ incubator/deft/sandbox/src/test/java/org/apache/deft/web/DeftSystemTest.java Sat Aug 20 23:15:10 2011
@@ -19,12 +19,12 @@
*/
package org.apache.deft.web;
+import static org.apache.deft.web.DeftSystemTestHandlers.expectedPayload;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.io.BufferedReader;
-import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -43,16 +43,31 @@ import java.util.concurrent.ExecutorServ
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
-import org.apache.deft.annotation.Asynchronous;
-import org.apache.deft.annotation.Authenticated;
import org.apache.deft.configuration.Configuration;
-import org.apache.deft.example.keyvalue.KeyValueStore;
-import org.apache.deft.example.keyvalue.KeyValueStoreClient;
import org.apache.deft.io.IOLoop;
import org.apache.deft.io.timeout.Timeout;
+import org.apache.deft.web.DeftSystemTestHandlers.AsyncThrowingHttpExceptionRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.AuthenticatedRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.CapturingRequestRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.ChunkedRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.DeleteRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.EchoingPostBodyRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.ExampleRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.KeyValueStoreExampleRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.MovedPermanentlyRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.NoBodyRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.PostRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.PutRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.QueryParamsRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.ThrowingHttpExceptionRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.UserDefinedStaticContentHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.WFFFWFFFRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.WFWFRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.WRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.WWFWRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers.WWRequestHandler;
+import org.apache.deft.web.DeftSystemTestHandlers._450KBResponseEntityRequestHandler;
import org.apache.deft.web.handler.RequestHandler;
-import org.apache.deft.web.http.HttpException;
-import org.apache.deft.web.http.HttpRequest;
import org.apache.deft.web.http.client.AsynchronousHttpClient;
import org.apache.deft.web.http.protocol.HttpStatus;
import org.apache.http.Header;
@@ -72,254 +87,23 @@ import org.apache.http.params.HttpParams
import org.apache.http.params.HttpProtocolParams;
import org.junit.AfterClass;
import org.junit.BeforeClass;
-import org.junit.Ignore;
import org.junit.Test;
import com.ning.http.client.AsyncCompletionHandler;
import com.ning.http.client.AsyncHttpClient;
import com.ning.http.client.Response;
-@Ignore
+/**
+ * General tests of server operation.
+ */
public class DeftSystemTest {
private static final int PORT = 8081;
- public static final String expectedPayload = "hello test";
-
- private static class ExampleRequestHandler extends RequestHandler {
- @Override
- public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write(expectedPayload);
- }
- }
-
- private static class WRequestHandler extends RequestHandler {
- @Override
- public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write("1");
- }
- }
-
- private static class WWRequestHandler extends RequestHandler {
- @Override
- public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write("1");
- response.write("2");
- }
- }
-
- private static class WWFWRequestHandler extends RequestHandler {
- @Override
- public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write("1");
- response.write("2");
- response.flush();
- response.write("3");
- }
- }
-
- private static class WFWFRequestHandler extends RequestHandler {
- @Override
- public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write("1");
- response.flush();
- response.write("2");
- response.flush();
- }
- }
-
- private static class WFFFWFFFRequestHandler extends RequestHandler {
- @Override
- public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write("1");
- response.flush();
- response.flush();
- response.flush();
- response.write("2");
- response.flush();
- response.flush();
- response.flush();
- }
- }
-
- private static class DeleteRequestHandler extends RequestHandler {
- @Override
- public void delete(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write("del");
- response.flush();
- response.write("ete");
- response.flush();
- }
- }
-
- private static class PostRequestHandler extends RequestHandler {
- @Override
- public void post(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write("po");
- response.flush();
- response.write("st");
- response.flush();
- }
- }
-
- private static class PutRequestHandler extends RequestHandler {
- @Override
- public void put(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write("p");
- response.flush();
- response.write("ut");
- response.flush();
- }
- }
-
- private static class CapturingRequestRequestHandler extends RequestHandler {
- @Override
- public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write(request.getRequestedPath());
- }
- }
-
- private static class ThrowingHttpExceptionRequestHandler extends RequestHandler {
- @Override
- public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- throw new HttpException(HttpStatus.SERVER_ERROR_INTERNAL_SERVER_ERROR, "exception message");
- }
- }
-
- private static class AsyncThrowingHttpExceptionRequestHandler extends RequestHandler {
- @Asynchronous
- @Override
- public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- throw new HttpException(HttpStatus.SERVER_ERROR_INTERNAL_SERVER_ERROR, "exception message");
- }
- }
-
- public static class NoBodyRequestHandler extends RequestHandler {
- @Override
- public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.setStatus(HttpStatus.SUCCESS_ACCEPTED);
- }
- }
-
- public static class MovedPermanentlyRequestHandler extends RequestHandler {
- @Override
- public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.setStatus(HttpStatus.REDIRECTION_MOVED_PERMANENTLY);
- response.setHeader("Location", "/");
- }
- }
-
- public static class UserDefinedStaticContentHandler extends RequestHandler {
- @Override
- public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write(new File("src/test/resources/test.txt"));
- }
- }
-
- public static class KeyValueStoreExampleRequestHandler extends RequestHandler {
-
- private final KeyValueStoreClient client = new KeyValueStoreClient(KeyValueStore.HOST, KeyValueStore.PORT);
-
- public KeyValueStoreExampleRequestHandler() {
- new KeyValueStore().start();
- client.connect();
- }
-
- @Override
- @Asynchronous
- public void get(HttpRequest request, final org.apache.deft.web.http.HttpResponse response) {
- client.get("deft", new AsyncResult<byte[]>() {
- @Override
- public void onFailure(Throwable caught) { /* ignore */
- }
-
- @Override
- public void onSuccess(byte[] result) {
- response.write(new String(result)).finish();
- }
- });
- }
-
- }
-
- public static class _450KBResponseEntityRequestHandler extends RequestHandler {
- public static String entity;
-
- static {
- int iterations = 450 * 1024;
- StringBuilder sb = new StringBuilder();
- for (int i = 1; i <= iterations; i++) {
- sb.append("a");
- }
- entity = sb.toString();
- }
-
- @Override
- public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write(entity);
- }
- }
-
- public static class EchoingPostBodyRequestHandler extends RequestHandler {
- @Override
- public void post(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write(request.getBody());
- }
- }
-
- public static class AuthenticatedRequestHandler extends RequestHandler {
- @Override
- @Authenticated
- public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write(request.getHeader("user"));
- }
-
- @Override
- public String getCurrentUser(HttpRequest request) {
- return request.getHeader("user");
- }
- }
-
- private static class QueryParamsRequestHandler extends RequestHandler {
- @Override
- public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.write(request.getParameter("key1") + " " + request.getParameter("key2"));
- }
- }
-
- private static class ChunkedRequestHandler extends RequestHandler {
- @Override
- public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
- response.setHeader("Transfer-Encoding", "chunked");
- sleep(300);
-
- response.write("1\r\n");
- response.write("a\r\n").flush();
- sleep(300);
-
- response.write("5\r\n");
- response.write("roger\r\n").flush();
- sleep(300);
-
- response.write("2\r\n");
- response.write("ab\r\n").flush();
- sleep(300);
-
- response.write("0\r\n");
- response.write("\r\n");
- }
-
- private static void sleep(long ms) {
- try {
- Thread.sleep(ms);
- } catch (InterruptedException ignore) { /* nop */
- }
- }
- }
-
@BeforeClass
public static void setup() {
- Map<String, RequestHandler> reqHandlers = new HashMap<String, RequestHandler>();
+
+ final Map<String, RequestHandler> reqHandlers = new HashMap<String, RequestHandler>();
reqHandlers.put("/", new ExampleRequestHandler());
reqHandlers.put("/w", new WRequestHandler());
reqHandlers.put("/ww", new WWRequestHandler());
@@ -342,18 +126,21 @@ public class DeftSystemTest {
reqHandlers.put("/query_params", new QueryParamsRequestHandler());
reqHandlers.put("/chunked", new ChunkedRequestHandler());
- final Application application = new Application(reqHandlers);
- application.setStaticContentDir("src/test/resources");
-
- // start deft instance from a new thread because the start invocation is
- // blocking
- // (invoking thread will be I/O loop thread)
+ /*
+ * Start server instance from a new thread because the start invocation
+ * is blocking (invoking thread will be I/O loop thread).
+ */
new Thread(new Runnable() {
@Override
public void run() {
- HttpServer server = new HttpServer(new Configuration()) {
+
+ Configuration configuration = new Configuration();
+ configuration.setCreateETags(true);
+ configuration.setStaticDirectory("src/test/resources");
+
+ HttpServer server = new HttpServer(configuration) {
protected Application createApplication(String packageName) {
- return application;
+ return new Application(reqHandlers);
}
};
server.listen(PORT);
@@ -364,6 +151,7 @@ public class DeftSystemTest {
@AfterClass
public static void tearDown() throws InterruptedException {
+
IOLoop.INSTANCE.addCallback(new AsyncCallback() {
@Override
public void onCallback() {
@@ -378,32 +166,6 @@ public class DeftSystemTest {
doSimpleGetRequest();
}
- private void doSimpleGetRequest() throws ClientProtocolException, IOException {
- List<Header> headers = new LinkedList<Header>();
- headers.add(new BasicHeader("Connection", "Close"));
- HttpParams params = new BasicHttpParams();
- params.setParameter("http.default-headers", headers);
-
- HttpClient httpclient = new DefaultHttpClient(params);
- HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/");
- HttpResponse response = httpclient.execute(httpget);
- List<String> expectedHeaders = Arrays.asList(new String[] { "Server", "Date", "Content-Length", "Etag",
- "Connection" });
-
- assertEquals(200, response.getStatusLine().getStatusCode());
- assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
- assertEquals("OK", response.getStatusLine().getReasonPhrase());
-
- assertEquals(expectedHeaders.size(), response.getAllHeaders().length);
-
- for (String header : expectedHeaders) {
- assertTrue(response.getFirstHeader(header) != null);
- }
-
- assertEquals(expectedPayload, convertStreamToString(response.getEntity().getContent()).trim());
- assertEquals(expectedPayload.length() + "", response.getFirstHeader("Content-Length").getValue());
- }
-
/**
* Test a RH that does a single write
*
@@ -412,8 +174,10 @@ public class DeftSystemTest {
*/
@Test
public void wTest() throws ClientProtocolException, IOException {
+
List<Header> headers = new LinkedList<Header>();
headers.add(new BasicHeader("Connection", "Close"));
+
HttpParams params = new BasicHttpParams();
params.setParameter("http.default-headers", headers);
@@ -422,9 +186,10 @@ public class DeftSystemTest {
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("1", payLoad);
assertEquals(5, response.getAllHeaders().length);
@@ -433,8 +198,10 @@ public class DeftSystemTest {
@Test
public void wwTest() throws ClientProtocolException, IOException {
+
List<Header> headers = new LinkedList<Header>();
headers.add(new BasicHeader("Connection", "Close"));
+
HttpParams params = new BasicHttpParams();
params.setParameter("http.default-headers", headers);
@@ -443,9 +210,10 @@ public class DeftSystemTest {
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("12", payLoad);
assertEquals(5, response.getAllHeaders().length);
@@ -454,8 +222,10 @@ public class DeftSystemTest {
@Test
public void wwfwTest() throws ClientProtocolException, IOException {
+
List<Header> headers = new LinkedList<Header>();
headers.add(new BasicHeader("Connection", "Close"));
+
HttpParams params = new BasicHttpParams();
params.setParameter("http.default-headers", headers);
@@ -464,9 +234,10 @@ public class DeftSystemTest {
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("123", payLoad);
assertEquals(3, response.getAllHeaders().length);
@@ -474,8 +245,10 @@ public class DeftSystemTest {
@Test
public void wfwfTest() throws ClientProtocolException, IOException {
+
List<Header> headers = new LinkedList<Header>();
headers.add(new BasicHeader("Connection", "Close"));
+
HttpParams params = new BasicHttpParams();
params.setParameter("http.default-headers", headers);
@@ -484,9 +257,10 @@ public class DeftSystemTest {
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("12", payLoad);
assertEquals(3, response.getAllHeaders().length);
@@ -494,8 +268,10 @@ public class DeftSystemTest {
@Test
public void wfffwfffTest() throws ClientProtocolException, IOException {
+
List<Header> headers = new LinkedList<Header>();
headers.add(new BasicHeader("Connection", "Close"));
+
HttpParams params = new BasicHttpParams();
params.setParameter("http.default-headers", headers);
@@ -504,9 +280,10 @@ public class DeftSystemTest {
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("12", payLoad);
assertEquals(3, response.getAllHeaders().length);
@@ -514,8 +291,10 @@ public class DeftSystemTest {
@Test
public void deleteTest() throws ClientProtocolException, IOException {
+
List<Header> headers = new LinkedList<Header>();
headers.add(new BasicHeader("Connection", "Close"));
+
HttpParams params = new BasicHttpParams();
params.setParameter("http.default-headers", headers);
@@ -524,17 +303,20 @@ public class DeftSystemTest {
HttpResponse response = httpclient.execute(httpdelete);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("delete", payLoad);
}
@Test
public void PostTest() throws ClientProtocolException, IOException {
+
List<Header> headers = new LinkedList<Header>();
headers.add(new BasicHeader("Connection", "Close"));
+
HttpParams params = new BasicHttpParams();
params.setParameter("http.default-headers", headers);
@@ -543,17 +325,20 @@ public class DeftSystemTest {
HttpResponse response = httpclient.execute(httppost);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("post", payLoad);
}
@Test
public void putTest() throws ClientProtocolException, IOException {
+
List<Header> headers = new LinkedList<Header>();
headers.add(new BasicHeader("Connection", "Close"));
+
HttpParams params = new BasicHttpParams();
params.setParameter("http.default-headers", headers);
@@ -562,17 +347,20 @@ public class DeftSystemTest {
HttpResponse response = httpclient.execute(httpput);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("put", payLoad);
}
@Test
public void capturingTest() throws ClientProtocolException, IOException {
+
List<Header> headers = new LinkedList<Header>();
headers.add(new BasicHeader("Connection", "Close"));
+
HttpParams params = new BasicHttpParams();
params.setParameter("http.default-headers", headers);
@@ -581,17 +369,20 @@ public class DeftSystemTest {
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("/capturing/1911", payLoad);
}
@Test
public void erroneousCapturingTest() throws ClientProtocolException, IOException {
+
List<Header> headers = new LinkedList<Header>();
headers.add(new BasicHeader("Connection", "Close"));
+
HttpParams params = new BasicHttpParams();
params.setParameter("http.default-headers", headers);
@@ -600,15 +391,17 @@ public class DeftSystemTest {
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(404, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.CLIENT_ERROR_NOT_FOUND.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("Not Found", response.getStatusLine().getReasonPhrase());
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("Requested URL: /capturing/r1911 was not found", payLoad);
}
@Test
public void simpleConcurrentGetRequestTest() {
+
int nThreads = 8;
int nRequests = 2048;
final CountDownLatch latch = new CountDownLatch(nRequests);
@@ -641,6 +434,7 @@ public class DeftSystemTest {
@Test
public void keepAliveRequestTest() throws ClientProtocolException, IOException {
+
List<Header> headers = new LinkedList<Header>();
headers.add(new BasicHeader("Connection", "Keep-Alive"));
HttpParams params = new BasicHttpParams();
@@ -654,20 +448,23 @@ public class DeftSystemTest {
}
private void doKeepAliveRequestTest(DefaultHttpClient httpclient) throws IOException, ClientProtocolException {
+
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/");
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
assertEquals(5, response.getAllHeaders().length);
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals(expectedPayload, payLoad);
}
@Test
public void HTTP_1_0_noConnectionHeaderTest() throws ClientProtocolException, IOException {
+
HttpParams params = new BasicHttpParams();
HttpProtocolParams.setVersion(params, new ProtocolVersion("HTTP", 1, 0));
DefaultHttpClient httpclient = new DefaultHttpClient();
@@ -675,67 +472,75 @@ public class DeftSystemTest {
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
assertEquals(5, response.getAllHeaders().length);
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals(expectedPayload, payLoad);
}
@Test
public void httpExceptionTest() throws ClientProtocolException, IOException {
+
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/throw");
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(500, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SERVER_ERROR_INTERNAL_SERVER_ERROR.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("Internal Server Error", response.getStatusLine().getReasonPhrase());
assertEquals(5, response.getAllHeaders().length);
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("exception message", payLoad);
}
@Test
public void asyncHttpExceptionTest() throws ClientProtocolException, IOException {
+
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/async_throw");
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(500, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SERVER_ERROR_INTERNAL_SERVER_ERROR.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("Internal Server Error", response.getStatusLine().getReasonPhrase());
assertEquals(5, response.getAllHeaders().length);
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("exception message", payLoad);
}
@Test
public void staticFileRequestTest() throws ClientProtocolException, IOException {
+
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/src/test/resources/test.txt");
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
assertEquals(7, response.getAllHeaders().length);
+
String payLoad = convertStreamToString(response.getEntity().getContent()).trim();
assertEquals("test.txt", payLoad);
}
@Test
public void pictureStaticFileRequestTest() throws ClientProtocolException, IOException {
+
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/src/test/resources/n792205362_2067.jpg");
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
assertEquals(7, response.getAllHeaders().length);
@@ -746,12 +551,13 @@ public class DeftSystemTest {
@Test
public void pictureStaticLargeFileRequestTest() throws ClientProtocolException, IOException {
+
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/src/test/resources/f4_impact_1_original.jpg");
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
assertEquals(7, response.getAllHeaders().length);
@@ -766,12 +572,13 @@ public class DeftSystemTest {
@Test
public void noBodyRequest() throws ClientProtocolException, IOException {
+
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/no_body");
HttpResponse response = httpclient.execute(httpget);
List<String> expectedHeaders = Arrays.asList(new String[] { "Server", "Date", "Content-Length", "Connection" });
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
@@ -787,13 +594,14 @@ public class DeftSystemTest {
@Test
public void movedPermanentlyRequest() throws ClientProtocolException, IOException {
+
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/moved_perm");
HttpResponse response = httpclient.execute(httpget);
List<String> expectedHeaders = Arrays.asList(new String[] { "Server", "Date", "Content-Length", "Connection",
"Etag" });
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
@@ -809,6 +617,7 @@ public class DeftSystemTest {
@Test
public void sendGarbageTest() throws IOException {
+
InetSocketAddress socketAddress = new InetSocketAddress(PORT);
SocketChannel channel = SocketChannel.open(socketAddress);
channel.write(ByteBuffer.wrap(new byte[] { 1, 1, 1, 1 } // garbage
@@ -818,13 +627,13 @@ public class DeftSystemTest {
@Test
public void userDefinedStaticContentHandlerTest() throws ClientProtocolException, IOException {
- // /static_file_handler
+
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/static_file_handler");
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
assertEquals(4, response.getAllHeaders().length);
@@ -833,6 +642,7 @@ public class DeftSystemTest {
@Test
public void timeoutTest() throws InterruptedException {
+
long now = System.currentTimeMillis();
final CountDownLatch latch = new CountDownLatch(5);
final AsyncCallback cb = new AsyncCallback() {
@@ -882,12 +692,13 @@ public class DeftSystemTest {
@Test
public void keyValueStoreClientTest() throws ClientProtocolException, IOException {
+
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/keyvalue");
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
assertEquals(5, response.getAllHeaders().length);
@@ -898,6 +709,7 @@ public class DeftSystemTest {
// ning === http://github.com/ning/async-http-client
@Test
public void doSimpleAsyncRequestTestWithNing() throws IOException, InterruptedException {
+
int iterations = 100;
final CountDownLatch latch = new CountDownLatch(iterations);
AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
@@ -914,7 +726,7 @@ public class DeftSystemTest {
{
List<String> expectedHeaders = Arrays.asList(new String[] { "Server", "Date",
"Content-Length", "Etag", "Connection" });
- assertEquals(200, response.getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusCode());
assertEquals(expectedHeaders.size(), response.getHeaders().size());
for (String header : expectedHeaders) {
assertTrue(response.getHeader(header) != null);
@@ -982,12 +794,13 @@ public class DeftSystemTest {
@Test
public void _450KBEntityTest() throws ClientProtocolException, IOException {
+
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/450kb_body");
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
assertEquals(5, response.getAllHeaders().length);
@@ -1001,6 +814,7 @@ public class DeftSystemTest {
@Test
public void smallHttpPostBodyWithUnusualCharactersTest() throws ClientProtocolException, IOException {
+
final String body = "Räger Schildmäijår";
DefaultHttpClient httpclient = new DefaultHttpClient();
@@ -1011,7 +825,7 @@ public class DeftSystemTest {
HttpResponse response = httpclient.execute(httppost);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
assertEquals(5, response.getAllHeaders().length);
@@ -1021,6 +835,7 @@ public class DeftSystemTest {
@Test
public void smallHttpPostBodyTest() throws ClientProtocolException, IOException, InterruptedException {
+
final String body = "Roger Schildmeijer";
final CountDownLatch latch = new CountDownLatch(1);
AsyncHttpClient asyncHttpClient = new AsyncHttpClient();
@@ -1030,7 +845,7 @@ public class DeftSystemTest {
@Override
public Response onCompleted(Response response) throws Exception {
assertNotNull(response);
- assertEquals(200, response.getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusCode());
assertEquals("OK", response.getStatusText());
assertEquals(5, response.getHeaders().size());
String payLoad = response.getResponseBody();
@@ -1050,6 +865,7 @@ public class DeftSystemTest {
@Test
public void largeHttpPostBodyTest() throws ClientProtocolException, IOException, InterruptedException {
+
String body = "Roger Schildmeijer: 0\n";
for (int i = 1; i <= 1000; i++) {
body += "Roger Schildmeijer: " + i + "\n";
@@ -1063,7 +879,7 @@ public class DeftSystemTest {
@Override
public Response onCompleted(Response response) throws Exception {
assertNotNull(response);
- assertEquals(200, response.getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusCode());
assertEquals("OK", response.getStatusText());
assertEquals(5, response.getHeaders().size());
String payLoad = response.getResponseBody();
@@ -1083,13 +899,14 @@ public class DeftSystemTest {
@Test
public void authenticatedRequestHandlerTest() throws ClientProtocolException, IOException {
+
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/authenticated");
httpget.setHeader("user", "Roger Schildmeijer");
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
assertEquals(5, response.getAllHeaders().length);
@@ -1099,13 +916,14 @@ public class DeftSystemTest {
@Test
public void notAuthenticatedRequestHandlerTest() throws ClientProtocolException, IOException {
+
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/authenticated");
httpget.setHeader("wrong_header", "Roger Schildmeijer");
HttpResponse response = httpclient.execute(httpget);
assertNotNull(response);
- assertEquals(403, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.CLIENT_ERROR_FORBIDDEN.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("Forbidden", response.getStatusLine().getReasonPhrase());
assertEquals(5, response.getAllHeaders().length);
@@ -1115,13 +933,14 @@ public class DeftSystemTest {
@Test
public void queryParamsTest() throws ClientProtocolException, IOException {
+
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/query_params?key1=value1&key2=value2");
HttpResponse response = httpclient.execute(httpget);
List<String> expectedHeaders = Arrays.asList(new String[] { "Server", "Date", "Content-Length", "Etag",
"Connection" });
- assertEquals(200, response.getStatusLine().getStatusCode());
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
assertEquals("OK", response.getStatusLine().getReasonPhrase());
@@ -1138,7 +957,11 @@ public class DeftSystemTest {
@Test
public void multipleStartStopCombinations() throws InterruptedException {
- final HttpServer server = new HttpServer(new Configuration());
+
+ Configuration configuration = new Configuration();
+ configuration.setHandlerPackage(DeftSystemTest.class.getPackage().getName());
+
+ final HttpServer server = new HttpServer(configuration);
final int n = 10;
final CountDownLatch latch = new CountDownLatch(n);
@@ -1161,6 +984,7 @@ public class DeftSystemTest {
@Test
public void connectToUnresolvableAddressUsingAsynchronousHttpClient() throws InterruptedException {
+
final String unresolvableAddress = "http://ttasfdqwertyuiop.se./start";
final CountDownLatch latch = new CountDownLatch(1);
final AsynchronousHttpClient client = new AsynchronousHttpClient();
@@ -1190,6 +1014,7 @@ public class DeftSystemTest {
@Test
public void connectToUnconnectableAddressUsingAsynchronousHttpClient() throws InterruptedException {
+
final String unconnectableAddress = "http://localhost:8039/start";
final CountDownLatch latch = new CountDownLatch(1);
final AsynchronousHttpClient client = new AsynchronousHttpClient();
@@ -1219,6 +1044,7 @@ public class DeftSystemTest {
@Test
public void multipleAsynchronousHttpClientTest() throws InterruptedException {
+
for (int i = 0; i < 100; i++) {
final CountDownLatch latch = new CountDownLatch(1);
final String url = "http://localhost:" + PORT + "/";
@@ -1251,6 +1077,7 @@ public class DeftSystemTest {
@Test
public void AsynchronousHttpClientConnectionFailedTest() throws InterruptedException {
+
final CountDownLatch latch = new CountDownLatch(1);
final String url = "http://localhost:" + (PORT + 1) + "/";
final AsynchronousHttpClient http = new AsynchronousHttpClient();
@@ -1277,6 +1104,7 @@ public class DeftSystemTest {
@Test
public void AsynchronousHttpClientRedirectTest() throws InterruptedException {
+
final CountDownLatch latch = new CountDownLatch(1);
// final String url = "http://localhost:" + (PORT) + "/moved_perm";
final String url = "http://localhost:" + PORT + "/moved_perm";
@@ -1305,6 +1133,7 @@ public class DeftSystemTest {
@Test
public void asynchronousHttpClientTransferEncodingChunkedTest() throws InterruptedException {
+
final CountDownLatch latch = new CountDownLatch(1);
final String url = "http://localhost:" + PORT + "/chunked";
final AsynchronousHttpClient http = new AsynchronousHttpClient();
@@ -1330,7 +1159,36 @@ public class DeftSystemTest {
assertEquals(0, latch.getCount());
}
+ private void doSimpleGetRequest() throws ClientProtocolException, IOException {
+
+ List<Header> headers = new LinkedList<Header>();
+ headers.add(new BasicHeader("Connection", "Close"));
+
+ HttpParams params = new BasicHttpParams();
+ params.setParameter("http.default-headers", headers);
+
+ HttpClient httpclient = new DefaultHttpClient(params);
+ HttpGet httpget = new HttpGet("http://localhost:" + PORT + "/");
+ HttpResponse response = httpclient.execute(httpget);
+ List<String> expectedHeaders = Arrays.asList(new String[] { "Server", "Date", "Content-Length", "Etag",
+ "Connection" });
+
+ assertEquals(HttpStatus.SUCCESS_OK.code(), response.getStatusLine().getStatusCode());
+ assertEquals(new ProtocolVersion("HTTP", 1, 1), response.getStatusLine().getProtocolVersion());
+ assertEquals("OK", response.getStatusLine().getReasonPhrase());
+
+ assertEquals(expectedHeaders.size(), response.getAllHeaders().length);
+
+ for (String header : expectedHeaders) {
+ assertTrue(response.getFirstHeader(header) != null);
+ }
+
+ assertEquals(expectedPayload, convertStreamToString(response.getEntity().getContent()).trim());
+ assertEquals(expectedPayload.length() + "", response.getFirstHeader("Content-Length").getValue());
+ }
+
private String convertStreamToString(InputStream is) throws IOException {
+
if (is != null) {
StringBuilder sb = new StringBuilder();
String line;
@@ -1343,10 +1201,10 @@ public class DeftSystemTest {
} finally {
is.close();
}
+
return sb.toString();
- } else {
- return "";
}
- }
+ return "";
+ }
}
Added: incubator/deft/sandbox/src/test/java/org/apache/deft/web/DeftSystemTestHandlers.java
URL: http://svn.apache.org/viewvc/incubator/deft/sandbox/src/test/java/org/apache/deft/web/DeftSystemTestHandlers.java?rev=1159923&view=auto
==============================================================================
--- incubator/deft/sandbox/src/test/java/org/apache/deft/web/DeftSystemTestHandlers.java (added)
+++ incubator/deft/sandbox/src/test/java/org/apache/deft/web/DeftSystemTestHandlers.java Sat Aug 20 23:15:10 2011
@@ -0,0 +1,271 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.deft.web;
+
+import java.io.File;
+
+import org.apache.deft.annotation.Asynchronous;
+import org.apache.deft.annotation.Authenticated;
+import org.apache.deft.example.keyvalue.KeyValueStore;
+import org.apache.deft.example.keyvalue.KeyValueStoreClient;
+import org.apache.deft.web.handler.RequestHandler;
+import org.apache.deft.web.http.HttpException;
+import org.apache.deft.web.http.HttpRequest;
+import org.apache.deft.web.http.protocol.HttpStatus;
+
+/**
+ * A collection of <code>RequestHandler</code>s used by
+ * <code>DeftSystemTest</code>.
+ */
+public class DeftSystemTestHandlers {
+
+ public static final String expectedPayload = "hello test";
+
+ public static class ExampleRequestHandler extends RequestHandler {
+ @Override
+ public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write(expectedPayload);
+ }
+ }
+
+ public static class WRequestHandler extends RequestHandler {
+ @Override
+ public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write("1");
+ }
+ }
+
+ public static class WWRequestHandler extends RequestHandler {
+ @Override
+ public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write("1");
+ response.write("2");
+ }
+ }
+
+ public static class WWFWRequestHandler extends RequestHandler {
+ @Override
+ public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write("1");
+ response.write("2");
+ response.flush();
+ response.write("3");
+ }
+ }
+
+ public static class WFWFRequestHandler extends RequestHandler {
+ @Override
+ public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write("1");
+ response.flush();
+ response.write("2");
+ response.flush();
+ }
+ }
+
+ public static class WFFFWFFFRequestHandler extends RequestHandler {
+ @Override
+ public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write("1");
+ response.flush();
+ response.flush();
+ response.flush();
+ response.write("2");
+ response.flush();
+ response.flush();
+ response.flush();
+ }
+ }
+
+ public static class DeleteRequestHandler extends RequestHandler {
+ @Override
+ public void delete(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write("del");
+ response.flush();
+ response.write("ete");
+ response.flush();
+ }
+ }
+
+ public static class PostRequestHandler extends RequestHandler {
+ @Override
+ public void post(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write("po");
+ response.flush();
+ response.write("st");
+ response.flush();
+ }
+ }
+
+ public static class PutRequestHandler extends RequestHandler {
+ @Override
+ public void put(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write("p");
+ response.flush();
+ response.write("ut");
+ response.flush();
+ }
+ }
+
+ public static class CapturingRequestRequestHandler extends RequestHandler {
+ @Override
+ public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write(request.getRequestedPath());
+ }
+ }
+
+ public static class ThrowingHttpExceptionRequestHandler extends RequestHandler {
+ @Override
+ public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ throw new HttpException(HttpStatus.SERVER_ERROR_INTERNAL_SERVER_ERROR, "exception message");
+ }
+ }
+
+ public static class AsyncThrowingHttpExceptionRequestHandler extends RequestHandler {
+ @Asynchronous
+ @Override
+ public void get(org.apache.deft.web.http.HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ throw new HttpException(HttpStatus.SERVER_ERROR_INTERNAL_SERVER_ERROR, "exception message");
+ }
+ }
+
+ public static class NoBodyRequestHandler extends RequestHandler {
+ @Override
+ public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.setStatus(HttpStatus.SUCCESS_OK);
+ }
+ }
+
+ public static class MovedPermanentlyRequestHandler extends RequestHandler {
+ @Override
+ public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.setStatus(HttpStatus.REDIRECTION_MOVED_PERMANENTLY);
+ response.setHeader("Location", "/");
+ }
+ }
+
+ public static class UserDefinedStaticContentHandler extends RequestHandler {
+ @Override
+ public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write(new File("src/test/resources/test.txt"));
+ }
+ }
+
+ public static class KeyValueStoreExampleRequestHandler extends RequestHandler {
+
+ public final KeyValueStoreClient client = new KeyValueStoreClient(KeyValueStore.HOST, KeyValueStore.PORT);
+
+ public KeyValueStoreExampleRequestHandler() {
+ new KeyValueStore().start();
+ client.connect();
+ }
+
+ @Override
+ @Asynchronous
+ public void get(HttpRequest request, final org.apache.deft.web.http.HttpResponse response) {
+ client.get("deft", new AsyncResult<byte[]>() {
+ @Override
+ public void onFailure(Throwable caught) { /* ignore */
+ }
+
+ @Override
+ public void onSuccess(byte[] result) {
+ response.write(new String(result)).finish();
+ }
+ });
+ }
+
+ }
+
+ public static class _450KBResponseEntityRequestHandler extends RequestHandler {
+ public static String entity;
+
+ static {
+ int iterations = 450 * 1024;
+ StringBuilder sb = new StringBuilder();
+ for (int i = 1; i <= iterations; i++) {
+ sb.append("a");
+ }
+ entity = sb.toString();
+ }
+
+ @Override
+ public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write(entity);
+ }
+ }
+
+ public static class EchoingPostBodyRequestHandler extends RequestHandler {
+ @Override
+ public void post(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write(request.getBody());
+ }
+ }
+
+ public static class AuthenticatedRequestHandler extends RequestHandler {
+ @Override
+ @Authenticated
+ public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write(request.getHeader("user"));
+ }
+
+ @Override
+ public String getCurrentUser(HttpRequest request) {
+ return request.getHeader("user");
+ }
+ }
+
+ public static class QueryParamsRequestHandler extends RequestHandler {
+ @Override
+ public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.write(request.getParameter("key1") + " " + request.getParameter("key2"));
+ }
+ }
+
+ public static class ChunkedRequestHandler extends RequestHandler {
+ @Override
+ public void get(HttpRequest request, org.apache.deft.web.http.HttpResponse response) {
+ response.setHeader("Transfer-Encoding", "chunked");
+ sleep(300);
+
+ response.write("1\r\n");
+ response.write("a\r\n").flush();
+ sleep(300);
+
+ response.write("5\r\n");
+ response.write("roger\r\n").flush();
+ sleep(300);
+
+ response.write("2\r\n");
+ response.write("ab\r\n").flush();
+ sleep(300);
+
+ response.write("0\r\n");
+ response.write("\r\n");
+ }
+
+ public static void sleep(long ms) {
+ try {
+ Thread.sleep(ms);
+ } catch (InterruptedException ignore) { /* nop */
+ }
+ }
+ }
+}
Propchange: incubator/deft/sandbox/src/test/java/org/apache/deft/web/DeftSystemTestHandlers.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/deft/sandbox/src/test/java/org/apache/deft/web/HttpServerTest.java
URL: http://svn.apache.org/viewvc/incubator/deft/sandbox/src/test/java/org/apache/deft/web/HttpServerTest.java?rev=1159923&r1=1159922&r2=1159923&view=diff
==============================================================================
--- incubator/deft/sandbox/src/test/java/org/apache/deft/web/HttpServerTest.java (original)
+++ incubator/deft/sandbox/src/test/java/org/apache/deft/web/HttpServerTest.java Sat Aug 20 23:15:10 2011
@@ -30,8 +30,6 @@ import com.google.common.collect.Maps;
*/
public class HttpServerTest {
- private final Application application = new Application(Maps.<String, RequestHandler> newHashMap());
-
@Test(expected = IllegalArgumentException.class)
public void testPortInRange_low() {
int port = 0;
@@ -48,7 +46,7 @@ public class HttpServerTest {
@Test
public void testPortInRange_ok() {
- int port = 34;
+ int port = 8084;
HttpServer server = createServer();
server.listen(port);
}
@@ -58,7 +56,7 @@ public class HttpServerTest {
HttpServer server = new HttpServer(new Configuration()) {
@Override
protected Application createApplication(String packageName) {
- return application;
+ return new Application(Maps.<String, RequestHandler> newHashMap());
}
};