aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/com/android/volley/CacheDispatcherTest.java
diff options
context:
space:
mode:
authorAnonymous <no-reply@google.com>2017-09-25 10:46:08 -0700
committerJeff Davidson <jpd@google.com>2017-09-25 10:50:44 -0700
commitac8d9a1d940de5b5335c82c56dd42dec728dd443 (patch)
treefb13707e6dfdd4c3a4cbee1f66749bf6066b0dad /src/test/java/com/android/volley/CacheDispatcherTest.java
parent8b42d211a58fc5b434921a51cae2c99a806e00eb (diff)
downloadvolley-ac8d9a1d940de5b5335c82c56dd42dec728dd443.tar.gz
Import of Volley from GitHub to AOSP.
- 5fb28f66748df4f89b49c1493693d1f65c6bb23e Fix NPEs/compile errors introduced by header changes. (#96) by Jeff Davidson <jpd236@cornell.edu> - e16a426da3bcffb1a8de1700ddbe69201540d93c Fix RequestQueueIntegrationTest flakiness. (#94) by Jeff Davidson <jpd236@cornell.edu> - 96feb3b09a6301b9573212027af21db7be5c8be1 Improve Volley header handling. (#91) by Jeff Davidson <jpd236@cornell.edu> - a794c075a62ddf438178b2e15cc79ab5502588fb For waiting requests, use ArrayList instead of LinkedList... by Ulrike Hager <uhager42@gmail.com> - 787ef0cc731c28b528f744dea64bd5429f99e153 Specify .aar packaging in SNAPSHOT POM. by Jeff Davidson <jpd236@cornell.edu> - b2bb59ab2ff08f4d468303071f050ce938349379 Fix soft TTL for duplicate requests (#73) by Ulrike Hager <uhager42@gmail.com> - b33a53f1793b475842f91a0fe166749118afcfc0 Deprecate Volley's use of Apache HTTP. (#75) by Jeff Davidson <jpd236@cornell.edu> GitOrigin-RevId: 5fb28f66748df4f89b49c1493693d1f65c6bb23e Change-Id: Ia04d2967e9923d2430a04f2474aa69ce82e114ce
Diffstat (limited to 'src/test/java/com/android/volley/CacheDispatcherTest.java')
-rw-r--r--src/test/java/com/android/volley/CacheDispatcherTest.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/test/java/com/android/volley/CacheDispatcherTest.java b/src/test/java/com/android/volley/CacheDispatcherTest.java
index 42bdda0..54886f8 100644
--- a/src/test/java/com/android/volley/CacheDispatcherTest.java
+++ b/src/test/java/com/android/volley/CacheDispatcherTest.java
@@ -112,4 +112,60 @@ public class CacheDispatcherTest {
Request request = mNetworkQueue.take();
assertSame(entry, request.getCacheEntry());
}
+
+ @Test public void duplicateCacheMiss() throws Exception {
+ MockRequest secondRequest = new MockRequest();
+ mRequest.setSequence(1);
+ secondRequest.setSequence(2);
+ mCacheQueue.add(mRequest);
+ mCacheQueue.add(secondRequest);
+ mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS);
+ assertTrue(mNetworkQueue.size() == 1);
+ assertFalse(mDelivery.postResponse_called);
+ }
+
+ @Test public void duplicateSoftExpiredCacheHit_failedRequest() throws Exception {
+ Cache.Entry entry = CacheTestUtils.makeRandomCacheEntry(null, false, true);
+ mCache.setEntryToReturn(entry);
+
+ MockRequest secondRequest = new MockRequest();
+ mRequest.setSequence(1);
+ secondRequest.setSequence(2);
+
+ mCacheQueue.add(mRequest);
+ mCacheQueue.add(secondRequest);
+ mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS);
+
+ assertTrue(mNetworkQueue.size() == 1);
+ assertTrue(mDelivery.postResponse_calledNtimes == 2);
+
+ Request request = mNetworkQueue.take();
+ request.notifyListenerResponseNotUsable();
+ // Second request should now be in network queue.
+ assertTrue(mNetworkQueue.size() == 1);
+ request = mNetworkQueue.take();
+ assertTrue(request.equals(secondRequest));
+ }
+
+ @Test public void duplicateSoftExpiredCacheHit_successfulRequest() throws Exception {
+ Cache.Entry entry = CacheTestUtils.makeRandomCacheEntry(null, false, true);
+ mCache.setEntryToReturn(entry);
+
+ MockRequest secondRequest = new MockRequest();
+ mRequest.setSequence(1);
+ secondRequest.setSequence(2);
+
+ mCacheQueue.add(mRequest);
+ mCacheQueue.add(secondRequest);
+ mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS);
+
+ assertTrue(mNetworkQueue.size() == 1);
+ assertTrue(mDelivery.postResponse_calledNtimes == 2);
+
+ Request request = mNetworkQueue.take();
+ request.notifyListenerResponseReceived(Response.success(null, entry));
+ // Second request should have delivered response.
+ assertTrue(mNetworkQueue.size() == 0);
+ assertTrue(mDelivery.postResponse_calledNtimes == 3);
+ }
}