aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorAnonymous <no-reply@google.com>2018-05-07 11:39:31 -0700
committerJeff Davidson <jpd@google.com>2018-05-10 20:11:47 +0000
commit9a128540048414c78a2be9524f93b6234c640b3a (patch)
treef39fa51c442a9c6922d1f6def2e75d5dca677f20 /src/test/java
parentaee0d184daa41c0abb5bf88580ad6cf7fea63d72 (diff)
downloadvolley-9a128540048414c78a2be9524f93b6234c640b3a.tar.gz
Import of Volley from GitHub to AOSP.android-o-mr1-iot-release-1.0.1
Adds android-support-annotations as a runtime dependency in Android.mk. - 28588322fa4eca3c1a7922b8a2f7b4a97d5c099a Fix concurrent modification errors in ImageContainer. (#1... by Jeff Davidson <jpd236@cornell.edu> - ba3b40457a97b3b3812cb00191b41cb0af4149df Fix unchecked operations in Volley build. (#178) by Jeff Davidson <jpd236@cornell.edu> - 62c19019e43a76ba4a084b25548e7fb1cfd4a457 Always close HttpURLConnections in HurlStack. (#176) by Jeff Davidson <jpd236@cornell.edu> - 36c80f25a78cf2ba2feb2d697f12f9bbca96bf43 Port dispatcher tests to mockito. (#172) by Jeff Davidson <jpd236@cornell.edu> - 15b55093fc8ac86902a745f46a2bdea825e797a3 Cleaning up parameter comments + unnecessary generics. (#... by Jeff Davidson <jpd236@cornell.edu> - 6b341755e522f23de149544536b9b69c7b7b8305 Remove all wildcard imports. (#170) by Jeff Davidson <jpd236@cornell.edu> - a8424005b3ba6d17fc9e123a2176da702f3ead10 Use actual annotations instead of comments. (#169) by Jeff Davidson <jpd236@cornell.edu> - bdc80555aee738235bd33c26878bbe8ce382d795 Apply google-java-format to all code. (#165) by Jeff Davidson <jpd236@cornell.edu> - 5307293b15dd0c32f53b8f1fd8c198caa443982e Integrate Volley builds with errorprone. (#162) by Jeff Davidson <jpd236@cornell.edu> - fa586029500e6813d654f1b454cd3345b0a43897 Fail Travis builds if snapshot uploading fails. (#163) by Jeff Davidson <jpd236@cornell.edu> - 0ebb97e9b0192e879088b38b5992158e99364dc6 Stop publishing bintray-info.json. (#141) by Jeff Davidson <jpd236@cornell.edu> - b89dfbd2e6964acfe5561e268300611a83957a15 fix: request time contains RequestQueue blocking time. (#... by dezng <dezng123@gmail.com> - c2bfd86596e588c924c2c7e0ae0940053800af5c Guard against illegal argument and OOM exceptions in read... by Joe Bowbeer <joe.bowbeer@gmail.com> - fc8ff0423fe9a3af6595088b34f912fb2d920ffb Log fix (#112) by Navid Ht <navid.htb@gmail.com> - 47586f0fd42acd5ce09dfc767387df685edfa547 Bump version to 1.1.1-SNAPSHOT. (#123) by Jeff Davidson <jpd236@cornell.edu> - 1392f961af17d0f5ba367d8d199a18e5325b882e Update deploy credentials. (#122) by Jeff Davidson <jpd236@cornell.edu> - ffe9281709f38f84492ce898603d3ec084326a57 Set project group and version. (#120) by Jeff Davidson <jpd236@cornell.edu> GitOrigin-RevId: 28588322fa4eca3c1a7922b8a2f7b4a97d5c099a Change-Id: Ifeea069df2f0a5fd10bc3d4686601c88906ee653
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/com/android/volley/CacheDispatcherTest.java254
-rw-r--r--src/test/java/com/android/volley/NetworkDispatcherTest.java115
-rw-r--r--src/test/java/com/android/volley/NetworkResponseTest.java16
-rw-r--r--src/test/java/com/android/volley/RequestQueueIntegrationTest.java86
-rw-r--r--src/test/java/com/android/volley/RequestQueueTest.java29
-rw-r--r--src/test/java/com/android/volley/RequestTest.java25
-rw-r--r--src/test/java/com/android/volley/ResponseDeliveryTest.java19
-rw-r--r--src/test/java/com/android/volley/mock/MockCache.java65
-rw-r--r--src/test/java/com/android/volley/mock/MockHttpStack.java1
-rw-r--r--src/test/java/com/android/volley/mock/MockHttpURLConnection.java77
-rw-r--r--src/test/java/com/android/volley/mock/MockNetwork.java58
-rw-r--r--src/test/java/com/android/volley/mock/MockRequest.java2
-rw-r--r--src/test/java/com/android/volley/mock/MockResponseDelivery.java54
-rw-r--r--src/test/java/com/android/volley/mock/TestRequest.java10
-rw-r--r--src/test/java/com/android/volley/mock/WaitableQueue.java72
-rw-r--r--src/test/java/com/android/volley/toolbox/AdaptedHttpStackTest.java55
-rw-r--r--src/test/java/com/android/volley/toolbox/AndroidAuthenticatorTest.java26
-rw-r--r--src/test/java/com/android/volley/toolbox/BaseHttpStackTest.java102
-rw-r--r--src/test/java/com/android/volley/toolbox/BasicNetworkTest.java102
-rw-r--r--src/test/java/com/android/volley/toolbox/ByteArrayPoolTest.java18
-rw-r--r--src/test/java/com/android/volley/toolbox/CacheTest.java4
-rw-r--r--src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java108
-rw-r--r--src/test/java/com/android/volley/toolbox/HttpClientStackTest.java46
-rw-r--r--src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java70
-rw-r--r--src/test/java/com/android/volley/toolbox/HurlStackTest.java187
-rw-r--r--src/test/java/com/android/volley/toolbox/ImageLoaderTest.java58
-rw-r--r--src/test/java/com/android/volley/toolbox/ImageRequestTest.java60
-rw-r--r--src/test/java/com/android/volley/toolbox/JsonRequestCharsetTest.java42
-rw-r--r--src/test/java/com/android/volley/toolbox/JsonRequestTest.java52
-rw-r--r--src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java36
-rw-r--r--src/test/java/com/android/volley/toolbox/PoolingByteArrayOutputStreamTest.java17
-rw-r--r--src/test/java/com/android/volley/toolbox/RequestFutureTest.java4
-rw-r--r--src/test/java/com/android/volley/toolbox/RequestQueueTest.java15
-rw-r--r--src/test/java/com/android/volley/toolbox/RequestTest.java20
-rw-r--r--src/test/java/com/android/volley/toolbox/ResponseTest.java22
-rw-r--r--src/test/java/com/android/volley/toolbox/StringRequestTest.java17
-rw-r--r--src/test/java/com/android/volley/utils/CacheTestUtils.java6
-rw-r--r--src/test/java/com/android/volley/utils/ImmediateResponseDelivery.java18
38 files changed, 965 insertions, 1003 deletions
diff --git a/src/test/java/com/android/volley/CacheDispatcherTest.java b/src/test/java/com/android/volley/CacheDispatcherTest.java
index a39be7b..9c5d3c3 100644
--- a/src/test/java/com/android/volley/CacheDispatcherTest.java
+++ b/src/test/java/com/android/volley/CacheDispatcherTest.java
@@ -16,183 +16,219 @@
package com.android.volley;
-import com.android.volley.mock.MockCache;
-import com.android.volley.mock.MockRequest;
-import com.android.volley.mock.MockResponseDelivery;
-import com.android.volley.mock.WaitableQueue;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+import com.android.volley.toolbox.StringRequest;
import com.android.volley.utils.CacheTestUtils;
-
-import org.junit.After;
+import java.util.concurrent.BlockingQueue;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
import org.robolectric.RobolectricTestRunner;
-import static org.junit.Assert.*;
-
@RunWith(RobolectricTestRunner.class)
@SuppressWarnings("rawtypes")
public class CacheDispatcherTest {
private CacheDispatcher mDispatcher;
- private WaitableQueue mCacheQueue;
- private WaitableQueue mNetworkQueue;
- private MockCache mCache;
- private MockResponseDelivery mDelivery;
- private MockRequest mRequest;
+ private @Mock BlockingQueue<Request<?>> mCacheQueue;
+ private @Mock BlockingQueue<Request<?>> mNetworkQueue;
+ private @Mock Cache mCache;
+ private @Mock ResponseDelivery mDelivery;
+ private StringRequest mRequest;
- private static final long TIMEOUT_MILLIS = 5000;
+ @Before
+ public void setUp() throws Exception {
+ initMocks(this);
- @Before public void setUp() throws Exception {
- mCacheQueue = new WaitableQueue();
- mNetworkQueue = new WaitableQueue();
- mCache = new MockCache();
- mDelivery = new MockResponseDelivery();
+ mRequest = new StringRequest(Request.Method.GET, "http://foo", null, null);
+ mDispatcher = new CacheDispatcher(mCacheQueue, mNetworkQueue, mCache, mDelivery);
+ }
- mRequest = new MockRequest();
+ private static class WaitForever implements Answer {
+ @Override
+ public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
+ Thread.sleep(Long.MAX_VALUE);
+ return null;
+ }
+ }
- mDispatcher = new CacheDispatcher(mCacheQueue, mNetworkQueue, mCache, mDelivery);
+ @Test
+ public void runStopsOnQuit() throws Exception {
+ when(mCacheQueue.take()).then(new WaitForever());
mDispatcher.start();
+ mDispatcher.quit();
+ mDispatcher.join(1000);
}
- @After public void tearDown() throws Exception {
- mDispatcher.quit();
- mDispatcher.join();
+ private static void verifyNoResponse(ResponseDelivery delivery) {
+ verify(delivery, never()).postResponse(any(Request.class), any(Response.class));
+ verify(delivery, never())
+ .postResponse(any(Request.class), any(Response.class), any(Runnable.class));
+ verify(delivery, never()).postError(any(Request.class), any(VolleyError.class));
}
// A cancelled request should not be processed at all.
- @Test public void cancelledRequest() throws Exception {
+ @Test
+ public void cancelledRequest() throws Exception {
mRequest.cancel();
- mCacheQueue.add(mRequest);
- mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS);
- assertFalse(mCache.getCalled);
- assertFalse(mDelivery.wasEitherResponseCalled());
+ mDispatcher.processRequest(mRequest);
+ verify(mCache, never()).get(anyString());
+ verifyNoResponse(mDelivery);
}
// A cache miss does not post a response and puts the request on the network queue.
- @Test public void cacheMiss() throws Exception {
- mCacheQueue.add(mRequest);
- mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS);
- assertFalse(mDelivery.wasEitherResponseCalled());
- assertTrue(mNetworkQueue.size() > 0);
- Request request = mNetworkQueue.take();
- assertNull(request.getCacheEntry());
+ @Test
+ public void cacheMiss() throws Exception {
+ mDispatcher.processRequest(mRequest);
+ verifyNoResponse(mDelivery);
+ verify(mNetworkQueue).put(mRequest);
+ assertNull(mRequest.getCacheEntry());
}
// A non-expired cache hit posts a response and does not queue to the network.
- @Test public void nonExpiredCacheHit() throws Exception {
+ @Test
+ public void nonExpiredCacheHit() throws Exception {
Cache.Entry entry = CacheTestUtils.makeRandomCacheEntry(null, false, false);
- mCache.setEntryToReturn(entry);
- mCacheQueue.add(mRequest);
- mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS);
- assertTrue(mDelivery.postResponse_called);
- assertFalse(mDelivery.postError_called);
+ when(mCache.get(anyString())).thenReturn(entry);
+ mDispatcher.processRequest(mRequest);
+ verify(mDelivery).postResponse(any(Request.class), any(Response.class));
+ verify(mDelivery, never()).postError(any(Request.class), any(VolleyError.class));
}
// A soft-expired cache hit posts a response and queues to the network.
- @Test public void softExpiredCacheHit() throws Exception {
+ @Test
+ public void softExpiredCacheHit() throws Exception {
Cache.Entry entry = CacheTestUtils.makeRandomCacheEntry(null, false, true);
- mCache.setEntryToReturn(entry);
- mCacheQueue.add(mRequest);
- mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS);
- assertTrue(mDelivery.postResponse_called);
- assertFalse(mDelivery.postError_called);
- assertTrue(mNetworkQueue.size() > 0);
- Request request = mNetworkQueue.take();
- assertSame(entry, request.getCacheEntry());
+ when(mCache.get(anyString())).thenReturn(entry);
+ mDispatcher.processRequest(mRequest);
+
+ // Soft expiration needs to use the deferred Runnable variant of postResponse,
+ // so make sure it gets to run.
+ ArgumentCaptor<Runnable> runnable = ArgumentCaptor.forClass(Runnable.class);
+ verify(mDelivery).postResponse(any(Request.class), any(Response.class), runnable.capture());
+ runnable.getValue().run();
+ // This way we can verify the behavior of the Runnable as well.
+ verify(mNetworkQueue).put(mRequest);
+ assertSame(entry, mRequest.getCacheEntry());
+
+ verify(mDelivery, never()).postError(any(Request.class), any(VolleyError.class));
}
// An expired cache hit does not post a response and queues to the network.
- @Test public void expiredCacheHit() throws Exception {
+ @Test
+ public void expiredCacheHit() throws Exception {
Cache.Entry entry = CacheTestUtils.makeRandomCacheEntry(null, true, true);
- mCache.setEntryToReturn(entry);
- mCacheQueue.add(mRequest);
- mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS);
- assertFalse(mDelivery.wasEitherResponseCalled());
- assertTrue(mNetworkQueue.size() > 0);
- Request request = mNetworkQueue.take();
- assertSame(entry, request.getCacheEntry());
+ when(mCache.get(anyString())).thenReturn(entry);
+ mDispatcher.processRequest(mRequest);
+ verifyNoResponse(mDelivery);
+ verify(mNetworkQueue).put(mRequest);
+ assertSame(entry, mRequest.getCacheEntry());
}
- @Test public void duplicateCacheMiss() throws Exception {
- MockRequest secondRequest = new MockRequest();
+ @Test
+ public void duplicateCacheMiss() throws Exception {
+ StringRequest secondRequest =
+ new StringRequest(Request.Method.GET, "http://foo", null, null);
mRequest.setSequence(1);
secondRequest.setSequence(2);
- mCacheQueue.add(mRequest);
- mCacheQueue.add(secondRequest);
- mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS);
- assertTrue(mNetworkQueue.size() == 1);
- assertFalse(mDelivery.postResponse_called);
+ mDispatcher.processRequest(mRequest);
+ mDispatcher.processRequest(secondRequest);
+ verify(mNetworkQueue).put(mRequest);
+ verifyNoResponse(mDelivery);
}
- @Test public void tripleCacheMiss_networkErrorOnFirst() throws Exception {
- MockRequest secondRequest = new MockRequest();
- MockRequest thirdRequest = new MockRequest();
+ @Test
+ public void tripleCacheMiss_networkErrorOnFirst() throws Exception {
+ StringRequest secondRequest =
+ new StringRequest(Request.Method.GET, "http://foo", null, null);
+ StringRequest thirdRequest =
+ new StringRequest(Request.Method.GET, "http://foo", null, null);
mRequest.setSequence(1);
secondRequest.setSequence(2);
thirdRequest.setSequence(3);
- mCacheQueue.add(mRequest);
- mCacheQueue.add(secondRequest);
- mCacheQueue.add(thirdRequest);
- mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS);
+ mDispatcher.processRequest(mRequest);
+ mDispatcher.processRequest(secondRequest);
+ mDispatcher.processRequest(thirdRequest);
- assertTrue(mNetworkQueue.size() == 1);
- assertFalse(mDelivery.postResponse_called);
+ verify(mNetworkQueue).put(mRequest);
+ verifyNoResponse(mDelivery);
- Request request = mNetworkQueue.take();
- request.notifyListenerResponseNotUsable();
+ ((Request<?>) mRequest).notifyListenerResponseNotUsable();
// Second request should now be in network queue.
- assertTrue(mNetworkQueue.size() == 1);
- request = mNetworkQueue.take();
- assertTrue(request.equals(secondRequest));
+ verify(mNetworkQueue).put(secondRequest);
// Another unusable response, third request should now be added.
- request.notifyListenerResponseNotUsable();
- assertTrue(mNetworkQueue.size() == 1);
- request = mNetworkQueue.take();
- assertTrue(request.equals(thirdRequest));
+ ((Request<?>) secondRequest).notifyListenerResponseNotUsable();
+ verify(mNetworkQueue).put(thirdRequest);
}
- @Test public void duplicateSoftExpiredCacheHit_failedRequest() throws Exception {
+ @Test
+ public void duplicateSoftExpiredCacheHit_failedRequest() throws Exception {
Cache.Entry entry = CacheTestUtils.makeRandomCacheEntry(null, false, true);
- mCache.setEntryToReturn(entry);
+ when(mCache.get(anyString())).thenReturn(entry);
- MockRequest secondRequest = new MockRequest();
+ StringRequest secondRequest =
+ new StringRequest(Request.Method.GET, "http://foo", null, null);
mRequest.setSequence(1);
secondRequest.setSequence(2);
- mCacheQueue.add(mRequest);
- mCacheQueue.add(secondRequest);
- mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS);
+ mDispatcher.processRequest(mRequest);
+ mDispatcher.processRequest(secondRequest);
- assertTrue(mNetworkQueue.size() == 1);
- assertTrue(mDelivery.postResponse_calledNtimes == 2);
+ // Soft expiration needs to use the deferred Runnable variant of postResponse,
+ // so make sure it gets to run.
+ ArgumentCaptor<Runnable> runnable = ArgumentCaptor.forClass(Runnable.class);
+ verify(mDelivery).postResponse(any(Request.class), any(Response.class), runnable.capture());
+ runnable.getValue().run();
+ // This way we can verify the behavior of the Runnable as well.
- Request request = mNetworkQueue.take();
- request.notifyListenerResponseNotUsable();
+ verify(mNetworkQueue).put(mRequest);
+ verify(mDelivery)
+ .postResponse(any(Request.class), any(Response.class), any(Runnable.class));
+
+ ((Request<?>) mRequest).notifyListenerResponseNotUsable();
// Second request should now be in network queue.
- assertTrue(mNetworkQueue.size() == 1);
- request = mNetworkQueue.take();
- assertTrue(request.equals(secondRequest));
+ verify(mNetworkQueue).put(secondRequest);
}
- @Test public void duplicateSoftExpiredCacheHit_successfulRequest() throws Exception {
+ @Test
+ public void duplicateSoftExpiredCacheHit_successfulRequest() throws Exception {
Cache.Entry entry = CacheTestUtils.makeRandomCacheEntry(null, false, true);
- mCache.setEntryToReturn(entry);
+ when(mCache.get(anyString())).thenReturn(entry);
- MockRequest secondRequest = new MockRequest();
+ StringRequest secondRequest =
+ new StringRequest(Request.Method.GET, "http://foo", null, null);
mRequest.setSequence(1);
secondRequest.setSequence(2);
- mCacheQueue.add(mRequest);
- mCacheQueue.add(secondRequest);
- mCacheQueue.waitUntilEmpty(TIMEOUT_MILLIS);
+ mDispatcher.processRequest(mRequest);
+ mDispatcher.processRequest(secondRequest);
+
+ // Soft expiration needs to use the deferred Runnable variant of postResponse,
+ // so make sure it gets to run.
+ ArgumentCaptor<Runnable> runnable = ArgumentCaptor.forClass(Runnable.class);
+ verify(mDelivery).postResponse(any(Request.class), any(Response.class), runnable.capture());
+ runnable.getValue().run();
+ // This way we can verify the behavior of the Runnable as well.
- assertTrue(mNetworkQueue.size() == 1);
- assertTrue(mDelivery.postResponse_calledNtimes == 2);
+ verify(mNetworkQueue).put(mRequest);
+ verify(mDelivery)
+ .postResponse(any(Request.class), any(Response.class), any(Runnable.class));
- Request request = mNetworkQueue.take();
- request.notifyListenerResponseReceived(Response.success(null, entry));
+ ((Request<?>) mRequest).notifyListenerResponseReceived(Response.success(null, entry));
// Second request should have delivered response.
- assertTrue(mNetworkQueue.size() == 0);
- assertTrue(mDelivery.postResponse_calledNtimes == 3);
+ verify(mNetworkQueue, never()).put(secondRequest);
+ verify(mDelivery)
+ .postResponse(any(Request.class), any(Response.class), any(Runnable.class));
}
}
diff --git a/src/test/java/com/android/volley/NetworkDispatcherTest.java b/src/test/java/com/android/volley/NetworkDispatcherTest.java
index c5763bd..51c6971 100644
--- a/src/test/java/com/android/volley/NetworkDispatcherTest.java
+++ b/src/test/java/com/android/volley/NetworkDispatcherTest.java
@@ -16,85 +16,84 @@
package com.android.volley;
-import com.android.volley.mock.MockCache;
-import com.android.volley.mock.MockNetwork;
-import com.android.volley.mock.MockRequest;
-import com.android.volley.mock.MockResponseDelivery;
-import com.android.volley.mock.WaitableQueue;
-import org.junit.After;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.mockito.MockitoAnnotations.initMocks;
+
+import com.android.volley.toolbox.StringRequest;
+import java.nio.charset.StandardCharsets;
+import java.util.Arrays;
+import java.util.concurrent.BlockingQueue;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
import org.robolectric.RobolectricTestRunner;
-import java.util.Arrays;
-
-import static org.junit.Assert.*;
-
@RunWith(RobolectricTestRunner.class)
public class NetworkDispatcherTest {
private NetworkDispatcher mDispatcher;
- private MockResponseDelivery mDelivery;
- private WaitableQueue mNetworkQueue;
- private MockNetwork mNetwork;
- private MockCache mCache;
- private MockRequest mRequest;
+ private @Mock ResponseDelivery mDelivery;
+ private @Mock BlockingQueue<Request<?>> mNetworkQueue;
+ private @Mock Network mNetwork;
+ private @Mock Cache mCache;
+ private StringRequest mRequest;
- private static final byte[] CANNED_DATA = "Ceci n'est pas une vraie reponse".getBytes();
- private static final long TIMEOUT_MILLIS = 5000;
+ private static final byte[] CANNED_DATA =
+ "Ceci n'est pas une vraie reponse".getBytes(StandardCharsets.UTF_8);
- @Before public void setUp() throws Exception {
- mDelivery = new MockResponseDelivery();
- mNetworkQueue = new WaitableQueue();
- mNetwork = new MockNetwork();
- mCache = new MockCache();
- mRequest = new MockRequest();
+ @Before
+ public void setUp() throws Exception {
+ initMocks(this);
+ mRequest = new StringRequest(Request.Method.GET, "http://foo", null, null);
mDispatcher = new NetworkDispatcher(mNetworkQueue, mNetwork, mCache, mDelivery);
- mDispatcher.start();
}
- @After public void tearDown() throws Exception {
- mDispatcher.quit();
- mDispatcher.join();
- }
+ @Test
+ public void successPostsResponse() throws Exception {
+ when(mNetwork.performRequest(any(Request.class)))
+ .thenReturn(new NetworkResponse(CANNED_DATA));
+ mDispatcher.processRequest(mRequest);
- @Test public void successPostsResponse() throws Exception {
- mNetwork.setDataToReturn(CANNED_DATA);
- mNetwork.setNumExceptionsToThrow(0);
- mNetworkQueue.add(mRequest);
- mNetworkQueue.waitUntilEmpty(TIMEOUT_MILLIS);
- assertFalse(mDelivery.postError_called);
- assertTrue(mDelivery.postResponse_called);
- Response<?> response = mDelivery.responsePosted;
- assertNotNull(response);
- assertTrue(response.isSuccess());
- assertTrue(Arrays.equals((byte[])response.result, CANNED_DATA));
+ ArgumentCaptor<Response> response = ArgumentCaptor.forClass(Response.class);
+ verify(mDelivery).postResponse(any(Request.class), response.capture());
+ assertTrue(response.getValue().isSuccess());
+ assertEquals(response.getValue().result, new String(CANNED_DATA, StandardCharsets.UTF_8));
+
+ verify(mDelivery, never()).postError(any(Request.class), any(VolleyError.class));
}
- @Test public void exceptionPostsError() throws Exception {
- mNetwork.setNumExceptionsToThrow(MockNetwork.ALWAYS_THROW_EXCEPTIONS);
- mNetworkQueue.add(mRequest);
- mNetworkQueue.waitUntilEmpty(TIMEOUT_MILLIS);
- assertFalse(mDelivery.postResponse_called);
- assertTrue(mDelivery.postError_called);
+ @Test
+ public void exceptionPostsError() throws Exception {
+ when(mNetwork.performRequest(any(Request.class))).thenThrow(new ServerError());
+ mDispatcher.processRequest(mRequest);
+
+ verify(mDelivery).postError(any(Request.class), any(VolleyError.class));
+ verify(mDelivery, never()).postResponse(any(Request.class), any(Response.class));
}
- @Test public void shouldCacheFalse() throws Exception {
+ @Test
+ public void shouldCacheFalse() throws Exception {
mRequest.setShouldCache(false);
- mNetworkQueue.add(mRequest);
- mNetworkQueue.waitUntilEmpty(TIMEOUT_MILLIS);
- assertFalse(mCache.putCalled);
+ mDispatcher.processRequest(mRequest);
+ verify(mCache, never()).put(anyString(), any(Cache.Entry.class));
}
- @Test public void shouldCacheTrue() throws Exception {
- mNetwork.setDataToReturn(CANNED_DATA);
+ @Test
+ public void shouldCacheTrue() throws Exception {
+ when(mNetwork.performRequest(any(Request.class)))
+ .thenReturn(new NetworkResponse(CANNED_DATA));
mRequest.setShouldCache(true);
- mRequest.setCacheKey("bananaphone");
- mNetworkQueue.add(mRequest);
- mNetworkQueue.waitUntilEmpty(TIMEOUT_MILLIS);
- assertTrue(mCache.putCalled);
- assertNotNull(mCache.entryPut);
- assertTrue(Arrays.equals(mCache.entryPut.data, CANNED_DATA));
- assertEquals("bananaphone", mCache.keyPut);
+ mDispatcher.processRequest(mRequest);
+ ArgumentCaptor<Cache.Entry> entry = ArgumentCaptor.forClass(Cache.Entry.class);
+ verify(mCache).put(eq(mRequest.getCacheKey()), entry.capture());
+ assertTrue(Arrays.equals(entry.getValue().data, CANNED_DATA));
}
}
diff --git a/src/test/java/com/android/volley/NetworkResponseTest.java b/src/test/java/com/android/volley/NetworkResponseTest.java
index be34143..48b1f6d 100644
--- a/src/test/java/com/android/volley/NetworkResponseTest.java
+++ b/src/test/java/com/android/volley/NetworkResponseTest.java
@@ -1,18 +1,17 @@
package com.android.volley;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
-
-import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
public class NetworkResponseTest {
@@ -30,7 +29,8 @@ public class NetworkResponseTest {
expectedHeaders.add(new Header("key1", "value1"));
expectedHeaders.add(new Header("key2", "value2"));
- assertThat(expectedHeaders,
+ assertThat(
+ expectedHeaders,
containsInAnyOrder(resp.allHeaders.toArray(new Header[resp.allHeaders.size()])));
}
diff --git a/src/test/java/com/android/volley/RequestQueueIntegrationTest.java b/src/test/java/com/android/volley/RequestQueueIntegrationTest.java
index 304a1ab..a2bfbc6 100644
--- a/src/test/java/com/android/volley/RequestQueueIntegrationTest.java
+++ b/src/test/java/com/android/volley/RequestQueueIntegrationTest.java
@@ -16,13 +16,19 @@
package com.android.volley;
+import static org.mockito.Mockito.inOrder;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.timeout;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.mockito.MockitoAnnotations.initMocks;
+
import com.android.volley.Request.Priority;
import com.android.volley.RequestQueue.RequestFinishedListener;
import com.android.volley.mock.MockRequest;
import com.android.volley.mock.ShadowSystemClock;
import com.android.volley.toolbox.NoCache;
import com.android.volley.utils.ImmediateResponseDelivery;
-
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -33,14 +39,6 @@ import org.mockito.stubbing.Answer;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
-import static org.mockito.Mockito.inOrder;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.timeout;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.mockito.MockitoAnnotations.initMocks;
-
-
/**
* Integration tests for {@link RequestQueue} that verify its behavior in conjunction with real
* dispatcher, queues and Requests.
@@ -56,12 +54,14 @@ public class RequestQueueIntegrationTest {
@Mock private RequestFinishedListener<byte[]> mMockListener;
@Mock private RequestFinishedListener<byte[]> mMockListener2;
- @Before public void setUp() throws Exception {
+ @Before
+ public void setUp() throws Exception {
mDelivery = new ImmediateResponseDelivery();
initMocks(this);
}
- @Test public void add_requestProcessedInCorrectOrder() throws Exception {
+ @Test
+ public void add_requestProcessedInCorrectOrder() throws Exception {
// Enqueue 2 requests with different cache keys, and different priorities. The second,
// higher priority request takes 20ms.
// Assert that the first request is only handled after the first one has been parsed and
@@ -73,13 +73,15 @@ public class RequestQueueIntegrationTest {
lowerPriorityReq.setPriority(Priority.LOW);
higherPriorityReq.setPriority(Priority.HIGH);
- Answer<NetworkResponse> delayAnswer = new Answer<NetworkResponse>() {
- @Override
- public NetworkResponse answer(InvocationOnMock invocationOnMock) throws Throwable {
- Thread.sleep(20);
- return mock(NetworkResponse.class);
- }
- };
+ Answer<NetworkResponse> delayAnswer =
+ new Answer<NetworkResponse>() {
+ @Override
+ public NetworkResponse answer(InvocationOnMock invocationOnMock)
+ throws Throwable {
+ Thread.sleep(20);
+ return mock(NetworkResponse.class);
+ }
+ };
// delay only for higher request
when(mMockNetwork.performRequest(higherPriorityReq)).thenAnswer(delayAnswer);
when(mMockNetwork.performRequest(lowerPriorityReq)).thenReturn(mock(NetworkResponse.class));
@@ -100,19 +102,22 @@ public class RequestQueueIntegrationTest {
}
/** Asserts that requests with same cache key are processed in order. */
- @Test public void add_dedupeByCacheKey() throws Exception {
+ @Test
+ public void add_dedupeByCacheKey() throws Exception {
// Enqueue 2 requests with the same cache key. The first request takes 20ms. Assert that the
// second request is only handled after the first one has been parsed and delivered.
MockRequest req1 = new MockRequest();
MockRequest req2 = new MockRequest();
- Answer<NetworkResponse> delayAnswer = new Answer<NetworkResponse>() {
- @Override
- public NetworkResponse answer(InvocationOnMock invocationOnMock) throws Throwable {
- Thread.sleep(20);
- return mock(NetworkResponse.class);
- }
- };
- //delay only for first
+ Answer<NetworkResponse> delayAnswer =
+ new Answer<NetworkResponse>() {
+ @Override
+ public NetworkResponse answer(InvocationOnMock invocationOnMock)
+ throws Throwable {
+ Thread.sleep(20);
+ return mock(NetworkResponse.class);
+ }
+ };
+ // delay only for first
when(mMockNetwork.performRequest(req1)).thenAnswer(delayAnswer);
when(mMockNetwork.performRequest(req2)).thenReturn(mock(NetworkResponse.class));
@@ -131,16 +136,19 @@ public class RequestQueueIntegrationTest {
queue.stop();
}
- /** Verify RequestFinishedListeners are informed when requests are canceled. */
- @Test public void add_requestFinishedListenerCanceled() throws Exception {
+ /** Verify RequestFinishedListeners are informed when requests are canceled. */
+ @Test
+ public void add_requestFinishedListenerCanceled() throws Exception {
MockRequest request = new MockRequest();
- Answer<NetworkResponse> delayAnswer = new Answer<NetworkResponse>() {
- @Override
- public NetworkResponse answer(InvocationOnMock invocationOnMock) throws Throwable {
- Thread.sleep(200);
- return mock(NetworkResponse.class);
- }
- };
+ Answer<NetworkResponse> delayAnswer =
+ new Answer<NetworkResponse>() {
+ @Override
+ public NetworkResponse answer(InvocationOnMock invocationOnMock)
+ throws Throwable {
+ Thread.sleep(200);
+ return mock(NetworkResponse.class);
+ }
+ };
RequestQueue queue = new RequestQueue(new NoCache(), mMockNetwork, 1, mDelivery);
when(mMockNetwork.performRequest(request)).thenAnswer(delayAnswer);
@@ -155,7 +163,8 @@ public class RequestQueueIntegrationTest {
}
/** Verify RequestFinishedListeners are informed when requests are successfully delivered. */
- @Test public void add_requestFinishedListenerSuccess() throws Exception {
+ @Test
+ public void add_requestFinishedListenerSuccess() throws Exception {
MockRequest request = new MockRequest();
RequestQueue queue = new RequestQueue(new NoCache(), mMockNetwork, 1, mDelivery);
@@ -171,7 +180,8 @@ public class RequestQueueIntegrationTest {
}
/** Verify RequestFinishedListeners are informed when request errors. */
- @Test public void add_requestFinishedListenerError() throws Exception {
+ @Test
+ public void add_requestFinishedListenerError() throws Exception {
MockRequest request = new MockRequest();
RequestQueue queue = new RequestQueue(new NoCache(), mMockNetwork, 1, mDelivery);
diff --git a/src/test/java/com/android/volley/RequestQueueTest.java b/src/test/java/com/android/volley/RequestQueueTest.java
index bcf3ff2..11c6fe2 100644
--- a/src/test/java/com/android/volley/RequestQueueTest.java
+++ b/src/test/java/com/android/volley/RequestQueueTest.java
@@ -16,8 +16,15 @@
package com.android.volley;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.mockito.MockitoAnnotations.initMocks;
+
import com.android.volley.mock.ShadowSystemClock;
import com.android.volley.toolbox.NoCache;
+import com.android.volley.toolbox.StringRequest;
import com.android.volley.utils.ImmediateResponseDelivery;
import org.junit.Before;
import org.junit.Test;
@@ -26,13 +33,7 @@ import org.mockito.Mock;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.*;
-import static org.mockito.MockitoAnnotations.initMocks;
-
-/**
- * Unit tests for RequestQueue, with all dependencies mocked out
- */
+/** Unit tests for RequestQueue, with all dependencies mocked out */
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {ShadowSystemClock.class})
public class RequestQueueTest {
@@ -40,22 +41,24 @@ public class RequestQueueTest {
private ResponseDelivery mDelivery;
@Mock private Network mMockNetwork;
- @Before public void setUp() throws Exception {
+ @Before
+ public void setUp() throws Exception {
mDelivery = new ImmediateResponseDelivery();
initMocks(this);
}
- @Test public void cancelAll_onlyCorrectTag() throws Exception {
+ @Test
+ public void cancelAll_onlyCorrectTag() throws Exception {
RequestQueue queue = new RequestQueue(new NoCache(), mMockNetwork, 0, mDelivery);
Object tagA = new Object();
Object tagB = new Object();
- Request req1 = mock(Request.class);
+ StringRequest req1 = mock(StringRequest.class);
when(req1.getTag()).thenReturn(tagA);
- Request req2 = mock(Request.class);
+ StringRequest req2 = mock(StringRequest.class);
when(req2.getTag()).thenReturn(tagB);
- Request req3 = mock(Request.class);
+ StringRequest req3 = mock(StringRequest.class);
when(req3.getTag()).thenReturn(tagA);
- Request req4 = mock(Request.class);
+ StringRequest req4 = mock(StringRequest.class);
when(req4.getTag()).thenReturn(tagA);
queue.add(req1); // A
diff --git a/src/test/java/com/android/volley/RequestTest.java b/src/test/java/com/android/volley/RequestTest.java
index d5beca5..e2dd655 100644
--- a/src/test/java/com/android/volley/RequestTest.java
+++ b/src/test/java/com/android/volley/RequestTest.java
@@ -16,17 +16,20 @@
package com.android.volley;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
import com.android.volley.Request.Priority;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import static org.junit.Assert.*;
-
@RunWith(RobolectricTestRunner.class)
public class RequestTest {
-
- @Test public void compareTo() {
+
+ @Test
+ public void compareTo() {
int sequence = 0;
TestRequest low = new TestRequest(Priority.LOW);
low.setSequence(sequence++);
@@ -45,8 +48,9 @@ public class RequestTest {
assertTrue(immediate.compareTo(high) < 0);
}
- private class TestRequest extends Request<Object> {
+ private static class TestRequest extends Request<Object> {
private Priority mPriority = Priority.NORMAL;
+
public TestRequest(Priority priority) {
super(Request.Method.GET, "", null);
mPriority = priority;
@@ -58,8 +62,7 @@ public class RequestTest {
}
@Override
- protected void deliverResponse(Object response) {
- }
+ protected void deliverResponse(Object response) {}
@Override
protected Response<Object> parseNetworkResponse(NetworkResponse response) {
@@ -67,7 +70,8 @@ public class RequestTest {
}
}
- @Test public void urlParsing() {
+ @Test
+ public void urlParsing() {
UrlParseRequest nullUrl = new UrlParseRequest(null);
assertEquals(0, nullUrl.getTrafficStatsTag());
UrlParseRequest emptyUrl = new UrlParseRequest("");
@@ -80,14 +84,13 @@ public class RequestTest {
assertFalse(0 == goodProtocol.getTrafficStatsTag());
}
- private class UrlParseRequest extends Request<Object> {
+ private static class UrlParseRequest extends Request<Object> {
public UrlParseRequest(String url) {
super(Request.Method.GET, url, null);
}
@Override
- protected void deliverResponse(Object response) {
- }
+ protected void deliverResponse(Object response) {}
@Override
protected Response<Object> parseNetworkResponse(NetworkResponse response) {
diff --git a/src/test/java/com/android/volley/ResponseDeliveryTest.java b/src/test/java/com/android/volley/ResponseDeliveryTest.java
index 9fadfc3..6e71c3b 100644
--- a/src/test/java/com/android/volley/ResponseDeliveryTest.java
+++ b/src/test/java/com/android/volley/ResponseDeliveryTest.java
@@ -16,18 +16,17 @@
package com.android.volley;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
import com.android.volley.mock.MockRequest;
import com.android.volley.utils.CacheTestUtils;
import com.android.volley.utils.ImmediateResponseDelivery;
-
-import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import static org.junit.Assert.*;
-
@RunWith(RobolectricTestRunner.class)
public class ResponseDeliveryTest {
@@ -35,7 +34,8 @@ public class ResponseDeliveryTest {
private MockRequest mRequest;
private Response<byte[]> mSuccessResponse;
- @Before public void setUp() throws Exception {
+ @Before
+ public void setUp() throws Exception {
// Make the delivery just run its posted responses immediately.
mDelivery = new ImmediateResponseDelivery();
mRequest = new MockRequest();
@@ -45,20 +45,23 @@ public class ResponseDeliveryTest {
mSuccessResponse = Response.success(data, cacheEntry);
}
- @Test public void postResponseCallsDeliverResponse() {
+ @Test
+ public void postResponseCallsDeliverResponse() {
mDelivery.postResponse(mRequest, mSuccessResponse);
assertTrue(mRequest.deliverResponse_called);
assertFalse(mRequest.deliverError_called);
}
- @Test public void postResponseSuppressesCanceled() {
+ @Test
+ public void postResponseSuppressesCanceled() {
mRequest.cancel();
mDelivery.postResponse(mRequest, mSuccessResponse);
assertFalse(mRequest.deliverResponse_called);
assertFalse(mRequest.deliverError_called);
}
- @Test public void postErrorCallsDeliverError() {
+ @Test
+ public void postErrorCallsDeliverError() {
Response<byte[]> errorResponse = Response.error(new ServerError());
mDelivery.postResponse(mRequest, errorResponse);
diff --git a/src/test/java/com/android/volley/mock/MockCache.java b/src/test/java/com/android/volley/mock/MockCache.java
deleted file mode 100644
index 85a4607..0000000
--- a/src/test/java/com/android/volley/mock/MockCache.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.volley.mock;
-
-import com.android.volley.Cache;
-
-public class MockCache implements Cache {
-
- public boolean clearCalled = false;
- @Override
- public void clear() {
- clearCalled = true;
- }
-
- public boolean getCalled = false;
- private Entry mFakeEntry = null;
-
- public void setEntryToReturn(Entry entry) {
- mFakeEntry = entry;
- }
-
- @Override
- public Entry get(String key) {
- getCalled = true;
- return mFakeEntry;
- }
-
- public boolean putCalled = false;
- public String keyPut = null;
- public Entry entryPut = null;
-
- @Override
- public void put(String key, Entry entry) {
- putCalled = true;
- keyPut = key;
- entryPut = entry;
- }
-
- @Override
- public void invalidate(String key, boolean fullExpire) {
- }
-
- @Override
- public void remove(String key) {
- }
-
- @Override
- public void initialize() {
- }
-
-}
diff --git a/src/test/java/com/android/volley/mock/MockHttpStack.java b/src/test/java/com/android/volley/mock/MockHttpStack.java
index 56b29f1..b86e7a0 100644
--- a/src/test/java/com/android/volley/mock/MockHttpStack.java
+++ b/src/test/java/com/android/volley/mock/MockHttpStack.java
@@ -20,7 +20,6 @@ import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.toolbox.BaseHttpStack;
import com.android.volley.toolbox.HttpResponse;
-
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
diff --git a/src/test/java/com/android/volley/mock/MockHttpURLConnection.java b/src/test/java/com/android/volley/mock/MockHttpURLConnection.java
deleted file mode 100644
index efa3a21..0000000
--- a/src/test/java/com/android/volley/mock/MockHttpURLConnection.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.volley.mock;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.net.HttpURLConnection;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-public class MockHttpURLConnection extends HttpURLConnection {
-
- private boolean mDoOutput;
- private String mRequestMethod;
- private OutputStream mOutputStream;
-
- public MockHttpURLConnection() throws MalformedURLException {
- super(new URL("http://foo.com"));
- mDoOutput = false;
- mRequestMethod = "GET";
- mOutputStream = new ByteArrayOutputStream();
- }
-
- @Override
- public void setDoOutput(boolean flag) {
- mDoOutput = flag;
- }
-
- @Override
- public boolean getDoOutput() {
- return mDoOutput;
- }
-
- @Override
- public void setRequestMethod(String method) {
- mRequestMethod = method;
- }
-
- @Override
- public String getRequestMethod() {
- return mRequestMethod;
- }
-
- @Override
- public OutputStream getOutputStream() {
- return mOutputStream;
- }
-
- @Override
- public void disconnect() {
- }
-
- @Override
- public boolean usingProxy() {
- return false;
- }
-
- @Override
- public void connect() throws IOException {
- }
-
-}
diff --git a/src/test/java/com/android/volley/mock/MockNetwork.java b/src/test/java/com/android/volley/mock/MockNetwork.java
deleted file mode 100644
index 207ec63..0000000
--- a/src/test/java/com/android/volley/mock/MockNetwork.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.volley.mock;
-
-import com.android.volley.Network;
-import com.android.volley.NetworkResponse;
-import com.android.volley.Request;
-import com.android.volley.ServerError;
-import com.android.volley.VolleyError;
-
-public class MockNetwork implements Network {
- public final static int ALWAYS_THROW_EXCEPTIONS = -1;
-
- private int mNumExceptionsToThrow = 0;
- private byte[] mDataToReturn = null;
-
- /**
- * @param numExceptionsToThrow number of times to throw an exception or
- * {@link #ALWAYS_THROW_EXCEPTIONS}
- */
- public void setNumExceptionsToThrow(int numExceptionsToThrow) {
- mNumExceptionsToThrow = numExceptionsToThrow;
- }
-
- public void setDataToReturn(byte[] data) {
- mDataToReturn = data;
- }
-
- public Request<?> requestHandled = null;
-
- @Override
- public NetworkResponse performRequest(Request<?> request) throws VolleyError {
- if (mNumExceptionsToThrow > 0 || mNumExceptionsToThrow == ALWAYS_THROW_EXCEPTIONS) {
- if (mNumExceptionsToThrow != ALWAYS_THROW_EXCEPTIONS) {
- mNumExceptionsToThrow--;
- }
- throw new ServerError();
- }
-
- requestHandled = request;
- return new NetworkResponse(mDataToReturn);
- }
-
-}
diff --git a/src/test/java/com/android/volley/mock/MockRequest.java b/src/test/java/com/android/volley/mock/MockRequest.java
index 9815ea8..6fc26b4 100644
--- a/src/test/java/com/android/volley/mock/MockRequest.java
+++ b/src/test/java/com/android/volley/mock/MockRequest.java
@@ -22,7 +22,6 @@ import com.android.volley.Response;
import com.android.volley.Response.ErrorListener;
import com.android.volley.VolleyError;
import com.android.volley.utils.CacheTestUtils;
-
import java.util.HashMap;
import java.util.Map;
@@ -97,5 +96,4 @@ public class MockRequest extends Request<byte[]> {
parseResponse_called = true;
return Response.success(response.data, CacheTestUtils.makeRandomCacheEntry(response.data));
}
-
}
diff --git a/src/test/java/com/android/volley/mock/MockResponseDelivery.java b/src/test/java/com/android/volley/mock/MockResponseDelivery.java
deleted file mode 100644
index e923c1a..0000000
--- a/src/test/java/com/android/volley/mock/MockResponseDelivery.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.volley.mock;
-
-import com.android.volley.Request;
-import com.android.volley.Response;
-import com.android.volley.ResponseDelivery;
-import com.android.volley.VolleyError;
-
-public class MockResponseDelivery implements ResponseDelivery {
-
- public boolean postResponse_called = false;
- public boolean postError_called = false;
- public long postResponse_calledNtimes = 0;
-
- public boolean wasEitherResponseCalled() {
- return postResponse_called || postError_called;
- }
-
- public Response<?> responsePosted = null;
- @Override
- public void postResponse(Request<?> request, Response<?> response) {
- postResponse_called = true;
- postResponse_calledNtimes++;
- responsePosted = response;
- }
-
- @Override
- public void postResponse(Request<?> request, Response<?> response, Runnable runnable) {
- postResponse_called = true;
- postResponse_calledNtimes++;
- responsePosted = response;
- runnable.run();
- }
-
- @Override
- public void postError(Request<?> request, VolleyError error) {
- postError_called = true;
- }
-}
diff --git a/src/test/java/com/android/volley/mock/TestRequest.java b/src/test/java/com/android/volley/mock/TestRequest.java
index 16bf79e..f397f01 100644
--- a/src/test/java/com/android/volley/mock/TestRequest.java
+++ b/src/test/java/com/android/volley/mock/TestRequest.java
@@ -19,7 +19,6 @@ package com.android.volley.mock;
import com.android.volley.NetworkResponse;
import com.android.volley.Request;
import com.android.volley.Response;
-
import java.util.HashMap;
import java.util.Map;
@@ -43,8 +42,7 @@ public class TestRequest {
}
@Override
- protected void deliverResponse(byte[] response) {
- }
+ protected void deliverResponse(byte[] response) {}
}
/** Test example of a GET request in the deprecated style. */
@@ -78,8 +76,8 @@ public class TestRequest {
}
/**
- * Test example of a POST request in the new style. In the new style, it is possible
- * to have a POST with no body.
+ * Test example of a POST request in the new style. In the new style, it is possible to have a
+ * POST with no body.
*/
public static class Post extends Base {
public Post() {
@@ -103,7 +101,7 @@ public class TestRequest {
}
/**
- * Test example of a PUT request in the new style. In the new style, it is possible to have a
+ * Test example of a PUT request in the new style. In the new style, it is possible to have a
* PUT with no body.
*/
public static class Put extends Base {
diff --git a/src/test/java/com/android/volley/mock/WaitableQueue.java b/src/test/java/com/android/volley/mock/WaitableQueue.java
deleted file mode 100644
index 079bbf5..0000000
--- a/src/test/java/com/android/volley/mock/WaitableQueue.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.volley.mock;
-
-import com.android.volley.NetworkResponse;
-import com.android.volley.Request;
-import com.android.volley.Response;
-
-import java.util.concurrent.PriorityBlockingQueue;
-import java.util.concurrent.Semaphore;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-// TODO: the name of this class sucks
-@SuppressWarnings("serial")
-public class WaitableQueue extends PriorityBlockingQueue<Request<?>> {
- private final Request<?> mStopRequest = new MagicStopRequest();
- private final Semaphore mStopEvent = new Semaphore(0);
-
- // TODO: this isn't really "until empty" it's "until next call to take() after empty"
- public void waitUntilEmpty(long timeoutMillis)
- throws TimeoutException, InterruptedException {
- add(mStopRequest);
- if (!mStopEvent.tryAcquire(timeoutMillis, TimeUnit.MILLISECONDS)) {
- throw new TimeoutException();
- }
- }
-
- @Override
- public Request<?> take() throws InterruptedException {
- Request<?> item = super.take();
- if (item == mStopRequest) {
- mStopEvent.release();
- return take();
- }
- return item;
- }
-
- private static class MagicStopRequest extends Request<Object> {
- public MagicStopRequest() {
- super(Request.Method.GET, "", null);
- }
-
- @Override
- public Priority getPriority() {
- return Priority.LOW;
- }
-
- @Override
- protected Response<Object> parseNetworkResponse(NetworkResponse response) {
- return null;
- }
-
- @Override
- protected void deliverResponse(Object response) {
- }
- }
-}
diff --git a/src/test/java/com/android/volley/toolbox/AdaptedHttpStackTest.java b/src/test/java/com/android/volley/toolbox/AdaptedHttpStackTest.java
index 615687d..dbd6535 100644
--- a/src/test/java/com/android/volley/toolbox/AdaptedHttpStackTest.java
+++ b/src/test/java/com/android/volley/toolbox/AdaptedHttpStackTest.java
@@ -1,11 +1,20 @@
package com.android.volley.toolbox;
-import android.util.Pair;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.when;
import com.android.volley.Header;
import com.android.volley.Request;
import com.android.volley.mock.TestRequest;
-
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.SocketTimeoutException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
@@ -18,34 +27,16 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.SocketTimeoutException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
-import static org.mockito.Mockito.when;
-
@RunWith(RobolectricTestRunner.class)
public class AdaptedHttpStackTest {
private static final Request<?> REQUEST = new TestRequest.Get();
private static final Map<String, String> ADDITIONAL_HEADERS = Collections.emptyMap();
- @Mock
- private HttpStack mHttpStack;
- @Mock
- private HttpResponse mHttpResponse;
- @Mock
- private StatusLine mStatusLine;
- @Mock
- private HttpEntity mHttpEntity;
- @Mock
- private InputStream mContent;
+ @Mock private HttpStack mHttpStack;
+ @Mock private HttpResponse mHttpResponse;
+ @Mock private StatusLine mStatusLine;
+ @Mock private HttpEntity mHttpEntity;
+ @Mock private InputStream mContent;
private AdaptedHttpStack mAdaptedHttpStack;
@@ -112,12 +103,14 @@ public class AdaptedHttpStackTest {
public void responseWithHeaders() throws Exception {
when(mHttpStack.performRequest(REQUEST, ADDITIONAL_HEADERS)).thenReturn(mHttpResponse);
when(mStatusLine.getStatusCode()).thenReturn(12345);
- when(mHttpResponse.getAllHeaders()).thenReturn(new org.apache.http.Header[] {
- new BasicHeader("header1", "value1_B"),
- new BasicHeader("header3", "value3"),
- new BasicHeader("HEADER2", "value2"),
- new BasicHeader("header1", "value1_A")
- });
+ when(mHttpResponse.getAllHeaders())
+ .thenReturn(
+ new org.apache.http.Header[] {
+ new BasicHeader("header1", "value1_B"),
+ new BasicHeader("header3", "value3"),
+ new BasicHeader("HEADER2", "value2"),
+ new BasicHeader("header1", "value1_A")
+ });
com.android.volley.toolbox.HttpResponse response =
mAdaptedHttpStack.executeRequest(REQUEST, ADDITIONAL_HEADERS);
diff --git a/src/test/java/com/android/volley/toolbox/AndroidAuthenticatorTest.java b/src/test/java/com/android/volley/toolbox/AndroidAuthenticatorTest.java
index e878658..982eda2 100644
--- a/src/test/java/com/android/volley/toolbox/AndroidAuthenticatorTest.java
+++ b/src/test/java/com/android/volley/toolbox/AndroidAuthenticatorTest.java
@@ -16,6 +16,10 @@
package com.android.volley.toolbox;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
import android.accounts.Account;
import android.accounts.AccountManager;
import android.accounts.AccountManagerFuture;
@@ -26,33 +30,30 @@ import android.os.Bundle;
import com.android.volley.AuthFailureError;
import org.junit.Assert;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
-import static org.mockito.Mockito.*;
-
@RunWith(RobolectricTestRunner.class)
public class AndroidAuthenticatorTest {
- private AccountManager mAccountManager;
+ @Mock private AccountManager mAccountManager;
+ @Mock private AccountManagerFuture<Bundle> mFuture;
private Account mAccount;
- private AccountManagerFuture<Bundle> mFuture;
private AndroidAuthenticator mAuthenticator;
@Before
public void setUp() {
- mAccountManager = mock(AccountManager.class);
- mFuture = mock(AccountManagerFuture.class);
+ MockitoAnnotations.initMocks(this);
mAccount = new Account("coolperson", "cooltype");
mAuthenticator = new AndroidAuthenticator(mAccountManager, mAccount, "cooltype", false);
}
@Test(expected = AuthFailureError.class)
public void failedGetAuthToken() throws Exception {
- when(mAccountManager.getAuthToken(mAccount, "cooltype", false, null, null)).thenReturn(mFuture);
+ when(mAccountManager.getAuthToken(mAccount, "cooltype", false, null, null))
+ .thenReturn(mFuture);
when(mFuture.getResult()).thenThrow(new AuthenticatorException("sadness!"));
mAuthenticator.getAuthToken();
}
@@ -62,7 +63,8 @@ public class AndroidAuthenticatorTest {
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putParcelable(AccountManager.KEY_INTENT, intent);
- when(mAccountManager.getAuthToken(mAccount, "cooltype", false, null, null)).thenReturn(mFuture);
+ when(mAccountManager.getAuthToken(mAccount, "cooltype", false, null, null))
+ .thenReturn(mFuture);
when(mFuture.getResult()).thenReturn(bundle);
when(mFuture.isDone()).thenReturn(true);
when(mFuture.isCancelled()).thenReturn(false);
@@ -72,7 +74,8 @@ public class AndroidAuthenticatorTest {
@Test(expected = AuthFailureError.class)
public void missingAuthToken() throws Exception {
Bundle bundle = new Bundle();
- when(mAccountManager.getAuthToken(mAccount, "cooltype", false, null, null)).thenReturn(mFuture);
+ when(mAccountManager.getAuthToken(mAccount, "cooltype", false, null, null))
+ .thenReturn(mFuture);
when(mFuture.getResult()).thenReturn(bundle);
when(mFuture.isDone()).thenReturn(true);
when(mFuture.isCancelled()).thenReturn(false);
@@ -89,7 +92,8 @@ public class AndroidAuthenticatorTest {
public void goodToken() throws Exception {
Bundle bundle = new Bundle();
bundle.putString(AccountManager.KEY_AUTHTOKEN, "monkey");
- when(mAccountManager.getAuthToken(mAccount, "cooltype", false, null, null)).thenReturn(mFuture);
+ when(mAccountManager.getAuthToken(mAccount, "cooltype", false, null, null))
+ .thenReturn(mFuture);
when(mFuture.getResult()).thenReturn(bundle);
when(mFuture.isDone()).thenReturn(true);
when(mFuture.isCancelled()).thenReturn(false);
diff --git a/src/test/java/com/android/volley/toolbox/BaseHttpStackTest.java b/src/test/java/com/android/volley/toolbox/BaseHttpStackTest.java
index 3ae145c..1049ad0 100644
--- a/src/test/java/com/android/volley/toolbox/BaseHttpStackTest.java
+++ b/src/test/java/com/android/volley/toolbox/BaseHttpStackTest.java
@@ -1,36 +1,32 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+
import com.android.volley.AuthFailureError;
import com.android.volley.Header;
import com.android.volley.Request;
import com.android.volley.mock.TestRequest;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
-import java.util.TreeMap;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertSame;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
public class BaseHttpStackTest {
private static final Request<?> REQUEST = new TestRequest.Get();
private static final Map<String, String> ADDITIONAL_HEADERS = Collections.emptyMap();
- @Mock
- private InputStream mContent;
+ @Mock private InputStream mContent;
@Before
public void setUp() {
@@ -39,16 +35,17 @@ public class BaseHttpStackTest {
@Test
public void legacyRequestWithoutBody() throws Exception {
- BaseHttpStack stack = new BaseHttpStack() {
- @Override
- public HttpResponse executeRequest(
- Request<?> request, Map<String, String> additionalHeaders)
- throws IOException, AuthFailureError {
- assertSame(REQUEST, request);
- assertSame(ADDITIONAL_HEADERS, additionalHeaders);
- return new HttpResponse(12345, Collections.<Header>emptyList());
- }
- };
+ BaseHttpStack stack =
+ new BaseHttpStack() {
+ @Override
+ public HttpResponse executeRequest(
+ Request<?> request, Map<String, String> additionalHeaders)
+ throws IOException, AuthFailureError {
+ assertSame(REQUEST, request);
+ assertSame(ADDITIONAL_HEADERS, additionalHeaders);
+ return new HttpResponse(12345, Collections.<Header>emptyList());
+ }
+ };
org.apache.http.HttpResponse resp = stack.performRequest(REQUEST, ADDITIONAL_HEADERS);
assertEquals(12345, resp.getStatusLine().getStatusCode());
assertEquals(0, resp.getAllHeaders().length);
@@ -57,20 +54,18 @@ public class BaseHttpStackTest {
@Test
public void legacyResponseWithBody() throws Exception {
- BaseHttpStack stack = new BaseHttpStack() {
- @Override
- public HttpResponse executeRequest(
- Request<?> request, Map<String, String> additionalHeaders)
- throws IOException, AuthFailureError {
- assertSame(REQUEST, request);
- assertSame(ADDITIONAL_HEADERS, additionalHeaders);
- return new HttpResponse(
- 12345,
- Collections.<Header>emptyList(),
- 555,
- mContent);
- }
- };
+ BaseHttpStack stack =
+ new BaseHttpStack() {
+ @Override
+ public HttpResponse executeRequest(
+ Request<?> request, Map<String, String> additionalHeaders)
+ throws IOException, AuthFailureError {
+ assertSame(REQUEST, request);
+ assertSame(ADDITIONAL_HEADERS, additionalHeaders);
+ return new HttpResponse(
+ 12345, Collections.<Header>emptyList(), 555, mContent);
+ }
+ };
org.apache.http.HttpResponse resp = stack.performRequest(REQUEST, ADDITIONAL_HEADERS);
assertEquals(12345, resp.getStatusLine().getStatusCode());
assertEquals(0, resp.getAllHeaders().length);
@@ -80,20 +75,21 @@ public class BaseHttpStackTest {
@Test
public void legacyResponseHeaders() throws Exception {
- BaseHttpStack stack = new BaseHttpStack() {
- @Override
- public HttpResponse executeRequest(
- Request<?> request, Map<String, String> additionalHeaders)
- throws IOException, AuthFailureError {
- assertSame(REQUEST, request);
- assertSame(ADDITIONAL_HEADERS, additionalHeaders);
- List<Header> headers = new ArrayList<>();
- headers.add(new Header("HeaderA", "ValueA"));
- headers.add(new Header("HeaderB", "ValueB_1"));
- headers.add(new Header("HeaderB", "ValueB_2"));
- return new HttpResponse(12345, headers);
- }
- };
+ BaseHttpStack stack =
+ new BaseHttpStack() {
+ @Override
+ public HttpResponse executeRequest(
+ Request<?> request, Map<String, String> additionalHeaders)
+ throws IOException, AuthFailureError {
+ assertSame(REQUEST, request);
+ assertSame(ADDITIONAL_HEADERS, additionalHeaders);
+ List<Header> headers = new ArrayList<>();
+ headers.add(new Header("HeaderA", "ValueA"));
+ headers.add(new Header("HeaderB", "ValueB_1"));
+ headers.add(new Header("HeaderB", "ValueB_2"));
+ return new HttpResponse(12345, headers);
+ }
+ };
org.apache.http.HttpResponse resp = stack.performRequest(REQUEST, ADDITIONAL_HEADERS);
assertEquals(12345, resp.getStatusLine().getStatusCode());
assertEquals(3, resp.getAllHeaders().length);
diff --git a/src/test/java/com/android/volley/toolbox/BasicNetworkTest.java b/src/test/java/com/android/volley/toolbox/BasicNetworkTest.java
index 7f0d5e2..adf695d 100644
--- a/src/test/java/com/android/volley/toolbox/BasicNetworkTest.java
+++ b/src/test/java/com/android/volley/toolbox/BasicNetworkTest.java
@@ -16,6 +16,16 @@
package com.android.volley.toolbox;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.verify;
+import static org.mockito.MockitoAnnotations.initMocks;
+
import com.android.volley.AuthFailureError;
import com.android.volley.Cache.Entry;
import com.android.volley.Header;
@@ -27,33 +37,22 @@ import com.android.volley.ServerError;
import com.android.volley.TimeoutError;
import com.android.volley.VolleyError;
import com.android.volley.mock.MockHttpStack;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.robolectric.RobolectricTestRunner;
-
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.SocketTimeoutException;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
-import static org.hamcrest.Matchers.containsInAnyOrder;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.reset;
-import static org.mockito.Mockito.verify;
-import static org.mockito.MockitoAnnotations.initMocks;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
public class BasicNetworkTest {
@@ -61,14 +60,16 @@ public class BasicNetworkTest {
@Mock private Request<String> mMockRequest;
@Mock private RetryPolicy mMockRetryPolicy;
- @Before public void setUp() throws Exception {
+ @Before
+ public void setUp() throws Exception {
initMocks(this);
}
- @Test public void headersAndPostParams() throws Exception {
+ @Test
+ public void headersAndPostParams() throws Exception {
MockHttpStack mockHttpStack = new MockHttpStack();
InputStream responseStream =
- new ByteArrayInputStream("foobar".getBytes());
+ new ByteArrayInputStream("foobar".getBytes(StandardCharsets.UTF_8));
HttpResponse fakeResponse =
new HttpResponse(200, Collections.<Header>emptyList(), 6, responseStream);
mockHttpStack.setResponseToReturn(fakeResponse);
@@ -81,12 +82,16 @@ public class BasicNetworkTest {
httpNetwork.performRequest(request);
assertEquals("foo", mockHttpStack.getLastHeaders().get("requestheader"));
assertEquals("foobar", mockHttpStack.getLastHeaders().get("If-None-Match"));
- assertEquals("Sat, 19 Aug 2017 00:20:02 GMT",
+ assertEquals(
+ "Sat, 19 Aug 2017 00:20:02 GMT",
mockHttpStack.getLastHeaders().get("If-Modified-Since"));
- assertEquals("requestpost=foo&", new String(mockHttpStack.getLastPostBody()));
+ assertEquals(
+ "requestpost=foo&",
+ new String(mockHttpStack.getLastPostBody(), StandardCharsets.UTF_8));
}
- @Test public void notModified() throws Exception {
+ @Test
+ public void notModified() throws Exception {
MockHttpStack mockHttpStack = new MockHttpStack();
List<Header> headers = new ArrayList<>();
headers.add(new Header("ServerKeyA", "ServerValueA"));
@@ -94,8 +99,7 @@ public class BasicNetworkTest {
headers.add(new Header("SharedKey", "ServerValueShared"));
headers.add(new Header("sharedcaseinsensitivekey", "ServerValueShared1"));
headers.add(new Header("SharedCaseInsensitiveKey", "ServerValueShared2"));
- HttpResponse fakeResponse =
- new HttpResponse(HttpURLConnection.HTTP_NOT_MODIFIED, headers);
+ HttpResponse fakeResponse = new HttpResponse(HttpURLConnection.HTTP_NOT_MODIFIED, headers);
mockHttpStack.setResponseToReturn(fakeResponse);
BasicNetwork httpNetwork = new BasicNetwork(mockHttpStack);
Request<String> request = buildRequest();
@@ -117,11 +121,14 @@ public class BasicNetworkTest {
expectedHeaders.add(new Header("SharedCaseInsensitiveKey", "ServerValueShared2"));
expectedHeaders.add(new Header("CachedKeyA", "CachedValueA"));
expectedHeaders.add(new Header("CachedKeyB", "CachedValueB"));
- assertThat(expectedHeaders, containsInAnyOrder(
- response.allHeaders.toArray(new Header[response.allHeaders.size()])));
+ assertThat(
+ expectedHeaders,
+ containsInAnyOrder(
+ response.allHeaders.toArray(new Header[response.allHeaders.size()])));
}
- @Test public void notModified_legacyCache() throws Exception {
+ @Test
+ public void notModified_legacyCache() throws Exception {
MockHttpStack mockHttpStack = new MockHttpStack();
List<Header> headers = new ArrayList<>();
headers.add(new Header("ServerKeyA", "ServerValueA"));
@@ -129,8 +136,7 @@ public class BasicNetworkTest {
headers.add(new Header("SharedKey", "ServerValueShared"));
headers.add(new Header("sharedcaseinsensitivekey", "ServerValueShared1"));
headers.add(new Header("SharedCaseInsensitiveKey", "ServerValueShared2"));
- HttpResponse fakeResponse =
- new HttpResponse(HttpURLConnection.HTTP_NOT_MODIFIED, headers);
+ HttpResponse fakeResponse = new HttpResponse(HttpURLConnection.HTTP_NOT_MODIFIED, headers);
mockHttpStack.setResponseToReturn(fakeResponse);
BasicNetwork httpNetwork = new BasicNetwork(mockHttpStack);
Request<String> request = buildRequest();
@@ -152,11 +158,14 @@ public class BasicNetworkTest {
expectedHeaders.add(new Header("SharedCaseInsensitiveKey", "ServerValueShared2"));
expectedHeaders.add(new Header("CachedKeyA", "CachedValueA"));
expectedHeaders.add(new Header("CachedKeyB", "CachedValueB"));
- assertThat(expectedHeaders, containsInAnyOrder(
- response.allHeaders.toArray(new Header[response.allHeaders.size()])));
+ assertThat(
+ expectedHeaders,
+ containsInAnyOrder(
+ response.allHeaders.toArray(new Header[response.allHeaders.size()])));
}
- @Test public void socketTimeout() throws Exception {
+ @Test
+ public void socketTimeout() throws Exception {
MockHttpStack mockHttpStack = new MockHttpStack();
mockHttpStack.setExceptionToThrow(new SocketTimeoutException());
BasicNetwork httpNetwork = new BasicNetwork(mockHttpStack);
@@ -172,7 +181,8 @@ public class BasicNetworkTest {
verify(mMockRetryPolicy).retry(any(TimeoutError.class));
}
- @Test public void noConnection() throws Exception {
+ @Test
+ public void noConnection() throws Exception {
MockHttpStack mockHttpStack = new MockHttpStack();
mockHttpStack.setExceptionToThrow(new IOException());
BasicNetwork httpNetwork = new BasicNetwork(mockHttpStack);
@@ -188,7 +198,8 @@ public class BasicNetworkTest {
verify(mMockRetryPolicy, never()).retry(any(VolleyError.class));
}
- @Test public void unauthorized() throws Exception {
+ @Test
+ public void unauthorized() throws Exception {
MockHttpStack mockHttpStack = new MockHttpStack();
HttpResponse fakeResponse = new HttpResponse(401, Collections.<Header>emptyList());
mockHttpStack.setResponseToReturn(fakeResponse);
@@ -205,7 +216,8 @@ public class BasicNetworkTest {
verify(mMockRetryPolicy).retry(any(AuthFailureError.class));
}
- @Test public void forbidden() throws Exception {
+ @Test
+ public void forbidden() throws Exception {
MockHttpStack mockHttpStack = new MockHttpStack();
HttpResponse fakeResponse = new HttpResponse(403, Collections.<Header>emptyList());
mockHttpStack.setResponseToReturn(fakeResponse);
@@ -222,7 +234,8 @@ public class BasicNetworkTest {
verify(mMockRetryPolicy).retry(any(AuthFailureError.class));
}
- @Test public void redirect() throws Exception {
+ @Test
+ public void redirect() throws Exception {
for (int i = 300; i <= 399; i++) {
MockHttpStack mockHttpStack = new MockHttpStack();
HttpResponse fakeResponse = new HttpResponse(i, Collections.<Header>emptyList());
@@ -242,7 +255,8 @@ public class BasicNetworkTest {
}
}
- @Test public void otherClientError() throws Exception {
+ @Test
+ public void otherClientError() throws Exception {
for (int i = 400; i <= 499; i++) {
if (i == 401 || i == 403) {
// covered above.
@@ -266,13 +280,13 @@ public class BasicNetworkTest {
}
}
- @Test public void serverError_enableRetries() throws Exception {
+ @Test
+ public void serverError_enableRetries() throws Exception {
for (int i = 500; i <= 599; i++) {
MockHttpStack mockHttpStack = new MockHttpStack();
HttpResponse fakeResponse = new HttpResponse(i, Collections.<Header>emptyList());
mockHttpStack.setResponseToReturn(fakeResponse);
- BasicNetwork httpNetwork =
- new BasicNetwork(mockHttpStack, new ByteArrayPool(4096));
+ BasicNetwork httpNetwork = new BasicNetwork(mockHttpStack, new ByteArrayPool(4096));
Request<String> request = buildRequest();
request.setRetryPolicy(mMockRetryPolicy);
request.setShouldRetryServerErrors(true);
@@ -288,7 +302,8 @@ public class BasicNetworkTest {
}
}
- @Test public void serverError_disableRetries() throws Exception {
+ @Test
+ public void serverError_disableRetries() throws Exception {
for (int i = 500; i <= 599; i++) {
MockHttpStack mockHttpStack = new MockHttpStack();
HttpResponse fakeResponse = new HttpResponse(i, Collections.<Header>emptyList());
@@ -317,8 +332,7 @@ public class BasicNetworkTest {
}
@Override
- protected void deliverResponse(String response) {
- }
+ protected void deliverResponse(String response) {}
@Override
public Map<String, String> getHeaders() {
diff --git a/src/test/java/com/android/volley/toolbox/ByteArrayPoolTest.java b/src/test/java/com/android/volley/toolbox/ByteArrayPoolTest.java
index 661e994..62da207 100644
--- a/src/test/java/com/android/volley/toolbox/ByteArrayPoolTest.java
+++ b/src/test/java/com/android/volley/toolbox/ByteArrayPoolTest.java
@@ -16,15 +16,15 @@
package com.android.volley.toolbox;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import static org.junit.Assert.assertNotSame;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.*;
+import org.junit.Test;
public class ByteArrayPoolTest {
- @Test public void reusesBuffer() {
+ @Test
+ public void reusesBuffer() {
ByteArrayPool pool = new ByteArrayPool(32);
byte[] buf1 = pool.getBuf(16);
@@ -40,7 +40,8 @@ public class ByteArrayPoolTest {
assertTrue(buf3 != buf4);
}
- @Test public void obeysSizeLimit() {
+ @Test
+ public void obeysSizeLimit() {
ByteArrayPool pool = new ByteArrayPool(32);
byte[] buf1 = pool.getBuf(16);
@@ -61,7 +62,8 @@ public class ByteArrayPoolTest {
assertTrue(buf6 != buf1 && buf6 != buf2 && buf6 != buf3);
}
- @Test public void returnsBufferWithRightSize() {
+ @Test
+ public void returnsBufferWithRightSize() {
ByteArrayPool pool = new ByteArrayPool(32);
byte[] buf1 = pool.getBuf(16);
diff --git a/src/test/java/com/android/volley/toolbox/CacheTest.java b/src/test/java/com/android/volley/toolbox/CacheTest.java
index dcd8a27..22dae22 100644
--- a/src/test/java/com/android/volley/toolbox/CacheTest.java
+++ b/src/test/java/com/android/volley/toolbox/CacheTest.java
@@ -16,13 +16,13 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertNotNull;
+
import com.android.volley.Cache;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import static org.junit.Assert.assertNotNull;
-
@RunWith(RobolectricTestRunner.class)
public class CacheTest {
diff --git a/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java b/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java
index 04c071e..fb6392c 100644
--- a/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java
+++ b/src/test/java/com/android/volley/toolbox/DiskBasedCacheTest.java
@@ -16,21 +16,26 @@
package com.android.volley.toolbox;
+import static org.hamcrest.Matchers.arrayWithSize;
+import static org.hamcrest.Matchers.emptyArray;
+import static org.hamcrest.Matchers.equalTo;
+import static org.hamcrest.Matchers.is;
+import static org.hamcrest.Matchers.nullValue;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
+
import com.android.volley.Cache;
import com.android.volley.Header;
import com.android.volley.toolbox.DiskBasedCache.CacheHeader;
import com.android.volley.toolbox.DiskBasedCache.CountingInputStream;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import org.junit.rules.TemporaryFolder;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.EOFException;
@@ -42,38 +47,28 @@ import java.io.OutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
-import java.util.Map;
import java.util.Random;
-
-import static org.hamcrest.Matchers.arrayWithSize;
-import static org.hamcrest.Matchers.emptyArray;
-import static org.hamcrest.Matchers.equalTo;
-import static org.hamcrest.Matchers.is;
-import static org.hamcrest.Matchers.nullValue;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.Mockito.atLeastOnce;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.rules.TemporaryFolder;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.annotation.Config;
@RunWith(RobolectricTestRunner.class)
-@Config(manifest="src/main/AndroidManifest.xml", sdk=16)
+@Config(manifest = "src/main/AndroidManifest.xml", sdk = 16)
public class DiskBasedCacheTest {
private static final int MAX_SIZE = 1024 * 1024;
private Cache cache;
- @Rule
- public TemporaryFolder temporaryFolder = new TemporaryFolder();
+ @Rule public TemporaryFolder temporaryFolder = new TemporaryFolder();
- @Rule
- public ExpectedException exception = ExpectedException.none();
+ @Rule public ExpectedException exception = ExpectedException.none();
@Before
public void setup() throws IOException {
@@ -280,6 +275,33 @@ public class DiskBasedCacheTest {
}
@Test
+ public void testReadHeaderListWithNegativeSize() throws IOException {
+ // If a cached header list is corrupted and begins with a negative size,
+ // verify that readHeaderList will throw an IOException.
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DiskBasedCache.writeInt(baos, -1); // negative size
+ CountingInputStream cis =
+ new CountingInputStream(
+ new ByteArrayInputStream(baos.toByteArray()), Integer.MAX_VALUE);
+ // Expect IOException due to negative size
+ exception.expect(IOException.class);
+ DiskBasedCache.readHeaderList(cis);
+ }
+
+ @Test
+ public void testReadHeaderListWithGinormousSize() throws IOException {
+ // If a cached header list is corrupted and begins with 2GB size, verify
+ // that readHeaderList will throw EOFException rather than OutOfMemoryError.
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DiskBasedCache.writeInt(baos, Integer.MAX_VALUE); // 2GB size
+ CountingInputStream cis =
+ new CountingInputStream(new ByteArrayInputStream(baos.toByteArray()), baos.size());
+ // Expect EOFException when end of stream is reached
+ exception.expect(EOFException.class);
+ DiskBasedCache.readHeaderList(cis);
+ }
+
+ @Test
public void testFileIsDeletedWhenWriteHeaderFails() throws IOException {
// Create DataOutputStream that throws IOException
OutputStream mockedOutputStream = spy(OutputStream.class);
@@ -314,8 +336,7 @@ public class DiskBasedCacheTest {
doThrow(IOException.class).when(mockedInputStream).read();
// Create broken cache that fails to read anything
- DiskBasedCache broken =
- spy(new DiskBasedCache(temporaryFolder.getRoot()));
+ DiskBasedCache broken = spy(new DiskBasedCache(temporaryFolder.getRoot()));
doReturn(mockedInputStream).when(broken).createInputStream(any(File.class));
// Attempt to initialize
@@ -379,13 +400,15 @@ public class DiskBasedCacheTest {
/* Serialization tests */
- @Test public void testEmptyReadThrowsEOF() throws IOException {
- ByteArrayInputStream empty = new ByteArrayInputStream(new byte[]{});
+ @Test
+ public void testEmptyReadThrowsEOF() throws IOException {
+ ByteArrayInputStream empty = new ByteArrayInputStream(new byte[] {});
exception.expect(EOFException.class);
DiskBasedCache.readInt(empty);
}
- @Test public void serializeInt() throws IOException {
+ @Test
+ public void serializeInt() throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DiskBasedCache.writeInt(baos, 0);
DiskBasedCache.writeInt(baos, 19791214);
@@ -400,7 +423,8 @@ public class DiskBasedCacheTest {
assertEquals(DiskBasedCache.readInt(bais), Integer.MAX_VALUE);
}
- @Test public void serializeLong() throws Exception {
+ @Test
+ public void serializeLong() throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DiskBasedCache.writeLong(baos, 0);
DiskBasedCache.writeLong(baos, 31337);
@@ -419,7 +443,8 @@ public class DiskBasedCacheTest {
assertEquals(DiskBasedCache.readLong(bais), Long.MAX_VALUE);
}
- @Test public void serializeString() throws Exception {
+ @Test
+ public void serializeString() throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DiskBasedCache.writeString(baos, "");
DiskBasedCache.writeString(baos, "This is a string.");
@@ -431,7 +456,8 @@ public class DiskBasedCacheTest {
assertEquals(DiskBasedCache.readString(cis), "ファイカス");
}
- @Test public void serializeHeaders() throws Exception {
+ @Test
+ public void serializeHeaders() throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
List<Header> empty = new ArrayList<>();
DiskBasedCache.writeHeaderList(empty, baos);
diff --git a/src/test/java/com/android/volley/toolbox/HttpClientStackTest.java b/src/test/java/com/android/volley/toolbox/HttpClientStackTest.java
index 0c417d4..2a451dc 100644
--- a/src/test/java/com/android/volley/toolbox/HttpClientStackTest.java
+++ b/src/test/java/com/android/volley/toolbox/HttpClientStackTest.java
@@ -16,10 +16,12 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
import com.android.volley.Request.Method;
import com.android.volley.mock.TestRequest;
import com.android.volley.toolbox.HttpClientStack.HttpPatch;
-
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpHead;
@@ -28,17 +30,15 @@ import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.client.methods.HttpTrace;
import org.apache.http.client.methods.HttpUriRequest;
-
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import static org.junit.Assert.*;
-
@RunWith(RobolectricTestRunner.class)
public class HttpClientStackTest {
- @Test public void createDeprecatedGetRequest() throws Exception {
+ @Test
+ public void createDeprecatedGetRequest() throws Exception {
TestRequest.DeprecatedGet request = new TestRequest.DeprecatedGet();
assertEquals(request.getMethod(), Method.DEPRECATED_GET_OR_POST);
@@ -46,7 +46,8 @@ public class HttpClientStackTest {
assertTrue(httpRequest instanceof HttpGet);
}
- @Test public void createDeprecatedPostRequest() throws Exception {
+ @Test
+ public void createDeprecatedPostRequest() throws Exception {
TestRequest.DeprecatedPost request = new TestRequest.DeprecatedPost();
assertEquals(request.getMethod(), Method.DEPRECATED_GET_OR_POST);
@@ -54,7 +55,8 @@ public class HttpClientStackTest {
assertTrue(httpRequest instanceof HttpPost);
}
- @Test public void createGetRequest() throws Exception {
+ @Test
+ public void createGetRequest() throws Exception {
TestRequest.Get request = new TestRequest.Get();
assertEquals(request.getMethod(), Method.GET);
@@ -62,7 +64,8 @@ public class HttpClientStackTest {
assertTrue(httpRequest instanceof HttpGet);
}
- @Test public void createPostRequest() throws Exception {
+ @Test
+ public void createPostRequest() throws Exception {
TestRequest.Post request = new TestRequest.Post();
assertEquals(request.getMethod(), Method.POST);
@@ -70,7 +73,8 @@ public class HttpClientStackTest {
assertTrue(httpRequest instanceof HttpPost);
}
- @Test public void createPostRequestWithBody() throws Exception {
+ @Test
+ public void createPostRequestWithBody() throws Exception {
TestRequest.PostWithBody request = new TestRequest.PostWithBody();
assertEquals(request.getMethod(), Method.POST);
@@ -78,7 +82,8 @@ public class HttpClientStackTest {
assertTrue(httpRequest instanceof HttpPost);
}
- @Test public void createPutRequest() throws Exception {
+ @Test
+ public void createPutRequest() throws Exception {
TestRequest.Put request = new TestRequest.Put();
assertEquals(request.getMethod(), Method.PUT);
@@ -86,7 +91,8 @@ public class HttpClientStackTest {
assertTrue(httpRequest instanceof HttpPut);
}
- @Test public void createPutRequestWithBody() throws Exception {
+ @Test
+ public void createPutRequestWithBody() throws Exception {
TestRequest.PutWithBody request = new TestRequest.PutWithBody();
assertEquals(request.getMethod(), Method.PUT);
@@ -94,7 +100,8 @@ public class HttpClientStackTest {
assertTrue(httpRequest instanceof HttpPut);
}
- @Test public void createDeleteRequest() throws Exception {
+ @Test
+ public void createDeleteRequest() throws Exception {
TestRequest.Delete request = new TestRequest.Delete();
assertEquals(request.getMethod(), Method.DELETE);
@@ -102,7 +109,8 @@ public class HttpClientStackTest {
assertTrue(httpRequest instanceof HttpDelete);
}
- @Test public void createHeadRequest() throws Exception {
+ @Test
+ public void createHeadRequest() throws Exception {
TestRequest.Head request = new TestRequest.Head();
assertEquals(request.getMethod(), Method.HEAD);
@@ -110,7 +118,8 @@ public class HttpClientStackTest {
assertTrue(httpRequest instanceof HttpHead);
}
- @Test public void createOptionsRequest() throws Exception {
+ @Test
+ public void createOptionsRequest() throws Exception {
TestRequest.Options request = new TestRequest.Options();
assertEquals(request.getMethod(), Method.OPTIONS);
@@ -118,7 +127,8 @@ public class HttpClientStackTest {
assertTrue(httpRequest instanceof HttpOptions);
}
- @Test public void createTraceRequest() throws Exception {
+ @Test
+ public void createTraceRequest() throws Exception {
TestRequest.Trace request = new TestRequest.Trace();
assertEquals(request.getMethod(), Method.TRACE);
@@ -126,7 +136,8 @@ public class HttpClientStackTest {
assertTrue(httpRequest instanceof HttpTrace);
}
- @Test public void createPatchRequest() throws Exception {
+ @Test
+ public void createPatchRequest() throws Exception {
TestRequest.Patch request = new TestRequest.Patch();
assertEquals(request.getMethod(), Method.PATCH);
@@ -134,7 +145,8 @@ public class HttpClientStackTest {
assertTrue(httpRequest instanceof HttpPatch);
}
- @Test public void createPatchRequestWithBody() throws Exception {
+ @Test
+ public void createPatchRequestWithBody() throws Exception {
TestRequest.PatchWithBody request = new TestRequest.PatchWithBody();
assertEquals(request.getMethod(), Method.PATCH);
diff --git a/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java b/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java
index 9ccac05..9b670f9 100644
--- a/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java
+++ b/src/test/java/com/android/volley/toolbox/HttpHeaderParserTest.java
@@ -16,15 +16,14 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
import com.android.volley.Cache;
import com.android.volley.Header;
import com.android.volley.NetworkResponse;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -33,8 +32,10 @@ import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-
-import static org.junit.Assert.*;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
public class HttpHeaderParserTest {
@@ -47,12 +48,14 @@ public class HttpHeaderParserTest {
private NetworkResponse response;
private Map<String, String> headers;
- @Before public void setUp() throws Exception {
+ @Before
+ public void setUp() throws Exception {
headers = new HashMap<String, String>();
response = new NetworkResponse(0, null, headers, false);
}
- @Test public void parseCacheHeaders_noHeaders() {
+ @Test
+ public void parseCacheHeaders_noHeaders() {
Cache.Entry entry = HttpHeaderParser.parseCacheHeaders(response);
assertNotNull(entry);
@@ -63,7 +66,8 @@ public class HttpHeaderParserTest {
assertEquals(0, entry.softTtl);
}
- @Test public void parseCacheHeaders_headersSet() {
+ @Test
+ public void parseCacheHeaders_headersSet() {
headers.put("MyCustomHeader", "42");
Cache.Entry entry = HttpHeaderParser.parseCacheHeaders(response);
@@ -74,7 +78,8 @@ public class HttpHeaderParserTest {
assertEquals("42", entry.responseHeaders.get("MyCustomHeader"));
}
- @Test public void parseCacheHeaders_etag() {
+ @Test
+ public void parseCacheHeaders_etag() {
headers.put("ETag", "Yow!");
Cache.Entry entry = HttpHeaderParser.parseCacheHeaders(response);
@@ -83,7 +88,8 @@ public class HttpHeaderParserTest {
assertEquals("Yow!", entry.etag);
}
- @Test public void parseCacheHeaders_normalExpire() {
+ @Test
+ public void parseCacheHeaders_normalExpire() {
long now = System.currentTimeMillis();
headers.put("Date", rfc1123Date(now));
headers.put("Last-Modified", rfc1123Date(now - ONE_DAY_MILLIS));
@@ -99,7 +105,8 @@ public class HttpHeaderParserTest {
assertTrue(entry.ttl == entry.softTtl);
}
- @Test public void parseCacheHeaders_expiresInPast() {
+ @Test
+ public void parseCacheHeaders_expiresInPast() {
long now = System.currentTimeMillis();
headers.put("Date", rfc1123Date(now));
headers.put("Expires", rfc1123Date(now - ONE_HOUR_MILLIS));
@@ -113,7 +120,8 @@ public class HttpHeaderParserTest {
assertEquals(0, entry.softTtl);
}
- @Test public void parseCacheHeaders_serverRelative() {
+ @Test
+ public void parseCacheHeaders_serverRelative() {
long now = System.currentTimeMillis();
// Set "current" date as one hour in the future
@@ -127,7 +135,8 @@ public class HttpHeaderParserTest {
assertEquals(entry.softTtl, entry.ttl);
}
- @Test public void parseCacheHeaders_cacheControlOverridesExpires() {
+ @Test
+ public void parseCacheHeaders_cacheControlOverridesExpires() {
long now = System.currentTimeMillis();
headers.put("Date", rfc1123Date(now));
headers.put("Expires", rfc1123Date(now + ONE_HOUR_MILLIS));
@@ -141,7 +150,8 @@ public class HttpHeaderParserTest {
assertEquals(entry.softTtl, entry.ttl);
}
- @Test public void testParseCacheHeaders_staleWhileRevalidate() {
+ @Test
+ public void testParseCacheHeaders_staleWhileRevalidate() {
long now = System.currentTimeMillis();
headers.put("Date", rfc1123Date(now));
headers.put("Expires", rfc1123Date(now + ONE_HOUR_MILLIS));
@@ -159,7 +169,8 @@ public class HttpHeaderParserTest {
assertEqualsWithin(now + ONE_DAY_MILLIS + ONE_WEEK_MILLIS, entry.ttl, ONE_MINUTE_MILLIS);
}
- @Test public void parseCacheHeaders_cacheControlNoCache() {
+ @Test
+ public void parseCacheHeaders_cacheControlNoCache() {
long now = System.currentTimeMillis();
headers.put("Date", rfc1123Date(now));
headers.put("Expires", rfc1123Date(now + ONE_HOUR_MILLIS));
@@ -170,7 +181,8 @@ public class HttpHeaderParserTest {
assertNull(entry);
}
- @Test public void parseCacheHeaders_cacheControlMustRevalidateNoMaxAge() {
+ @Test
+ public void parseCacheHeaders_cacheControlMustRevalidateNoMaxAge() {
long now = System.currentTimeMillis();
headers.put("Date", rfc1123Date(now));
headers.put("Expires", rfc1123Date(now + ONE_HOUR_MILLIS));
@@ -183,7 +195,8 @@ public class HttpHeaderParserTest {
assertEquals(entry.softTtl, entry.ttl);
}
- @Test public void parseCacheHeaders_cacheControlMustRevalidateWithMaxAge() {
+ @Test
+ public void parseCacheHeaders_cacheControlMustRevalidateWithMaxAge() {
long now = System.currentTimeMillis();
headers.put("Date", rfc1123Date(now));
headers.put("Expires", rfc1123Date(now + ONE_HOUR_MILLIS));
@@ -196,7 +209,8 @@ public class HttpHeaderParserTest {
assertEquals(entry.softTtl, entry.ttl);
}
- @Test public void parseCacheHeaders_cacheControlMustRevalidateWithMaxAgeAndStale() {
+ @Test
+ public void parseCacheHeaders_cacheControlMustRevalidateWithMaxAgeAndStale() {
long now = System.currentTimeMillis();
headers.put("Date", rfc1123Date(now));
headers.put("Expires", rfc1123Date(now + ONE_HOUR_MILLIS));
@@ -205,8 +219,8 @@ public class HttpHeaderParserTest {
// - 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");
+ headers.put(
+ "Cache-Control", "must-revalidate, max-age=86400, stale-while-revalidate=604800");
Cache.Entry entry = HttpHeaderParser.parseCacheHeaders(response);
assertNotNull(entry);
@@ -227,7 +241,8 @@ public class HttpHeaderParserTest {
// --------------------------
- @Test public void parseCharset() {
+ @Test
+ public void parseCharset() {
// Like the ones we usually see
headers.put("Content-Type", "text/plain; charset=utf-8");
assertEquals("utf-8", HttpHeaderParser.parseCharset(headers));
@@ -269,7 +284,8 @@ public class HttpHeaderParserTest {
assertEquals("ISO-8859-1", HttpHeaderParser.parseCharset(headers));
}
- @Test public void parseCaseInsensitive() {
+ @Test
+ public void parseCaseInsensitive() {
long now = System.currentTimeMillis();
List<Header> headers = new ArrayList<>();
@@ -286,7 +302,7 @@ public class HttpHeaderParserTest {
assertEquals("Yow!", entry.etag);
assertEqualsWithin(now + ONE_DAY_MILLIS, entry.ttl, ONE_MINUTE_MILLIS);
assertEquals(entry.softTtl, entry.ttl);
- assertEquals("ISO-8859-1",
- HttpHeaderParser.parseCharset(HttpHeaderParser.toHeaderMap(headers)));
+ assertEquals(
+ "ISO-8859-1", HttpHeaderParser.parseCharset(HttpHeaderParser.toHeaderMap(headers)));
}
}
diff --git a/src/test/java/com/android/volley/toolbox/HurlStackTest.java b/src/test/java/com/android/volley/toolbox/HurlStackTest.java
index c8dd6f1..c1fc92d 100644
--- a/src/test/java/com/android/volley/toolbox/HurlStackTest.java
+++ b/src/test/java/com/android/volley/toolbox/HurlStackTest.java
@@ -16,151 +16,232 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
import com.android.volley.Header;
import com.android.volley.Request.Method;
-import com.android.volley.mock.MockHttpURLConnection;
import com.android.volley.mock.TestRequest;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.net.HttpURLConnection;
+import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
-import static org.junit.Assert.*;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
public class HurlStackTest {
- private MockHttpURLConnection mMockConnection;
-
- @Before public void setUp() throws Exception {
- mMockConnection = new MockHttpURLConnection();
+ @Mock private HttpURLConnection mMockConnection;
+ private HurlStack mHurlStack;
+
+ @Before
+ public void setUp() throws Exception {
+ MockitoAnnotations.initMocks(this);
+ when(mMockConnection.getOutputStream()).thenReturn(new ByteArrayOutputStream());
+
+ mHurlStack =
+ new HurlStack() {
+ @Override
+ protected HttpURLConnection createConnection(URL url) {
+ return mMockConnection;
+ }
+ };
}
- @Test public void connectionForDeprecatedGetRequest() throws Exception {
+ @Test
+ public void connectionForDeprecatedGetRequest() throws Exception {
TestRequest.DeprecatedGet request = new TestRequest.DeprecatedGet();
assertEquals(request.getMethod(), Method.DEPRECATED_GET_OR_POST);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("GET", mMockConnection.getRequestMethod());
- assertFalse(mMockConnection.getDoOutput());
+ verify(mMockConnection, never()).setRequestMethod(anyString());
+ verify(mMockConnection, never()).setDoOutput(true);
}
- @Test public void connectionForDeprecatedPostRequest() throws Exception {
+ @Test
+ public void connectionForDeprecatedPostRequest() throws Exception {
TestRequest.DeprecatedPost request = new TestRequest.DeprecatedPost();
assertEquals(request.getMethod(), Method.DEPRECATED_GET_OR_POST);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("POST", mMockConnection.getRequestMethod());
- assertTrue(mMockConnection.getDoOutput());
+ verify(mMockConnection).setRequestMethod("POST");
+ verify(mMockConnection).setDoOutput(true);
}
- @Test public void connectionForGetRequest() throws Exception {
+ @Test
+ public void connectionForGetRequest() throws Exception {
TestRequest.Get request = new TestRequest.Get();
assertEquals(request.getMethod(), Method.GET);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("GET", mMockConnection.getRequestMethod());
- assertFalse(mMockConnection.getDoOutput());
+ verify(mMockConnection).setRequestMethod("GET");
+ verify(mMockConnection, never()).setDoOutput(true);
}
- @Test public void connectionForPostRequest() throws Exception {
+ @Test
+ public void connectionForPostRequest() throws Exception {
TestRequest.Post request = new TestRequest.Post();
assertEquals(request.getMethod(), Method.POST);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("POST", mMockConnection.getRequestMethod());
- assertFalse(mMockConnection.getDoOutput());
+ verify(mMockConnection).setRequestMethod("POST");
+ verify(mMockConnection, never()).setDoOutput(true);
}
- @Test public void connectionForPostWithBodyRequest() throws Exception {
+ @Test
+ public void connectionForPostWithBodyRequest() throws Exception {
TestRequest.PostWithBody request = new TestRequest.PostWithBody();
assertEquals(request.getMethod(), Method.POST);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("POST", mMockConnection.getRequestMethod());
- assertTrue(mMockConnection.getDoOutput());
+ verify(mMockConnection).setRequestMethod("POST");
+ verify(mMockConnection).setDoOutput(true);
}
- @Test public void connectionForPutRequest() throws Exception {
+ @Test
+ public void connectionForPutRequest() throws Exception {
TestRequest.Put request = new TestRequest.Put();
assertEquals(request.getMethod(), Method.PUT);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("PUT", mMockConnection.getRequestMethod());
- assertFalse(mMockConnection.getDoOutput());
+ verify(mMockConnection).setRequestMethod("PUT");
+ verify(mMockConnection, never()).setDoOutput(true);
}
- @Test public void connectionForPutWithBodyRequest() throws Exception {
+ @Test
+ public void connectionForPutWithBodyRequest() throws Exception {
TestRequest.PutWithBody request = new TestRequest.PutWithBody();
assertEquals(request.getMethod(), Method.PUT);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("PUT", mMockConnection.getRequestMethod());
- assertTrue(mMockConnection.getDoOutput());
+ verify(mMockConnection).setRequestMethod("PUT");
+ verify(mMockConnection).setDoOutput(true);
}
- @Test public void connectionForDeleteRequest() throws Exception {
+ @Test
+ public void connectionForDeleteRequest() throws Exception {
TestRequest.Delete request = new TestRequest.Delete();
assertEquals(request.getMethod(), Method.DELETE);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("DELETE", mMockConnection.getRequestMethod());
- assertFalse(mMockConnection.getDoOutput());
+ verify(mMockConnection).setRequestMethod("DELETE");
+ verify(mMockConnection, never()).setDoOutput(true);
}
- @Test public void connectionForHeadRequest() throws Exception {
+ @Test
+ public void connectionForHeadRequest() throws Exception {
TestRequest.Head request = new TestRequest.Head();
assertEquals(request.getMethod(), Method.HEAD);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("HEAD", mMockConnection.getRequestMethod());
- assertFalse(mMockConnection.getDoOutput());
+ verify(mMockConnection).setRequestMethod("HEAD");
+ verify(mMockConnection, never()).setDoOutput(true);
}
- @Test public void connectionForOptionsRequest() throws Exception {
+ @Test
+ public void connectionForOptionsRequest() throws Exception {
TestRequest.Options request = new TestRequest.Options();
assertEquals(request.getMethod(), Method.OPTIONS);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("OPTIONS", mMockConnection.getRequestMethod());
- assertFalse(mMockConnection.getDoOutput());
+ verify(mMockConnection).setRequestMethod("OPTIONS");
+ verify(mMockConnection, never()).setDoOutput(true);
}
- @Test public void connectionForTraceRequest() throws Exception {
+ @Test
+ public void connectionForTraceRequest() throws Exception {
TestRequest.Trace request = new TestRequest.Trace();
assertEquals(request.getMethod(), Method.TRACE);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("TRACE", mMockConnection.getRequestMethod());
- assertFalse(mMockConnection.getDoOutput());
+ verify(mMockConnection).setRequestMethod("TRACE");
+ verify(mMockConnection, never()).setDoOutput(true);
}
- @Test public void connectionForPatchRequest() throws Exception {
+ @Test
+ public void connectionForPatchRequest() throws Exception {
TestRequest.Patch request = new TestRequest.Patch();
assertEquals(request.getMethod(), Method.PATCH);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("PATCH", mMockConnection.getRequestMethod());
- assertFalse(mMockConnection.getDoOutput());
+ verify(mMockConnection).setRequestMethod("PATCH");
+ verify(mMockConnection, never()).setDoOutput(true);
}
- @Test public void connectionForPatchWithBodyRequest() throws Exception {
+ @Test
+ public void connectionForPatchWithBodyRequest() throws Exception {
TestRequest.PatchWithBody request = new TestRequest.PatchWithBody();
assertEquals(request.getMethod(), Method.PATCH);
HurlStack.setConnectionParametersForRequest(mMockConnection, request);
- assertEquals("PATCH", mMockConnection.getRequestMethod());
- assertTrue(mMockConnection.getDoOutput());
+ verify(mMockConnection).setRequestMethod("PATCH");
+ verify(mMockConnection).setDoOutput(true);
+ }
+
+ @Test
+ public void executeRequestClosesConnection_connectionError() throws Exception {
+ when(mMockConnection.getResponseCode()).thenThrow(new SocketTimeoutException());
+ try {
+ mHurlStack.executeRequest(
+ new TestRequest.Get(), Collections.<String, String>emptyMap());
+ fail("Should have thrown exception");
+ } catch (IOException e) {
+ verify(mMockConnection).disconnect();
+ }
+ }
+
+ @Test
+ public void executeRequestClosesConnection_invalidResponseCode() throws Exception {
+ when(mMockConnection.getResponseCode()).thenReturn(-1);
+ try {
+ mHurlStack.executeRequest(
+ new TestRequest.Get(), Collections.<String, String>emptyMap());
+ fail("Should have thrown exception");
+ } catch (IOException e) {
+ verify(mMockConnection).disconnect();
+ }
+ }
+
+ @Test
+ public void executeRequestClosesConnection_noResponseBody() throws Exception {
+ when(mMockConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_NO_CONTENT);
+ mHurlStack.executeRequest(new TestRequest.Get(), Collections.<String, String>emptyMap());
+ verify(mMockConnection).disconnect();
+ }
+
+ @Test
+ public void executeRequestClosesConnection_hasResponseBody() throws Exception {
+ when(mMockConnection.getResponseCode()).thenReturn(HttpURLConnection.HTTP_OK);
+ when(mMockConnection.getInputStream())
+ .thenReturn(new ByteArrayInputStream("hello".getBytes(StandardCharsets.UTF_8)));
+ HttpResponse response =
+ mHurlStack.executeRequest(
+ new TestRequest.Get(), Collections.<String, String>emptyMap());
+ // Shouldn't be disconnected until the stream is consumed.
+ verify(mMockConnection, never()).disconnect();
+ response.getContent().close();
+ verify(mMockConnection).disconnect();
}
- @Test public void convertHeaders() {
+ @Test
+ public void convertHeaders() {
Map<String, List<String>> headers = new HashMap<>();
headers.put(null, Collections.singletonList("Ignored"));
headers.put("HeaderA", Collections.singletonList("ValueA"));
diff --git a/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java b/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java
index 8a19817..59a0b1b 100644
--- a/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java
+++ b/src/test/java/com/android/volley/toolbox/ImageLoaderTest.java
@@ -16,6 +16,15 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertNotNull;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
import android.graphics.Bitmap;
import android.widget.ImageView;
import com.android.volley.Request;
@@ -24,11 +33,9 @@ import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.mockito.Mockito;
import org.robolectric.RobolectricTestRunner;
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.*;
-
@RunWith(RobolectricTestRunner.class)
public class ImageLoaderTest {
private RequestQueue mRequestQueue;
@@ -69,7 +76,7 @@ public class ImageLoaderTest {
// Response callback should be called both times.
verify(listener, times(2)).onResponse(any(ImageLoader.ImageContainer.class), eq(true));
// But request should be enqueued only once.
- verify(mRequestQueue, times(1)).add(any(Request.class));
+ verify(mRequestQueue, times(1)).add(Mockito.<Request<?>>any());
}
@Test
@@ -78,24 +85,37 @@ public class ImageLoaderTest {
ImageLoader.getImageListener(null, -1, -1);
mImageLoader.setBatchedResponseDelay(1000);
- assertNotNull(ImageLoader.class.getConstructor(RequestQueue.class,
- ImageLoader.ImageCache.class));
+ assertNotNull(
+ ImageLoader.class.getConstructor(RequestQueue.class, ImageLoader.ImageCache.class));
- assertNotNull(ImageLoader.class.getMethod("getImageListener", ImageView.class,
- int.class, int.class));
+ 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,
- ImageLoader.ImageListener.class, int.class, int.class));
- assertNotNull(ImageLoader.class.getMethod("get", String.class,
- ImageLoader.ImageListener.class, int.class, int.class, ImageView.ScaleType.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,
+ ImageLoader.ImageListener.class,
+ int.class,
+ int.class));
+ assertNotNull(
+ ImageLoader.class.getMethod(
+ "get",
+ String.class,
+ ImageLoader.ImageListener.class,
+ int.class,
+ int.class,
+ ImageView.ScaleType.class));
assertNotNull(ImageLoader.class.getMethod("setBatchedResponseDelay", int.class));
- assertNotNull(ImageLoader.ImageListener.class.getMethod("onResponse",
- ImageLoader.ImageContainer.class, boolean.class));
+ assertNotNull(
+ ImageLoader.ImageListener.class.getMethod(
+ "onResponse", ImageLoader.ImageContainer.class, boolean.class));
}
}
-
diff --git a/src/test/java/com/android/volley/toolbox/ImageRequestTest.java b/src/test/java/com/android/volley/toolbox/ImageRequestTest.java
index a99363e..6b50319 100644
--- a/src/test/java/com/android/volley/toolbox/ImageRequestTest.java
+++ b/src/test/java/com/android/volley/toolbox/ImageRequestTest.java
@@ -16,28 +16,30 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import com.android.volley.NetworkResponse;
import com.android.volley.Response;
-
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.shadows.ShadowBitmapFactory;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import static org.junit.Assert.*;
-
@RunWith(RobolectricTestRunner.class)
public class ImageRequestTest {
- @Test public void parseNetworkResponse_resizing() throws Exception {
+ @Test
+ public void parseNetworkResponse_resizing() throws Exception {
// This is a horrible hack but Robolectric doesn't have a way to provide
// width and height hints for decodeByteArray. It works because the byte array
// "file:fake" is ASCII encodable and thus the name in Robolectric's fake
@@ -45,7 +47,7 @@ public class ImageRequestTest {
// "file:" + name in its lookaside map. I write all this because it will
// probably break mysteriously at some point and I feel terrible about your
// having to debug it.
- byte[] jpegBytes = "file:fake".getBytes();
+ byte[] jpegBytes = "file:fake".getBytes(StandardCharsets.UTF_8);
ShadowBitmapFactory.provideWidthAndHeightHints("fake", 1024, 500);
NetworkResponse jpeg = new NetworkResponse(jpegBytes);
@@ -73,7 +75,6 @@ public class ImageRequestTest {
// No resize
verifyResize(jpeg, 0, 0, scalteType, 1024, 500);
-
// Scale the image uniformly (maintain the image's aspect ratio) so that
// both dimensions (width and height) of the image will be equal to or
// larger than the corresponding dimension of the view.
@@ -98,7 +99,6 @@ public class ImageRequestTest {
// No resize
verifyResize(jpeg, 0, 0, scalteType, 1024, 500);
-
// Scale in X and Y independently, so that src matches dst exactly. This
// may change the aspect ratio of the src.
scalteType = ScaleType.FIT_XY;
@@ -123,10 +123,15 @@ public class ImageRequestTest {
verifyResize(jpeg, 0, 0, scalteType, 1024, 500);
}
- private void verifyResize(NetworkResponse networkResponse, int maxWidth, int maxHeight,
- ScaleType scaleType, int expectedWidth, int expectedHeight) {
- ImageRequest request = new ImageRequest("", null, maxWidth, maxHeight, scaleType,
- Config.RGB_565, null);
+ private void verifyResize(
+ NetworkResponse networkResponse,
+ int maxWidth,
+ int maxHeight,
+ ScaleType scaleType,
+ int expectedWidth,
+ int expectedHeight) {
+ ImageRequest request =
+ new ImageRequest("", null, maxWidth, maxHeight, scaleType, Config.RGB_565, null);
Response<Bitmap> response = request.parseNetworkResponse(networkResponse);
assertNotNull(response);
assertTrue(response.isSuccess());
@@ -136,7 +141,8 @@ public class ImageRequestTest {
assertEquals(expectedHeight, bitmap.getHeight());
}
- @Test public void findBestSampleSize() {
+ @Test
+ public void findBestSampleSize() {
// desired == actual == 1
assertEquals(1, ImageRequest.findBestSampleSize(100, 150, 100, 150));
@@ -164,11 +170,23 @@ public class ImageRequestTest {
@Test
public void publicMethods() throws Exception {
// Catch-all test to find API-breaking changes.
- assertNotNull(ImageRequest.class.getConstructor(String.class, Response.Listener.class,
- int.class, int.class, Bitmap.Config.class, Response.ErrorListener.class));
- assertNotNull(ImageRequest.class.getConstructor(String.class, Response.Listener.class,
- int.class, int.class, ImageView.ScaleType.class, Bitmap.Config.class,
- Response.ErrorListener.class));
+ assertNotNull(
+ ImageRequest.class.getConstructor(
+ String.class,
+ Response.Listener.class,
+ int.class,
+ int.class,
+ Bitmap.Config.class,
+ Response.ErrorListener.class));
+ assertNotNull(
+ ImageRequest.class.getConstructor(
+ String.class,
+ Response.Listener.class,
+ int.class,
+ int.class,
+ ImageView.ScaleType.class,
+ Bitmap.Config.class,
+ Response.ErrorListener.class));
assertEquals(ImageRequest.DEFAULT_IMAGE_TIMEOUT_MS, 1000);
assertEquals(ImageRequest.DEFAULT_IMAGE_MAX_RETRIES, 2);
assertEquals(ImageRequest.DEFAULT_IMAGE_BACKOFF_MULT, 2f, 0);
diff --git a/src/test/java/com/android/volley/toolbox/JsonRequestCharsetTest.java b/src/test/java/com/android/volley/toolbox/JsonRequestCharsetTest.java
index db6f648..70bb2ea 100644
--- a/src/test/java/com/android/volley/toolbox/JsonRequestCharsetTest.java
+++ b/src/test/java/com/android/volley/toolbox/JsonRequestCharsetTest.java
@@ -16,44 +16,41 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
import com.android.volley.NetworkResponse;
import com.android.volley.Response;
-import com.android.volley.toolbox.JsonArrayRequest;
-import com.android.volley.toolbox.JsonObjectRequest;
-
+import java.nio.charset.Charset;
+import java.util.HashMap;
+import java.util.Map;
import org.json.JSONArray;
import org.json.JSONObject;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import java.lang.Exception;
-import java.lang.String;
-import java.nio.charset.Charset;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.junit.Assert.*;
-
@RunWith(RobolectricTestRunner.class)
public class JsonRequestCharsetTest {
- /**
- * String in Czech - "Retezec v cestine."
- */
+ /** String in Czech - "Retezec v cestine." */
private static final String TEXT_VALUE = "\u0158et\u011bzec v \u010de\u0161tin\u011b.";
+
private static final String TEXT_NAME = "text";
private static final int TEXT_INDEX = 0;
/**
- * Copyright symbol has different encoding in utf-8 and ISO-8859-1,
- * and it doesn't exists in ISO-8859-2
+ * Copyright symbol has different encoding in utf-8 and ISO-8859-1, and it doesn't exists in
+ * ISO-8859-2
*/
private static final String COPY_VALUE = "\u00a9";
+
private static final String COPY_NAME = "copyright";
private static final int COPY_INDEX = 1;
- @Test public void defaultCharsetJsonObject() throws Exception {
+ @Test
+ public void defaultCharsetJsonObject() throws Exception {
// UTF-8 is default charset for JSON
byte[] data = jsonObjectString().getBytes(Charset.forName("UTF-8"));
NetworkResponse network = new NetworkResponse(data);
@@ -66,7 +63,8 @@ public class JsonRequestCharsetTest {
assertEquals(COPY_VALUE, objectResponse.result.getString(COPY_NAME));
}
- @Test public void defaultCharsetJsonArray() throws Exception {
+ @Test
+ public void defaultCharsetJsonArray() throws Exception {
// UTF-8 is default charset for JSON
byte[] data = jsonArrayString().getBytes(Charset.forName("UTF-8"));
NetworkResponse network = new NetworkResponse(data);
@@ -79,7 +77,8 @@ public class JsonRequestCharsetTest {
assertEquals(COPY_VALUE, arrayResponse.result.getString(COPY_INDEX));
}
- @Test public void specifiedCharsetJsonObject() throws Exception {
+ @Test
+ public void specifiedCharsetJsonObject() throws Exception {
byte[] data = jsonObjectString().getBytes(Charset.forName("ISO-8859-1"));
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=iso-8859-1");
@@ -89,11 +88,12 @@ public class JsonRequestCharsetTest {
assertNotNull(objectResponse);
assertTrue(objectResponse.isSuccess());
- //don't check the text in Czech, ISO-8859-1 doesn't support some Czech characters
+ // don't check the text in Czech, ISO-8859-1 doesn't support some Czech characters
assertEquals(COPY_VALUE, objectResponse.result.getString(COPY_NAME));
}
- @Test public void specifiedCharsetJsonArray() throws Exception {
+ @Test
+ public void specifiedCharsetJsonArray() throws Exception {
byte[] data = jsonArrayString().getBytes(Charset.forName("ISO-8859-2"));
Map<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json; charset=iso-8859-2");
diff --git a/src/test/java/com/android/volley/toolbox/JsonRequestTest.java b/src/test/java/com/android/volley/toolbox/JsonRequestTest.java
index e39c8c8..44c0ad9 100644
--- a/src/test/java/com/android/volley/toolbox/JsonRequestTest.java
+++ b/src/test/java/com/android/volley/toolbox/JsonRequestTest.java
@@ -16,6 +16,8 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertNotNull;
+
import com.android.volley.Response;
import org.json.JSONArray;
import org.json.JSONObject;
@@ -23,27 +25,49 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import static org.junit.Assert.assertNotNull;
-
@RunWith(RobolectricTestRunner.class)
public class JsonRequestTest {
@Test
public void publicMethods() throws Exception {
// Catch-all test to find API-breaking changes.
- assertNotNull(JsonRequest.class.getConstructor(String.class, String.class,
- Response.Listener.class, Response.ErrorListener.class));
- assertNotNull(JsonRequest.class.getConstructor(int.class, String.class, String.class,
- Response.Listener.class, Response.ErrorListener.class));
+ assertNotNull(
+ JsonRequest.class.getConstructor(
+ String.class,
+ String.class,
+ Response.Listener.class,
+ Response.ErrorListener.class));
+ assertNotNull(
+ JsonRequest.class.getConstructor(
+ int.class,
+ String.class,
+ String.class,
+ Response.Listener.class,
+ Response.ErrorListener.class));
- assertNotNull(JsonArrayRequest.class.getConstructor(String.class,
- Response.Listener.class, Response.ErrorListener.class));
- assertNotNull(JsonArrayRequest.class.getConstructor(int.class, String.class, JSONArray.class,
- Response.Listener.class, Response.ErrorListener.class));
+ assertNotNull(
+ JsonArrayRequest.class.getConstructor(
+ String.class, Response.Listener.class, Response.ErrorListener.class));
+ assertNotNull(
+ JsonArrayRequest.class.getConstructor(
+ int.class,
+ String.class,
+ JSONArray.class,
+ Response.Listener.class,
+ Response.ErrorListener.class));
- assertNotNull(JsonObjectRequest.class.getConstructor(String.class, JSONObject.class,
- Response.Listener.class, Response.ErrorListener.class));
- assertNotNull(JsonObjectRequest.class.getConstructor(int.class, String.class,
- JSONObject.class, Response.Listener.class, Response.ErrorListener.class));
+ assertNotNull(
+ JsonObjectRequest.class.getConstructor(
+ String.class,
+ JSONObject.class,
+ Response.Listener.class,
+ Response.ErrorListener.class));
+ assertNotNull(
+ JsonObjectRequest.class.getConstructor(
+ int.class,
+ String.class,
+ JSONObject.class,
+ Response.Listener.class,
+ Response.ErrorListener.class));
}
}
diff --git a/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java b/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java
index 055005f..af8fad9 100644
--- a/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java
+++ b/src/test/java/com/android/volley/toolbox/NetworkImageViewTest.java
@@ -16,31 +16,34 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
import android.content.Context;
import android.util.AttributeSet;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView.ScaleType;
-
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.robolectric.RuntimeEnvironment;
import org.robolectric.RobolectricTestRunner;
-
-import static org.junit.Assert.*;
+import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class)
public class NetworkImageViewTest {
private NetworkImageView mNIV;
private MockImageLoader mMockImageLoader;
- @Before public void setUp() throws Exception {
+ @Before
+ public void setUp() throws Exception {
mMockImageLoader = new MockImageLoader();
mNIV = new NetworkImageView(RuntimeEnvironment.application);
}
- @Test public void setImageUrl_requestsImage() {
- mNIV.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
+ @Test
+ public void setImageUrl_requestsImage() {
+ mNIV.setLayoutParams(
+ new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
mNIV.setImageUrl("http://foo", mMockImageLoader);
assertEquals("http://foo", mMockImageLoader.lastRequestUrl);
assertEquals(0, mMockImageLoader.lastMaxWidth);
@@ -52,7 +55,7 @@ public class NetworkImageViewTest {
// // instrumentation test. Write this test once it's figured out.
// }
- private class MockImageLoader extends ImageLoader {
+ private static class MockImageLoader extends ImageLoader {
public MockImageLoader() {
super(null, null);
}
@@ -61,8 +64,13 @@ public class NetworkImageViewTest {
public int lastMaxWidth;
public int lastMaxHeight;
- public ImageContainer get(String requestUrl, ImageListener imageListener, int maxWidth,
- int maxHeight, ScaleType scaleType) {
+ @Override
+ public ImageContainer get(
+ String requestUrl,
+ ImageListener imageListener,
+ int maxWidth,
+ int maxHeight,
+ ScaleType scaleType) {
lastRequestUrl = requestUrl;
lastMaxWidth = maxWidth;
lastMaxHeight = maxHeight;
@@ -75,10 +83,12 @@ public class NetworkImageViewTest {
// Catch-all test to find API-breaking changes.
assertNotNull(NetworkImageView.class.getConstructor(Context.class));
assertNotNull(NetworkImageView.class.getConstructor(Context.class, AttributeSet.class));
- assertNotNull(NetworkImageView.class.getConstructor(Context.class, AttributeSet.class,
- int.class));
+ assertNotNull(
+ NetworkImageView.class.getConstructor(
+ Context.class, AttributeSet.class, int.class));
- assertNotNull(NetworkImageView.class.getMethod("setImageUrl", String.class, ImageLoader.class));
+ assertNotNull(
+ NetworkImageView.class.getMethod("setImageUrl", String.class, ImageLoader.class));
assertNotNull(NetworkImageView.class.getMethod("setDefaultImageResId", int.class));
assertNotNull(NetworkImageView.class.getMethod("setErrorImageResId", int.class));
}
diff --git a/src/test/java/com/android/volley/toolbox/PoolingByteArrayOutputStreamTest.java b/src/test/java/com/android/volley/toolbox/PoolingByteArrayOutputStreamTest.java
index c3bfac7..266edcd 100644
--- a/src/test/java/com/android/volley/toolbox/PoolingByteArrayOutputStreamTest.java
+++ b/src/test/java/com/android/volley/toolbox/PoolingByteArrayOutputStreamTest.java
@@ -16,36 +16,39 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertTrue;
+
import java.io.IOException;
import java.util.Arrays;
-
import org.junit.Test;
-import static org.junit.Assert.*;
-
public class PoolingByteArrayOutputStreamTest {
- @Test public void pooledOneBuffer() throws IOException {
+ @Test
+ public void pooledOneBuffer() throws IOException {
ByteArrayPool pool = new ByteArrayPool(32768);
writeOneBuffer(pool);
writeOneBuffer(pool);
writeOneBuffer(pool);
}
- @Test public void pooledIndividualWrites() throws IOException {
+ @Test
+ public void pooledIndividualWrites() throws IOException {
ByteArrayPool pool = new ByteArrayPool(32768);
writeBytesIndividually(pool);
writeBytesIndividually(pool);
writeBytesIndividually(pool);
}
- @Test public void unpooled() throws IOException {
+ @Test
+ public void unpooled() throws IOException {
ByteArrayPool pool = new ByteArrayPool(0);
writeOneBuffer(pool);
writeOneBuffer(pool);
writeOneBuffer(pool);
}
- @Test public void unpooledIndividualWrites() throws IOException {
+ @Test
+ public void unpooledIndividualWrites() throws IOException {
ByteArrayPool pool = new ByteArrayPool(0);
writeBytesIndividually(pool);
writeBytesIndividually(pool);
diff --git a/src/test/java/com/android/volley/toolbox/RequestFutureTest.java b/src/test/java/com/android/volley/toolbox/RequestFutureTest.java
index c8e23e7..5b5c975 100644
--- a/src/test/java/com/android/volley/toolbox/RequestFutureTest.java
+++ b/src/test/java/com/android/volley/toolbox/RequestFutureTest.java
@@ -16,13 +16,13 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertNotNull;
+
import com.android.volley.Request;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import static org.junit.Assert.assertNotNull;
-
@RunWith(RobolectricTestRunner.class)
public class RequestFutureTest {
diff --git a/src/test/java/com/android/volley/toolbox/RequestQueueTest.java b/src/test/java/com/android/volley/toolbox/RequestQueueTest.java
index 1e4b82e..1899b71 100644
--- a/src/test/java/com/android/volley/toolbox/RequestQueueTest.java
+++ b/src/test/java/com/android/volley/toolbox/RequestQueueTest.java
@@ -16,21 +16,26 @@
package com.android.volley.toolbox;
-import com.android.volley.*;
+import static org.junit.Assert.assertNotNull;
+
+import com.android.volley.Cache;
+import com.android.volley.Network;
+import com.android.volley.Request;
+import com.android.volley.RequestQueue;
+import com.android.volley.ResponseDelivery;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import static org.junit.Assert.assertNotNull;
-
@RunWith(RobolectricTestRunner.class)
public class RequestQueueTest {
@Test
public void publicMethods() throws Exception {
// Catch-all test to find API-breaking changes.
- assertNotNull(RequestQueue.class.getConstructor(Cache.class, Network.class, int.class,
- ResponseDelivery.class));
+ assertNotNull(
+ RequestQueue.class.getConstructor(
+ Cache.class, Network.class, int.class, ResponseDelivery.class));
assertNotNull(RequestQueue.class.getConstructor(Cache.class, Network.class, int.class));
assertNotNull(RequestQueue.class.getConstructor(Cache.class, Network.class));
diff --git a/src/test/java/com/android/volley/toolbox/RequestTest.java b/src/test/java/com/android/volley/toolbox/RequestTest.java
index 22d2ef2..0911ad6 100644
--- a/src/test/java/com/android/volley/toolbox/RequestTest.java
+++ b/src/test/java/com/android/volley/toolbox/RequestTest.java
@@ -16,21 +16,28 @@
package com.android.volley.toolbox;
-import com.android.volley.*;
+import static org.junit.Assert.assertNotNull;
+
+import com.android.volley.Cache;
+import com.android.volley.NetworkResponse;
+import com.android.volley.Request;
+import com.android.volley.RequestQueue;
+import com.android.volley.Response;
+import com.android.volley.RetryPolicy;
+import com.android.volley.VolleyError;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import static org.junit.Assert.assertNotNull;
-
@RunWith(RobolectricTestRunner.class)
public class RequestTest {
@Test
public void publicMethods() throws Exception {
// Catch-all test to find API-breaking changes.
- assertNotNull(Request.class.getConstructor(int.class, String.class,
- Response.ErrorListener.class));
+ assertNotNull(
+ Request.class.getConstructor(
+ int.class, String.class, Response.ErrorListener.class));
assertNotNull(Request.class.getMethod("getMethod"));
assertNotNull(Request.class.getMethod("setTag", Object.class));
@@ -61,7 +68,8 @@ public class RequestTest {
assertNotNull(Request.class.getMethod("getRetryPolicy"));
assertNotNull(Request.class.getMethod("markDelivered"));
assertNotNull(Request.class.getMethod("hasHadResponseDelivered"));
- assertNotNull(Request.class.getDeclaredMethod("parseNetworkResponse", NetworkResponse.class));
+ assertNotNull(
+ Request.class.getDeclaredMethod("parseNetworkResponse", NetworkResponse.class));
assertNotNull(Request.class.getDeclaredMethod("parseNetworkError", VolleyError.class));
assertNotNull(Request.class.getDeclaredMethod("deliverResponse", Object.class));
assertNotNull(Request.class.getMethod("deliverError", VolleyError.class));
diff --git a/src/test/java/com/android/volley/toolbox/ResponseTest.java b/src/test/java/com/android/volley/toolbox/ResponseTest.java
index e830eb5..44438fa 100644
--- a/src/test/java/com/android/volley/toolbox/ResponseTest.java
+++ b/src/test/java/com/android/volley/toolbox/ResponseTest.java
@@ -16,18 +16,17 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertNotNull;
+
import com.android.volley.Cache;
import com.android.volley.NetworkResponse;
import com.android.volley.Response;
import com.android.volley.VolleyError;
+import java.util.Map;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import java.util.Map;
-
-import static org.junit.Assert.assertNotNull;
-
@RunWith(RobolectricTestRunner.class)
public class ResponseTest {
@@ -40,13 +39,16 @@ public class ResponseTest {
assertNotNull(Response.Listener.class.getDeclaredMethod("onResponse", Object.class));
- assertNotNull(Response.ErrorListener.class.getDeclaredMethod("onErrorResponse",
- VolleyError.class));
+ assertNotNull(
+ Response.ErrorListener.class.getDeclaredMethod(
+ "onErrorResponse", VolleyError.class));
- assertNotNull(NetworkResponse.class.getConstructor(int.class, byte[].class, Map.class,
- boolean.class, long.class));
- assertNotNull(NetworkResponse.class.getConstructor(int.class, byte[].class, Map.class,
- boolean.class));
+ assertNotNull(
+ NetworkResponse.class.getConstructor(
+ int.class, byte[].class, Map.class, boolean.class, long.class));
+ assertNotNull(
+ NetworkResponse.class.getConstructor(
+ int.class, byte[].class, Map.class, boolean.class));
assertNotNull(NetworkResponse.class.getConstructor(byte[].class));
assertNotNull(NetworkResponse.class.getConstructor(byte[].class, Map.class));
}
diff --git a/src/test/java/com/android/volley/toolbox/StringRequestTest.java b/src/test/java/com/android/volley/toolbox/StringRequestTest.java
index eadd73f..0ecb06b 100644
--- a/src/test/java/com/android/volley/toolbox/StringRequestTest.java
+++ b/src/test/java/com/android/volley/toolbox/StringRequestTest.java
@@ -16,22 +16,27 @@
package com.android.volley.toolbox;
+import static org.junit.Assert.assertNotNull;
+
import com.android.volley.Response;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
-import static org.junit.Assert.assertNotNull;
-
@RunWith(RobolectricTestRunner.class)
public class StringRequestTest {
@Test
public void publicMethods() throws Exception {
// Catch-all test to find API-breaking changes.
- assertNotNull(StringRequest.class.getConstructor(String.class, Response.Listener.class,
- Response.ErrorListener.class));
- assertNotNull(StringRequest.class.getConstructor(int.class, String.class,
- Response.Listener.class, Response.ErrorListener.class));
+ assertNotNull(
+ StringRequest.class.getConstructor(
+ String.class, Response.Listener.class, Response.ErrorListener.class));
+ assertNotNull(
+ StringRequest.class.getConstructor(
+ int.class,
+ String.class,
+ Response.Listener.class,
+ Response.ErrorListener.class));
}
}
diff --git a/src/test/java/com/android/volley/utils/CacheTestUtils.java b/src/test/java/com/android/volley/utils/CacheTestUtils.java
index 03a2909..49ab996 100644
--- a/src/test/java/com/android/volley/utils/CacheTestUtils.java
+++ b/src/test/java/com/android/volley/utils/CacheTestUtils.java
@@ -17,13 +17,13 @@
package com.android.volley.utils;
import com.android.volley.Cache;
-
import java.util.Random;
public class CacheTestUtils {
/**
* Makes a random cache entry.
+ *
* @param data Data to use, or null to use random data
* @param isExpired Whether the TTLs should be set such that this entry is expired
* @param needsRefresh Whether the TTLs should be set such that this entry needs refresh
@@ -45,8 +45,8 @@ public class CacheTestUtils {
}
/**
- * Like {@link #makeRandomCacheEntry(byte[], boolean, boolean)} but
- * defaults to an unexpired entry.
+ * Like {@link #makeRandomCacheEntry(byte[], boolean, boolean)} but defaults to an unexpired
+ * entry.
*/
public static Cache.Entry makeRandomCacheEntry(byte[] data) {
return makeRandomCacheEntry(data, false, false);
diff --git a/src/test/java/com/android/volley/utils/ImmediateResponseDelivery.java b/src/test/java/com/android/volley/utils/ImmediateResponseDelivery.java
index 235716d..67e5923 100644
--- a/src/test/java/com/android/volley/utils/ImmediateResponseDelivery.java
+++ b/src/test/java/com/android/volley/utils/ImmediateResponseDelivery.java
@@ -17,21 +17,21 @@
package com.android.volley.utils;
import com.android.volley.ExecutorDelivery;
-
import java.util.concurrent.Executor;
/**
- * A ResponseDelivery for testing that immediately delivers responses
- * instead of posting back to the main thread.
+ * A ResponseDelivery for testing that immediately delivers responses instead of posting back to the
+ * main thread.
*/
public class ImmediateResponseDelivery extends ExecutorDelivery {
public ImmediateResponseDelivery() {
- super(new Executor() {
- @Override
- public void execute(Runnable command) {
- command.run();
- }
- });
+ super(
+ new Executor() {
+ @Override
+ public void execute(Runnable command) {
+ command.run();
+ }
+ });
}
}