diff options
Diffstat (limited to 'src/test')
3 files changed, 40 insertions, 45 deletions
diff --git a/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java b/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java index bf1d258..0a8be77 100644 --- a/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java +++ b/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java @@ -125,45 +125,6 @@ public class DiskBasedCacheTest { assertEquals(DiskBasedCache.readStringStringMap(bais), emptyValue); } - /** deserializing the old format into the new one. */ - @Test public void testCacheHeaderSerializationOldToNewFormat() throws Exception { - - final int CACHE_MAGIC = 0x20140623; - final String key = "key"; - final String etag = "etag"; - final long serverDate = 1234567890l; - final long ttl = 1357924680l; - final long softTtl = 2468013579l; - - Map<String, String> responseHeaders = new HashMap<String, String>(); - responseHeaders.put("first", "thing"); - responseHeaders.put("second", "item"); - - // write old sytle header (without lastModified) - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - DiskBasedCache.writeInt(baos, CACHE_MAGIC); - DiskBasedCache.writeString(baos, key); - DiskBasedCache.writeString(baos, etag == null ? "" : etag); - DiskBasedCache.writeLong(baos, serverDate); - DiskBasedCache.writeLong(baos, ttl); - DiskBasedCache.writeLong(baos, softTtl); - DiskBasedCache.writeStringStringMap(responseHeaders, baos); - - // read / test new style header (with lastModified) - ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); - CacheHeader cacheHeader = CacheHeader.readHeader(bais); - - assertEquals(cacheHeader.key, key); - assertEquals(cacheHeader.etag, etag); - assertEquals(cacheHeader.serverDate, serverDate); - assertEquals(cacheHeader.ttl, ttl); - assertEquals(cacheHeader.softTtl, softTtl); - assertEquals(cacheHeader.responseHeaders, responseHeaders); - - // the old format doesn't know lastModified - assertEquals(cacheHeader.lastModified, 0); - } - @Test public void publicMethods() throws Exception { // Catch-all test to find API-breaking changes. diff --git a/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java b/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java index f9230c6..fd8cf51 100644 --- a/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java +++ b/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java @@ -41,6 +41,7 @@ public class HttpHeaderParserTest { private static long ONE_MINUTE_MILLIS = 1000L * 60; private static long ONE_HOUR_MILLIS = 1000L * 60 * 60; private static long ONE_DAY_MILLIS = ONE_HOUR_MILLIS * 24; + private static long ONE_WEEK_MILLIS = ONE_DAY_MILLIS * 7; private NetworkResponse response; private Map<String, String> headers; @@ -135,7 +136,7 @@ public class HttpHeaderParserTest { assertNotNull(entry); assertNull(entry.etag); - assertEqualsWithin(now + 24 * ONE_HOUR_MILLIS, entry.ttl, ONE_MINUTE_MILLIS); + assertEqualsWithin(now + ONE_DAY_MILLIS, entry.ttl, ONE_MINUTE_MILLIS); assertEquals(entry.softTtl, entry.ttl); } @@ -153,8 +154,8 @@ public class HttpHeaderParserTest { assertNotNull(entry); assertNull(entry.etag); - assertEqualsWithin(now + 24 * ONE_HOUR_MILLIS, entry.softTtl, ONE_MINUTE_MILLIS); - assertEqualsWithin(now + 8 * 24 * ONE_HOUR_MILLIS, entry.ttl, ONE_MINUTE_MILLIS); + assertEqualsWithin(now + ONE_DAY_MILLIS, entry.softTtl, ONE_MINUTE_MILLIS); + assertEqualsWithin(now + ONE_DAY_MILLIS + ONE_WEEK_MILLIS, entry.ttl, ONE_MINUTE_MILLIS); } @Test public void parseCacheHeaders_cacheControlNoCache() { @@ -168,20 +169,51 @@ public class HttpHeaderParserTest { assertNull(entry); } - @Test public void parseCacheHeaders_cacheControlMustRevalidate() { + @Test public void parseCacheHeaders_cacheControlMustRevalidateNoMaxAge() { long now = System.currentTimeMillis(); headers.put("Date", rfc1123Date(now)); headers.put("Expires", rfc1123Date(now + ONE_HOUR_MILLIS)); headers.put("Cache-Control", "must-revalidate"); Cache.Entry entry = HttpHeaderParser.parseCacheHeaders(response); - assertNotNull(entry); assertNull(entry.etag); assertEqualsWithin(now, entry.ttl, ONE_MINUTE_MILLIS); assertEquals(entry.softTtl, entry.ttl); } + @Test public void parseCacheHeaders_cacheControlMustRevalidateWithMaxAge() { + long now = System.currentTimeMillis(); + headers.put("Date", rfc1123Date(now)); + headers.put("Expires", rfc1123Date(now + ONE_HOUR_MILLIS)); + headers.put("Cache-Control", "must-revalidate, max-age=3600"); + + Cache.Entry entry = HttpHeaderParser.parseCacheHeaders(response); + assertNotNull(entry); + assertNull(entry.etag); + assertEqualsWithin(now + ONE_HOUR_MILLIS, entry.ttl, ONE_MINUTE_MILLIS); + assertEquals(entry.softTtl, entry.ttl); + } + + @Test public void parseCacheHeaders_cacheControlMustRevalidateWithMaxAgeAndStale() { + long now = System.currentTimeMillis(); + headers.put("Date", rfc1123Date(now)); + headers.put("Expires", rfc1123Date(now + ONE_HOUR_MILLIS)); + + // - max-age (entry.softTtl) indicates that the asset is fresh for 1 day + // - stale-while-revalidate (entry.ttl) indicates that the asset may + // continue to be served stale for up to additional 7 days, but this is + // ignored in this case because of the must-revalidate header. + headers.put("Cache-Control", + "must-revalidate, max-age=86400, stale-while-revalidate=604800"); + + Cache.Entry entry = HttpHeaderParser.parseCacheHeaders(response); + assertNotNull(entry); + assertNull(entry.etag); + assertEqualsWithin(now + ONE_DAY_MILLIS, entry.softTtl, ONE_MINUTE_MILLIS); + assertEquals(entry.softTtl, entry.ttl); + } + private void assertEqualsWithin(long expected, long value, long fudgeFactor) { long diff = Math.abs(expected - value); assertTrue(diff < fudgeFactor); @@ -253,7 +285,7 @@ public class HttpHeaderParserTest { assertNotNull(entry); assertEquals("Yow!", entry.etag); - assertEqualsWithin(now + 24 * ONE_HOUR_MILLIS, entry.ttl, ONE_MINUTE_MILLIS); + assertEqualsWithin(now + ONE_DAY_MILLIS, entry.ttl, ONE_MINUTE_MILLIS); assertEquals(entry.softTtl, entry.ttl); assertEquals("ISO-8859-1", HttpHeaderParser.parseCharset(headers)); } diff --git a/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java b/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java index 81de6fe..8a19817 100644 --- a/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java +++ b/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java @@ -84,6 +84,8 @@ public class ImageLoaderTest { assertNotNull(ImageLoader.class.getMethod("getImageListener", ImageView.class, int.class, int.class)); assertNotNull(ImageLoader.class.getMethod("isCached", String.class, int.class, int.class)); + assertNotNull(ImageLoader.class.getMethod("isCached", String.class, int.class, int.class, + ImageView.ScaleType.class)); assertNotNull(ImageLoader.class.getMethod("get", String.class, ImageLoader.ImageListener.class)); assertNotNull(ImageLoader.class.getMethod("get", String.class, |