package de.halbekunst.juplo.cachecontrol;
import com.meterware.httpunit.WebResponse;
+import de.halbekunst.juplo.test.HttpTestCase;
+import de.halbekunst.juplo.test.LoggingHttpServletResponseWrapper;
import java.net.URLEncoder;
import org.junit.Test;
import org.junit.runner.RunWith;
private final static Logger log = LoggerFactory.getLogger(RequestSizeTest.class);
+ public RequestSizeTest() {
+ super("src/test/resources/web.xml");
+ }
+
+
@Test
public void testSimpleRequestWithGzip() throws Exception {
client.getClientProperties().setAcceptGzip(true);
+ /**
+ * Auf den Fehler bei einem Forward nach Überschreitung der Puffer-Größe
+ * des ursprünglichen Requests wird hier nicht geprüft, weil der Puffer
+ * durch die Komprimierung bei den hier gewählten Test-Parametern nie
+ * vollgeschrieben wird, so dass er stets ohne Fehler zurückgesetzt
+ * werden kann...
+ *
+ * Dafür wird hier zusätzlich geprüft, ob die Komprimierung korrekt nur
+ * dann unterdrückt wird, wenn die gesamte Antwort leer ist (und nicht nur
+ * der initiale Request, der geforwarded wird).
+ */
for (int i=0; i<33; i++) {
/** 33 requests ranging from 0 B to 4 KB - response ist buffered up to 1 KB */
StringBuilder uri = new StringBuilder();
uri.append("http://localhost/request-size");
uri.append("?n=");
- uri.append(i*128);
+ uri.append(i%7*128);
uri.append("&f=");
uri.append(URLEncoder.encode("/forwarded?n=" + i*128, "UTF-8"));
WebResponse response = executeRequest(uri.toString());
uri.append(URLEncoder.encode("/forwarded?n=" + i*128, "UTF-8"));
try {
WebResponse response = executeRequest(uri.toString());
- if (i*128 > 2048)
+ if (i*128 > LoggingHttpServletResponseWrapper.DEFAULT_BUFFER_SIZE)
Assert.fail("Error expected while forwarding after " + i*128 + " bytes written!");
Assert.assertEquals("W/\"Hallo Welt!\"", response.getHeaderField(Headers.HEADER_ETAG));
Assert.assertEquals("Thu, 01 Jan 1970 00:00:00 GMT", response.getHeaderField(Headers.HEADER_LAST_MODIFIED));
Assert.assertTrue("Expires-Header passt nicht zum Date-Header! Unterschied: " + (expires-date)/1000 + " Sekunden.", date + 3600000 == expires);
}
catch (IllegalStateException e) {
- if (i*128 > 2048)
+ if (i*128 > LoggingHttpServletResponseWrapper.DEFAULT_BUFFER_SIZE)
log.debug("Expected error while forwarding after {} bytes written: {}", i*128, e.getMessage());
else
Assert.fail("Unexpected error while forwarding after " + i*128 + " bytes written: " + e.getMessage());
StringBuilder uri = new StringBuilder();
uri.append("http://localhost/request-size");
uri.append("?n=");
- uri.append(i*128);
+ uri.append(i%7*128);
for (int j=0; j < i%4+1; j++) {
uri.append("&i=");
uri.append(URLEncoder.encode("/included?n=" + i*32*(4-j), "UTF-8"));
StringBuilder uri = new StringBuilder();
uri.append("http://localhost/request-size");
uri.append("?n=");
- uri.append(i*128);
+ uri.append(i%7*128);
for (int j=0; j < i%4+1; j++) {
uri.append("&i=");
uri.append(URLEncoder.encode("/included?n=" + i*32*(4-j), "UTF-8"));