diff options
Diffstat (limited to 'jetty-servlets/src/test/java/org/eclipse/jetty/servlets/gzip/GzipTester.java')
-rw-r--r-- | jetty-servlets/src/test/java/org/eclipse/jetty/servlets/gzip/GzipTester.java | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/gzip/GzipTester.java b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/gzip/GzipTester.java index 179e5c957f..95fe702d75 100644 --- a/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/gzip/GzipTester.java +++ b/jetty-servlets/src/test/java/org/eclipse/jetty/servlets/gzip/GzipTester.java @@ -54,6 +54,7 @@ import org.eclipse.jetty.testing.ServletTester; import org.eclipse.jetty.toolchain.test.IO; import org.eclipse.jetty.toolchain.test.MavenTestingUtils; import org.eclipse.jetty.toolchain.test.TestingDir; +import org.hamcrest.Matchers; import org.junit.Assert; public class GzipTester @@ -108,6 +109,8 @@ public class GzipTester else Assert.assertThat("Response.header[Content-Encoding]", response.getHeader("Content-Encoding"),containsString(compressionType.substring(0,qindex))); + Assert.assertThat(response.getHeader("ETag"),Matchers.startsWith("W/")); + // Assert that the decompressed contents are what we expect. File serverFile = testdir.getFile(serverFilename); String expected = IO.readToString(serverFile); @@ -189,6 +192,8 @@ public class GzipTester Assert.assertThat(prefix + ".header[Content-Type] (should have a Content-Type associated with it)",response.getHeader("Content-Type"),notNullValue()); Assert.assertThat(prefix + ".header[Content-Type]",response.getHeader("Content-Type"),is(expectedContentType)); + Assert.assertThat(response.getHeader("ETAG"),Matchers.startsWith("w/etag-")); + ByteArrayInputStream bais = null; DigestOutputStream digester = null; try @@ -313,6 +318,10 @@ public class GzipTester int serverLength = Integer.parseInt(response.getHeader("Content-Length")); Assert.assertThat("Response.header[Content-Length]",serverLength,is(expectedFilesize)); } + + if (status>=200 && status<300) + Assert.assertThat(response.getHeader("ETAG"),Matchers.startsWith("W/")); + } private HttpTester executeRequest(String method,String uri) throws IOException, Exception @@ -345,11 +354,11 @@ public class GzipTester ByteArrayOutputStream out = null; try { - in = new ByteArrayInputStream(response.getContentBytes()); - out = new ByteArrayOutputStream(); - IO.copy(in,out); - - actual = out.toString(encoding); + byte[] content=response.getContentBytes(); + if (content!=null) + actual=new String(response.getContentBytes(),encoding); + else + actual=""; } finally { @@ -432,7 +441,7 @@ public class GzipTester finally { IO.close(in); - IO.close(fos); + IO.close(fos); } } @@ -464,6 +473,7 @@ public class GzipTester servletTester.setResourceBase(testdir.getDir().getCanonicalPath()); ServletHolder servletHolder = servletTester.addServlet(servletClass,"/"); servletHolder.setInitParameter("baseDir",testdir.getDir().getAbsolutePath()); + servletHolder.setInitParameter("etags","true"); FilterHolder holder = servletTester.addFilter(gzipFilterClass,"/*",0); holder.setInitParameter("vary","Accept-Encoding"); return holder; |