aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorritchie <ritchie@gmx.at>2015-09-27 06:54:54 +0200
committerritchie <ritchie@gmx.at>2015-09-27 06:54:54 +0200
commit2681f5f9a272a86cd75271747f29c8a2d98039c4 (patch)
treeaa489c1bcf6004330ea8208a1c3f4b041a542881
parent6a95983865c086f44853880e0454eff813bb8b45 (diff)
downloadnanohttpd-2681f5f9a272a86cd75271747f29c8a2d98039c4.tar.gz
more unit tests also for the special cases #214 #216
-rw-r--r--nanolets/pom.xml2
-rw-r--r--nanolets/src/main/java/fi/iki/elonen/router/RouterNanoHTTPD.java10
-rw-r--r--nanolets/src/test/java/fi/iki/elonen/router/AppNanolets.java15
-rw-r--r--nanolets/src/test/java/fi/iki/elonen/router/TestNanolets.java9
-rw-r--r--nanolets/src/test/resources/exception.html1
5 files changed, 32 insertions, 5 deletions
diff --git a/nanolets/pom.xml b/nanolets/pom.xml
index a190abb..05acb51 100644
--- a/nanolets/pom.xml
+++ b/nanolets/pom.xml
@@ -23,6 +23,6 @@
</dependency>
</dependencies>
<properties>
- <minimal.coverage>0.98</minimal.coverage>
+ <minimal.coverage>0.99</minimal.coverage>
</properties>
</project>
diff --git a/nanolets/src/main/java/fi/iki/elonen/router/RouterNanoHTTPD.java b/nanolets/src/main/java/fi/iki/elonen/router/RouterNanoHTTPD.java
index 06c3778..6b9e270 100644
--- a/nanolets/src/main/java/fi/iki/elonen/router/RouterNanoHTTPD.java
+++ b/nanolets/src/main/java/fi/iki/elonen/router/RouterNanoHTTPD.java
@@ -36,6 +36,7 @@ package fi.iki.elonen.router;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
@@ -279,13 +280,16 @@ public class RouterNanoHTTPD extends NanoHTTPD {
return new Error404UriHandler().get(uriResource, urlParams, session);
} else {
try {
- FileInputStream ins = new FileInputStream(fileOrdirectory);
- return NanoHTTPD.newChunkedResponse(NanoHTTPD.Response.Status.OK, getMimeTypeForFile(fileOrdirectory.getName()), new BufferedInputStream(ins));
+ return NanoHTTPD.newChunkedResponse(getStatus(), getMimeTypeForFile(fileOrdirectory.getName()), fileToInputStream(fileOrdirectory));
} catch (IOException ioe) {
- return NanoHTTPD.newFixedLengthResponse(NanoHTTPD.Response.Status.REQUEST_TIMEOUT, getMimeType(), null);
+ return NanoHTTPD.newFixedLengthResponse(NanoHTTPD.Response.Status.REQUEST_TIMEOUT, "text/plain", null);
}
}
}
+
+ protected BufferedInputStream fileToInputStream(File fileOrdirectory) throws IOException {
+ return new BufferedInputStream(new FileInputStream(fileOrdirectory));
+ }
}
/**
diff --git a/nanolets/src/test/java/fi/iki/elonen/router/AppNanolets.java b/nanolets/src/test/java/fi/iki/elonen/router/AppNanolets.java
index ad01303..2d96eb8 100644
--- a/nanolets/src/test/java/fi/iki/elonen/router/AppNanolets.java
+++ b/nanolets/src/test/java/fi/iki/elonen/router/AppNanolets.java
@@ -39,8 +39,10 @@ package fi.iki.elonen.router;
* Read the source. Everything is there.
*/
+import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.File;
+import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
@@ -118,6 +120,17 @@ public class AppNanolets extends RouterNanoHTTPD {
}
+ static class StaticPageTestHandler extends StaticPageHandler {
+
+ @Override
+ protected BufferedInputStream fileToInputStream(File fileOrdirectory) throws IOException {
+ if (fileOrdirectory.getName().equals("exception.html")) {
+ throw new IOException("trigger something wrong");
+ }
+ return super.fileToInputStream(fileOrdirectory);
+ }
+ }
+
/**
* Create the server instance
*/
@@ -146,7 +159,7 @@ public class AppNanolets extends RouterNanoHTTPD {
addRoute("/toBeDeleted", String.class);
removeRoute("/toBeDeleted");
addRoute("/stream", StreamUrl.class);
- addRoute("/browse/(.)+", StaticPageHandler.class, new File("src/test/resources").getAbsoluteFile());
+ addRoute("/browse/(.)+", StaticPageTestHandler.class, new File("src/test/resources").getAbsoluteFile());
}
/**
diff --git a/nanolets/src/test/java/fi/iki/elonen/router/TestNanolets.java b/nanolets/src/test/java/fi/iki/elonen/router/TestNanolets.java
index 62d4f1b..7b1ae56 100644
--- a/nanolets/src/test/java/fi/iki/elonen/router/TestNanolets.java
+++ b/nanolets/src/test/java/fi/iki/elonen/router/TestNanolets.java
@@ -55,6 +55,7 @@ import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
+import fi.iki.elonen.NanoHTTPD;
import fi.iki.elonen.router.RouterNanoHTTPD.GeneralHandler;
import fi.iki.elonen.router.RouterNanoHTTPD.UriResource;
@@ -354,6 +355,14 @@ public class TestNanolets {
string = new String(readContents(entity), "UTF-8");
Assert.assertEquals("<html><body><h3>just an index page</h3></body></html>", string);
response.close();
+
+ httphead = new HttpTrace("http://localhost:9090/browse/exception.html");
+ response = httpclient.execute(httphead);
+ Assert.assertEquals(NanoHTTPD.Response.Status.REQUEST_TIMEOUT.getRequestStatus(), response.getStatusLine().getStatusCode());
+ entity = response.getEntity();
+ string = new String(readContents(entity), "UTF-8");
+ Assert.assertEquals("", string);
+ response.close();
}
@AfterClass
diff --git a/nanolets/src/test/resources/exception.html b/nanolets/src/test/resources/exception.html
new file mode 100644
index 0000000..1a9c47b
--- /dev/null
+++ b/nanolets/src/test/resources/exception.html
@@ -0,0 +1 @@
+this will throw an io exception \ No newline at end of file