@Test public void testHeadersAreMergedCorrectly() throws IOException { final Header[] headers = { new BasicHeader("Date", DateUtils.formatDate(responseDate)), new BasicHeader("ETag", "\"etag\"")}; entry = HttpTestUtils.makeCacheEntry(headers); response.setHeaders(); final HttpCacheEntry updatedEntry = impl.updateCacheEntry(null, entry, new Date(), new Date(), response); assertThat(updatedEntry, ContainsHeaderMatcher.contains("Date", DateUtils.formatDate(responseDate))); assertThat(updatedEntry, ContainsHeaderMatcher.contains("ETag", "\"etag\"")); }
@Test public void testContentEncodingHeaderIsNotUpdatedByMerge() throws IOException { final Header[] headers = { new BasicHeader("Date", DateUtils.formatDate(requestDate)), new BasicHeader("ETag", "\"etag\""), new BasicHeader("Content-Encoding", "identity")}; entry = HttpTestUtils.makeCacheEntry(headers); response.setHeaders(new BasicHeader("Last-Modified", DateUtils.formatDate(responseDate)), new BasicHeader("Cache-Control", "public"), new BasicHeader("Content-Encoding", "gzip")); final HttpCacheEntry updatedEntry = impl.updateCacheEntry(null, entry, new Date(), new Date(), response); final Header[] updatedHeaders = updatedEntry.getHeaders(); headersContain(updatedHeaders, "Content-Encoding", "identity"); headersNotContain(updatedHeaders, "Content-Encoding", "gzip"); }
@Test public void testNewHeadersAreAddedByMerge() throws IOException { final Header[] headers = { new BasicHeader("Date", DateUtils.formatDate(requestDate)), new BasicHeader("ETag", "\"etag\"")}; entry = HttpTestUtils.makeCacheEntry(headers); response.setHeaders(new BasicHeader("Last-Modified", DateUtils.formatDate(responseDate)), new BasicHeader("Cache-Control", "public")); final HttpCacheEntry updatedEntry = impl.updateCacheEntry(null, entry, new Date(), new Date(), response); assertThat(updatedEntry, ContainsHeaderMatcher.contains("Date", DateUtils.formatDate(requestDate))); assertThat(updatedEntry, ContainsHeaderMatcher.contains("ETag", "\"etag\"")); assertThat(updatedEntry, ContainsHeaderMatcher.contains("Last-Modified", DateUtils.formatDate(responseDate))); assertThat(updatedEntry, ContainsHeaderMatcher.contains("Cache-Control", "public")); }
@Test public void testNewerHeadersReplaceExistingHeaders() throws IOException { final Header[] headers = { new BasicHeader("Date", DateUtils.formatDate(requestDate)), new BasicHeader("Cache-Control", "private"), new BasicHeader("ETag", "\"etag\""), new BasicHeader("Last-Modified", DateUtils.formatDate(requestDate)), new BasicHeader("Cache-Control", "max-age=0"),}; entry = HttpTestUtils.makeCacheEntry(headers); response.setHeaders(new BasicHeader("Last-Modified", DateUtils.formatDate(responseDate)), new BasicHeader("Cache-Control", "public")); final HttpCacheEntry updatedEntry = impl.updateCacheEntry(null, entry, new Date(), new Date(), response); assertThat(updatedEntry, ContainsHeaderMatcher.contains("Date", DateUtils.formatDate(requestDate))); assertThat(updatedEntry, ContainsHeaderMatcher.contains("ETag", "\"etag\"")); assertThat(updatedEntry, ContainsHeaderMatcher.contains("Last-Modified", DateUtils.formatDate(responseDate))); assertThat(updatedEntry, ContainsHeaderMatcher.contains("Cache-Control", "public")); }