diff options
author | ritchie <ritchie@gmx.at> | 2015-09-27 06:54:54 +0200 |
---|---|---|
committer | ritchie <ritchie@gmx.at> | 2015-09-27 06:54:54 +0200 |
commit | 2681f5f9a272a86cd75271747f29c8a2d98039c4 (patch) | |
tree | aa489c1bcf6004330ea8208a1c3f4b041a542881 | |
parent | 6a95983865c086f44853880e0454eff813bb8b45 (diff) | |
download | nanohttpd-2681f5f9a272a86cd75271747f29c8a2d98039c4.tar.gz |
more unit tests also for the special cases #214 #216
-rw-r--r-- | nanolets/pom.xml | 2 | ||||
-rw-r--r-- | nanolets/src/main/java/fi/iki/elonen/router/RouterNanoHTTPD.java | 10 | ||||
-rw-r--r-- | nanolets/src/test/java/fi/iki/elonen/router/AppNanolets.java | 15 | ||||
-rw-r--r-- | nanolets/src/test/java/fi/iki/elonen/router/TestNanolets.java | 9 | ||||
-rw-r--r-- | nanolets/src/test/resources/exception.html | 1 |
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 |