X-Git-Url: https://juplo.de/gitweb/?p=percentcodec;a=blobdiff_plain;f=cachecontrol%2Fsrc%2Ftest%2Fjava%2Fde%2Fhalbekunst%2Fjuplo%2Fcachecontrol%2FRequestSizeTest.java;fp=cachecontrol%2Fsrc%2Ftest%2Fjava%2Fde%2Fhalbekunst%2Fjuplo%2Fcachecontrol%2FRequestSizeTest.java;h=0000000000000000000000000000000000000000;hp=2b3fec85cca610d62fc7632d01c0cb62769ba8d2;hb=a6e0e65cce68acb20abc6ca935471611a740c342;hpb=1d395c6002486d485bde0d5dc713886d70bd3f8a diff --git a/cachecontrol/src/test/java/de/halbekunst/juplo/cachecontrol/RequestSizeTest.java b/cachecontrol/src/test/java/de/halbekunst/juplo/cachecontrol/RequestSizeTest.java deleted file mode 100644 index 2b3fec85..00000000 --- a/cachecontrol/src/test/java/de/halbekunst/juplo/cachecontrol/RequestSizeTest.java +++ /dev/null @@ -1,237 +0,0 @@ -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; -import java.text.SimpleDateFormat; -import java.util.Locale; -import org.junit.Assert; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - - - -/** - * - * @author kai - */ -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(locations = { - "classpath:/config.xml" -}) -public class RequestSizeTest extends HttpTestCase { - private final static Logger log = LoggerFactory.getLogger(RequestSizeTest.class); - - - public RequestSizeTest() { - super("src/test/resources/web.xml"); - } - - - @Test - public void testSimpleRequestWithGzip() throws Exception { - - log.info("-------- Test: gzipped simple request"); - - client.getClientProperties().setAcceptGzip(true); - - for (int i=0; i<33; i++) { - /** 33 requests ranging from 0 B to 4 KB - response ist buffered up to 1 KB */ - WebResponse response = executeRequest("http://localhost/request-size?n=" + i*128); - 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)); - if (i==0) - Assert.assertNull(response.getHeaderField(Headers.HEADER_CONTENT_ENCODING)); - else - Assert.assertEquals("gzip", response.getHeaderField(Headers.HEADER_CONTENT_ENCODING)); - Assert.assertEquals("max-age=3600", response.getHeaderField(Headers.HEADER_CACHE_CONTROL)); - Assert.assertEquals("text/plain; charset=iso-8859-1", response.getHeaderField(Headers.HEADER_CONTENT_TYPE)); - Assert.assertNotNull("Date-Header was not set!", response.getHeaderField(Headers.HEADER_DATE)); - Assert.assertNotNull("Expires-Header was not set!", response.getHeaderField(Headers.HEADER_EXPIRES)); - SimpleDateFormat df = new SimpleDateFormat(Headers.RFC_1123_DATE_FORMAT, Locale.US); - long date = df.parse(response.getHeaderField(Headers.HEADER_DATE)).getTime(); - long expires = df.parse(response.getHeaderField(Headers.HEADER_EXPIRES)).getTime(); - Assert.assertTrue("Expires-Header passt nicht zum Date-Header! Unterschied: " + (expires-date)/1000 + " Sekunden.", date + 3600000 == expires); - } - } - - @Test - public void testSimpleRequestWithoutGzip() throws Exception { - - log.info("-------- Test: uncompressed simple request"); - - client.getClientProperties().setAcceptGzip(false); - - for (int i=0; i<33; i++) { - /** 33 requests ranging from 0 B to 4 KB - response ist buffered up to 1 KB */ - WebResponse response = executeRequest("http://localhost/request-size?n=" + i*128); - 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.assertNull(response.getHeaderField(Headers.HEADER_CONTENT_ENCODING)); - Assert.assertEquals("max-age=3600", response.getHeaderField(Headers.HEADER_CACHE_CONTROL)); - Assert.assertEquals("text/plain; charset=iso-8859-1", response.getHeaderField(Headers.HEADER_CONTENT_TYPE)); - Assert.assertNotNull("Date-Header was not set!", response.getHeaderField(Headers.HEADER_DATE)); - Assert.assertNotNull("Expires-Header was not set!", response.getHeaderField(Headers.HEADER_EXPIRES)); - SimpleDateFormat df = new SimpleDateFormat(Headers.RFC_1123_DATE_FORMAT, Locale.US); - long date = df.parse(response.getHeaderField(Headers.HEADER_DATE)).getTime(); - long expires = df.parse(response.getHeaderField(Headers.HEADER_EXPIRES)).getTime(); - Assert.assertTrue("Expires-Header passt nicht zum Date-Header! Unterschied: " + (expires-date)/1000 + " Sekunden.", date + 3600000 == expires); - } - } - - @Test - public void testForwardWithGzip() throws Exception { - - log.info("-------- Test: gzipped request with forward"); - - 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%7*128); - uri.append("&f="); - uri.append(URLEncoder.encode("/forwarded?n=" + i*128, "UTF-8")); - WebResponse response = executeRequest(uri.toString()); - 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)); - if (i==0) - Assert.assertNull(response.getHeaderField(Headers.HEADER_CONTENT_ENCODING)); - else - Assert.assertEquals("gzip", response.getHeaderField(Headers.HEADER_CONTENT_ENCODING)); - Assert.assertEquals("max-age=3600", response.getHeaderField(Headers.HEADER_CACHE_CONTROL)); - Assert.assertEquals("text/plain; charset=iso-8859-1", response.getHeaderField(Headers.HEADER_CONTENT_TYPE)); - Assert.assertNotNull("Date-Header was not set!", response.getHeaderField(Headers.HEADER_DATE)); - Assert.assertNotNull("Expires-Header was not set!", response.getHeaderField(Headers.HEADER_EXPIRES)); - SimpleDateFormat df = new SimpleDateFormat(Headers.RFC_1123_DATE_FORMAT, Locale.US); - long date = df.parse(response.getHeaderField(Headers.HEADER_DATE)).getTime(); - long expires = df.parse(response.getHeaderField(Headers.HEADER_EXPIRES)).getTime(); - Assert.assertTrue("Expires-Header passt nicht zum Date-Header! Unterschied: " + (expires-date)/1000 + " Sekunden.", date + 3600000 == expires); - } - } - - @Test - public void testForwardWithoutGzip() throws Exception { - - log.info("-------- Test: uncompressed request with forward"); - - client.getClientProperties().setAcceptGzip(false); - - 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("&f="); - uri.append(URLEncoder.encode("/forwarded?n=" + i*128, "UTF-8")); - try { - WebResponse response = executeRequest(uri.toString()); - 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.assertNull(response.getHeaderField(Headers.HEADER_CONTENT_ENCODING)); - Assert.assertEquals("max-age=3600", response.getHeaderField(Headers.HEADER_CACHE_CONTROL)); - Assert.assertEquals("text/plain; charset=iso-8859-1", response.getHeaderField(Headers.HEADER_CONTENT_TYPE)); - Assert.assertNotNull("Date-Header was not set!", response.getHeaderField(Headers.HEADER_DATE)); - Assert.assertNotNull("Expires-Header was not set!", response.getHeaderField(Headers.HEADER_EXPIRES)); - SimpleDateFormat df = new SimpleDateFormat(Headers.RFC_1123_DATE_FORMAT, Locale.US); - long date = df.parse(response.getHeaderField(Headers.HEADER_DATE)).getTime(); - long expires = df.parse(response.getHeaderField(Headers.HEADER_EXPIRES)).getTime(); - Assert.assertTrue("Expires-Header passt nicht zum Date-Header! Unterschied: " + (expires-date)/1000 + " Sekunden.", date + 3600000 == expires); - } - catch (IllegalStateException e) { - 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()); - } - } - } - - @Test - public void testIncludeWithGzip() throws Exception { - - log.info("-------- Test: gzipped request with includes"); - - client.getClientProperties().setAcceptGzip(true); - - 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%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")); - } - WebResponse response = executeRequest(uri.toString()); - 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)); - if (i==0) - Assert.assertNull(response.getHeaderField(Headers.HEADER_CONTENT_ENCODING)); - else - Assert.assertEquals("gzip", response.getHeaderField(Headers.HEADER_CONTENT_ENCODING)); - Assert.assertEquals("max-age=3600", response.getHeaderField(Headers.HEADER_CACHE_CONTROL)); - Assert.assertEquals("text/plain; charset=iso-8859-1", response.getHeaderField(Headers.HEADER_CONTENT_TYPE)); - Assert.assertNotNull("Date-Header was not set!", response.getHeaderField(Headers.HEADER_DATE)); - Assert.assertNotNull("Expires-Header was not set!", response.getHeaderField(Headers.HEADER_EXPIRES)); - SimpleDateFormat df = new SimpleDateFormat(Headers.RFC_1123_DATE_FORMAT, Locale.US); - long date = df.parse(response.getHeaderField(Headers.HEADER_DATE)).getTime(); - long expires = df.parse(response.getHeaderField(Headers.HEADER_EXPIRES)).getTime(); - Assert.assertTrue("Expires-Header passt nicht zum Date-Header! Unterschied: " + (expires-date)/1000 + " Sekunden.", date + 3600000 == expires); - } - } - - @Test - public void testIncludeWithoutGzip() throws Exception { - - log.info("-------- Test: uncompressed request with includes"); - - client.getClientProperties().setAcceptGzip(false); - - 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%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")); - } - WebResponse response = executeRequest(uri.toString()); - 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.assertNull(response.getHeaderField(Headers.HEADER_CONTENT_ENCODING)); - Assert.assertEquals("max-age=3600", response.getHeaderField(Headers.HEADER_CACHE_CONTROL)); - Assert.assertEquals("text/plain; charset=iso-8859-1", response.getHeaderField(Headers.HEADER_CONTENT_TYPE)); - Assert.assertNotNull("Date-Header was not set!", response.getHeaderField(Headers.HEADER_DATE)); - Assert.assertNotNull("Expires-Header was not set!", response.getHeaderField(Headers.HEADER_EXPIRES)); - SimpleDateFormat df = new SimpleDateFormat(Headers.RFC_1123_DATE_FORMAT, Locale.US); - long date = df.parse(response.getHeaderField(Headers.HEADER_DATE)).getTime(); - long expires = df.parse(response.getHeaderField(Headers.HEADER_EXPIRES)).getTime(); - Assert.assertTrue("Expires-Header passt nicht zum Date-Header! Unterschied: " + (expires-date)/1000 + " Sekunden.", date + 3600000 == expires); - } - } -}