| Index: components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestContextTest.java
|
| diff --git a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestContextTest.java b/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestContextTest.java
|
| index f907d91fb4a2141544df52215c575736ea6dfe18..8e1bd548afca9314421c17d0f0aa999d8651a2e9 100644
|
| --- a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestContextTest.java
|
| +++ b/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestContextTest.java
|
| @@ -297,9 +297,17 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
|
| }
|
|
|
| private void checkRequestCaching(String url, boolean expectCached) {
|
| + checkRequestCaching(url, expectCached, false);
|
| + }
|
| +
|
| + private void checkRequestCaching(String url, boolean expectCached,
|
| + boolean disableCache) {
|
| TestUrlRequestListener listener = new TestUrlRequestListener();
|
| UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
|
| url, listener, listener.getExecutor());
|
| + if (disableCache) {
|
| + urlRequest.disableCache();
|
| + }
|
| urlRequest.start();
|
| listener.blockForDone();
|
| assertEquals(expectCached, listener.mResponseInfo.wasCached());
|
| @@ -348,6 +356,36 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
|
| checkRequestCaching(url, false);
|
| }
|
|
|
| + @SmallTest
|
| + @Feature({"Cronet"})
|
| + public void testDisableCache() throws Exception {
|
| + enableCache(UrlRequestContextConfig.HttpCache.DISK);
|
| + String url = NativeTestServer.getFileURL("/cacheable.txt");
|
| +
|
| + // When cache is disabled, making a request does not write to the cache.
|
| + checkRequestCaching(url, false, true /** disable cache */);
|
| + checkRequestCaching(url, false);
|
| +
|
| + // When cache is enabled, the second request is cached.
|
| + checkRequestCaching(url, false, true /** disable cache */);
|
| + checkRequestCaching(url, true);
|
| +
|
| + // Shut down the server, next request should have a cached response.
|
| + NativeTestServer.shutdownNativeTestServer();
|
| + checkRequestCaching(url, true);
|
| +
|
| + // Cache is disabled after server is shut down, request should fail.
|
| + TestUrlRequestListener listener = new TestUrlRequestListener();
|
| + UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
|
| + url, listener, listener.getExecutor());
|
| + urlRequest.disableCache();
|
| + urlRequest.start();
|
| + listener.blockForDone();
|
| + assertNotNull(listener.mError);
|
| + assertEquals("Exception in CronetUrlRequest: net::ERR_CONNECTION_REFUSED",
|
| + listener.mError.getMessage());
|
| + }
|
| +
|
| // TODO(mef): Simple cache uses global thread pool that is not affected by
|
| // shutdown of UrlRequestContext. This test can be flaky unless that thread
|
| // pool is destroyed and recreated. Enable the test when crbug.com/442321 is fixed.
|
|
|