| 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 9908acec0b3619f70f0a93570bbc09f4ebddbcf4..f4d9afee8719375453ae5fcec7da777416576564 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 bypassCache) {
|
| TestUrlRequestListener listener = new TestUrlRequestListener();
|
| UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
|
| url, listener, listener.getExecutor());
|
| + if (bypassCache) {
|
| + urlRequest.bypassCache();
|
| + }
|
| 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 testBypassCache() throws Exception {
|
| + enableCache(UrlRequestContextConfig.HttpCache.DISK);
|
| + String url = UploadTestServer.getFileURL("/cacheable.txt");
|
| +
|
| + // When bypassing cache, making a request does not write to the cache.
|
| + checkRequestCaching(url, false, true /** bypass cache */);
|
| + checkRequestCaching(url, false);
|
| +
|
| + // Check if bypass is enabled, the second request is cached.
|
| + checkRequestCaching(url, false, true /** bypass cache */);
|
| + checkRequestCaching(url, true);
|
| +
|
| + // Shut down the server, next request should have a cached response.
|
| + UploadTestServer.shutdownUploadTestServer();
|
| + checkRequestCaching(url, true);
|
| +
|
| + // Bypass cache after server is shut down, request should fail.
|
| + TestUrlRequestListener listener = new TestUrlRequestListener();
|
| + UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
|
| + url, listener, listener.getExecutor());
|
| + urlRequest.bypassCache();
|
| + 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.
|
|
|