Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java22
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;

Back to the top