X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=dist%2Fhttp-resources%2F2.0.0%2Fxref-test%2Fde%2Fjuplo%2Fhttpresources%2FTestUtil.html;fp=dist%2Fhttp-resources%2F2.0.0%2Fxref-test%2Fde%2Fjuplo%2Fhttpresources%2FTestUtil.html;h=dbd85a08b8649492b20a939fb61383d21faabd90;hb=96ec104e2974d001e9bc82c3af8b21029b2042d4;hp=0000000000000000000000000000000000000000;hpb=de1fa457a1c69c673d4dd5c0a2c9af568f74ea12;p=website diff --git a/dist/http-resources/2.0.0/xref-test/de/juplo/httpresources/TestUtil.html b/dist/http-resources/2.0.0/xref-test/de/juplo/httpresources/TestUtil.html new file mode 100644 index 00000000..dbd85a08 --- /dev/null +++ b/dist/http-resources/2.0.0/xref-test/de/juplo/httpresources/TestUtil.html @@ -0,0 +1,264 @@ + + + +TestUtil xref + + + +
View Javadoc
+1   package de.juplo.httpresources;
+2   
+3   
+4   import java.io.ByteArrayInputStream;
+5   import java.io.ByteArrayOutputStream;
+6   import java.io.IOException;
+7   import java.net.URISyntaxException;
+8   import java.net.URL;
+9   import java.nio.charset.Charset;
+10  import java.nio.file.Files;
+11  import java.nio.file.Paths;
+12  import java.util.Date;
+13  import java.util.Scanner;
+14  import java.util.stream.Collectors;
+15  import java.util.zip.GZIPOutputStream;
+16  import org.apache.http.Header;
+17  import org.apache.http.HttpEntity;
+18  import org.apache.http.HttpStatus;
+19  import org.apache.http.ProtocolVersion;
+20  import org.apache.http.StatusLine;
+21  import org.apache.http.client.utils.DateUtils;
+22  import org.apache.http.entity.ByteArrayEntity;
+23  import org.apache.http.entity.StringEntity;
+24  import org.apache.http.message.BasicHeader;
+25  import org.apache.http.message.BasicStatusLine;
+26  import org.slf4j.Logger;
+27  import org.slf4j.LoggerFactory;
+28  import org.springframework.core.io.Resource;
+29  import org.springframework.http.HttpHeaders;
+30  import org.springframework.http.MediaType;
+31  
+32  
+33  /**
+34   * @author Kai Moritz
+35   */
+36  public class TestUtil
+37  {
+38    private final static Logger LOG =
+39        LoggerFactory.getLogger(TestUtil.class);
+40  
+41    final static long MAX_AGE = 600l;
+42    final static int MIN_TTL = 666000;
+43  
+44    final static String STR_THEN = "Sat, 29 Oct 1994 19:43:31 GMT";
+45    final static String STR_EXPIRED = "Mon, 14 Nov 1994 22:22:22 GMT";
+46    final static String STR_SEND = "Tue, 15 Nov 1994 12:45:25 GMT";
+47    final static String STR_NOW = "Tue, 15 Nov 1994 12:45:26 GMT";
+48    final static String STR_INBETWEEN = "Thu, 17 Nov 1994 12:45:26 GMT";
+49    final static String STR_FEATURE = "Thu, 01 Dec 1994 16:00:00 GMT";
+50  
+51    final static Charset UTF8;
+52  
+53    final static String STR_CONTENT = "hellö wörld!";
+54    final static byte[] CONTENT;
+55    final static byte[] CONTENT_GZIPPED;
+56    final static String STR_CONTENT_MODIFIED = "Hellö again...";
+57    final static byte[] CONTENT_MODIFIED;
+58    final static String STR_CONTENT_TYPE_HTML = "text/html;charset=UTF-8";
+59    final static String STR_CONTENT_TYPE_CSS = "text/css";
+60    final static String STR_CONTENT_ENCODING = "gzip";
+61    final static String STR_ETAG = "F345AB884";
+62    final static String STR_ETAG_MODIFIED = "NewNewNew";
+63    final static String STR_NO_CACHE = "no-cache";
+64    final static String STR_NO_CACHE_QUALIFIED = "max-age=" + MAX_AGE + ", no-cache=\"Cookie\"";
+65    final static String STR_MAX_AGE = "public, max-age=" + MAX_AGE;
+66    final static String STR_MAX_AGE_0 = "public, max-age=0";
+67    final static String STR_PRIVATE = "private, no-store";
+68    final static String STR_REVALIDATE = STR_MAX_AGE + ", must-revalidate";
+69  
+70    final static HttpEntity BODY;
+71    final static HttpEntity BODY_GZIPPED;
+72    final static HttpEntity BODY_MODIFIED;
+73    final static ProtocolVersion PROTOCOL = new ProtocolVersion("HTTP", 1, 1);
+74    final static StatusLine OK = new BasicStatusLine(PROTOCOL, HttpStatus.SC_OK, "OK");
+75    final static StatusLine NOT_MODIFIED = new BasicStatusLine(PROTOCOL, HttpStatus.SC_NOT_MODIFIED, "NOT MODIFIED");
+76    final static StatusLine NOT_FOUND = new BasicStatusLine(PROTOCOL, HttpStatus.SC_NOT_FOUND, "NOT FOUND");
+77    final static StatusLine SERVER_ERROR = new BasicStatusLine(PROTOCOL, HttpStatus.SC_INTERNAL_SERVER_ERROR, "INTERNAL SERVER ERROR");
+78    final static Date THEN, EXPIRED, SEND, NOW, INBETWEEN, FEATURE;
+79    final static long LONG_THEN, LONG_EXPIRED, LONG_SEND, LONG_NOW, LONG_INBETWEEN, LONG_FEATURE;
+80  
+81    final static MediaType MIME_TYPE_CONTENT_TYPE_HTML = MediaType.valueOf(STR_CONTENT_TYPE_HTML);
+82  
+83    final static Header CONTENT_TYPE_HTML = new BasicHeader(HttpHeaders.CONTENT_TYPE, STR_CONTENT_TYPE_HTML);
+84    final static Header CONTENT_TYPE_CSS = new BasicHeader(HttpHeaders.CONTENT_TYPE, STR_CONTENT_TYPE_CSS);
+85    final static Header CONTENT_ENCODING = new BasicHeader(HttpHeaders.CONTENT_ENCODING, STR_CONTENT_ENCODING);
+86    final static Header DATE = new BasicHeader(HttpHeaders.DATE, STR_SEND);
+87    final static Header DATE_MODIFIED = new BasicHeader(HttpHeaders.DATE, STR_NOW);
+88    final static Header LAST_MODIFIED = new BasicHeader(HttpHeaders.LAST_MODIFIED, STR_THEN);
+89    final static Header LAST_MODIFIED_MODIFIED = new BasicHeader(HttpHeaders.LAST_MODIFIED, STR_INBETWEEN);
+90    final static Header ETAG = new BasicHeader(HttpHeaders.ETAG, STR_ETAG);
+91    final static Header ETAG_MODIFIED = new BasicHeader(HttpHeaders.ETAG, STR_ETAG_MODIFIED);
+92    final static Header EXPIRES_VALID = new BasicHeader(HttpHeaders.EXPIRES, STR_FEATURE);
+93    final static Header EXPIRES_INVALID = new BasicHeader(HttpHeaders.EXPIRES, "0");
+94    final static Header CACHE_CONTROL_NO_CACHE = new BasicHeader(HttpHeaders.CACHE_CONTROL, STR_NO_CACHE);
+95    final static Header CACHE_CONTROL_NO_CACHE_QUALIFIED = new BasicHeader(HttpHeaders.CACHE_CONTROL, STR_NO_CACHE_QUALIFIED);
+96    final static Header CACHE_CONTROL_MAX_AGE = new BasicHeader(HttpHeaders.CACHE_CONTROL, STR_MAX_AGE);
+97    final static Header CACHE_CONTROL_MAX_AGE_0 = new BasicHeader(HttpHeaders.CACHE_CONTROL, STR_MAX_AGE_0);
+98    final static Header CACHE_CONTROL_PRIVATE = new BasicHeader(HttpHeaders.CACHE_CONTROL, STR_PRIVATE);
+99    final static Header CACHE_CONTROL_REVALIDATE = new BasicHeader(HttpHeaders.CACHE_CONTROL, STR_REVALIDATE);
+100 
+101   final static HttpHeaders HEADERS_CONTENT_TYPE_HTML;
+102 
+103   // The dummy-variants are used to distinguish the result from the old state
+104   // in cases, where nothing has changed...
+105   final static HttpData DATA_NOT_EXPIRED;
+106   final static HttpData DATA_NOT_EXPIRED_DUMMY;
+107   final static HttpData DATA_NOT_EXPIRED_REVALIDATION_REQUIRED;
+108   final static HttpData DATA_EXPIRED;
+109   final static HttpData DATA_EXPIRED_DUMMY;
+110   final static HttpData DATA_UPDATED;
+111   final static HttpData DATA_NOT_FOUND;
+112 
+113 
+114   static
+115   {
+116     try
+117     {
+118       UTF8 = Charset.forName("UTF-8");
+119 
+120       BODY = new StringEntity(STR_CONTENT, UTF8);
+121       BODY_MODIFIED = new StringEntity(STR_CONTENT_MODIFIED, UTF8);
+122 
+123       CONTENT = STR_CONTENT.getBytes(UTF8);
+124       CONTENT_GZIPPED = TestUtil.gzip(CONTENT);
+125       BODY_GZIPPED = new ByteArrayEntity(CONTENT_GZIPPED);
+126       CONTENT_MODIFIED = STR_CONTENT_MODIFIED.getBytes(UTF8);
+127     }
+128     catch (IOException e)
+129     {
+130       throw new RuntimeException(e);
+131     }
+132 
+133     THEN = DateUtils.parseDate(STR_THEN);
+134     EXPIRED = DateUtils.parseDate(STR_EXPIRED);
+135     SEND = DateUtils.parseDate(STR_SEND);
+136     NOW = DateUtils.parseDate(STR_NOW);
+137     INBETWEEN = DateUtils.parseDate(STR_INBETWEEN);
+138     FEATURE = DateUtils.parseDate(STR_FEATURE);
+139 
+140     LONG_THEN = THEN.getTime();
+141     LONG_EXPIRED = EXPIRED.getTime();
+142     LONG_SEND = SEND.getTime();
+143     LONG_NOW = NOW.getTime();
+144     LONG_INBETWEEN = INBETWEEN.getTime();
+145     LONG_FEATURE = FEATURE.getTime();
+146 
+147 
+148     HEADERS_CONTENT_TYPE_HTML = new HttpHeaders();
+149     HEADERS_CONTENT_TYPE_HTML.setContentType(MIME_TYPE_CONTENT_TYPE_HTML);
+150 
+151     DATA_NOT_EXPIRED_REVALIDATION_REQUIRED =
+152         new HttpData(
+153             STR_CONTENT.getBytes(),
+154             HEADERS_CONTENT_TYPE_HTML,
+155             true,
+156             LONG_THEN,
+157             LONG_NOW + MAX_AGE * 1000 - 2000,
+158             STR_ETAG);
+159 
+160     DATA_NOT_EXPIRED =
+161         new HttpData(
+162             STR_CONTENT.getBytes(),
+163             HEADERS_CONTENT_TYPE_HTML,
+164             false,
+165             LONG_THEN,
+166             LONG_NOW + MAX_AGE * 1000 - 2000,
+167             STR_ETAG);
+168 
+169     DATA_NOT_EXPIRED_DUMMY =
+170         new HttpData(
+171             STR_CONTENT.getBytes(),
+172             HEADERS_CONTENT_TYPE_HTML,
+173             false,
+174             LONG_THEN,
+175             LONG_NOW + MAX_AGE * 1000 - 2000,
+176             STR_ETAG);
+177 
+178     DATA_EXPIRED =
+179         new HttpData(
+180             STR_CONTENT.getBytes(),
+181             HEADERS_CONTENT_TYPE_HTML,
+182             false,
+183             LONG_THEN,
+184             LONG_EXPIRED,
+185             STR_ETAG);
+186 
+187     DATA_EXPIRED_DUMMY =
+188         new HttpData(
+189             STR_CONTENT.getBytes(),
+190             HEADERS_CONTENT_TYPE_HTML,
+191             false,
+192             LONG_THEN,
+193             LONG_EXPIRED,
+194             STR_ETAG);
+195 
+196     DATA_UPDATED =
+197         new HttpData(
+198             STR_CONTENT_MODIFIED.getBytes(),
+199             HEADERS_CONTENT_TYPE_HTML,
+200             false,
+201             LONG_INBETWEEN,
+202             LONG_NOW + MAX_AGE * 1000,
+203             STR_ETAG_MODIFIED);
+204 
+205     DATA_NOT_FOUND =
+206         new HttpData(
+207             null,
+208             new HttpHeaders(),
+209             false,
+210             0,
+211             LONG_NOW - 2000,
+212             null);
+213   }
+214 
+215 
+216   static byte[] gzip(byte[] input) throws IOException
+217   {
+218     try (ByteArrayInputStream bais = new ByteArrayInputStream(input))
+219     {
+220       ByteArrayOutputStream baos = new ByteArrayOutputStream();
+221       GZIPOutputStream gzos = new GZIPOutputStream(baos);
+222       byte[] data = new byte[1024];
+223       int read;
+224       while ((read = bais.read(data)) > -1)
+225         gzos.write(data, 0, read);
+226       gzos.close();
+227       baos.close();
+228       return baos.toByteArray();
+229     }
+230   }
+231 
+232 
+233   static StringEntity body(String resource) throws URISyntaxException, IOException
+234   {
+235     return new StringEntity(read(resource));
+236   }
+237 
+238   static String read(String resource) throws URISyntaxException, IOException
+239   {
+240     URL url = TestUtil.class.getResource(resource);
+241     if (url == null)
+242       throw new IllegalArgumentException("Cannot find " + resource);
+243     return Files.readAllLines(Paths.get(url.toURI())).stream().collect(Collectors.joining("\n"));
+244   }
+245 
+246   static String read(Resource resource) throws URISyntaxException, IOException
+247   {
+248     Scanner s = new Scanner(resource.getInputStream()).useDelimiter("\\A");
+249     return s.hasNext() ? s.next() : "";
+250   }
+251 }
+
+
+ + +