@SmallTest @Feature({"Cronet"}) public void testDisableCache() throws Exception { enableCache(CronetEngine.Builder.HTTP_CACHE_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.Builder urlRequestBuilder = new UrlRequest.Builder(url, listener, listener.getExecutor(), mActivity.mCronetEngine); urlRequestBuilder.disableCache(); urlRequestBuilder.build().start(); listener.blockForDone(); assertNotNull(listener.mError); assertEquals( "Exception in CronetUrlRequest: net::ERR_CONNECTION_REFUSED", listener.mError.getMessage()); }
private void checkRequestCaching(String url, boolean expectCached, boolean disableCache) { TestUrlRequestListener listener = new TestUrlRequestListener(); UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(url, listener, listener.getExecutor(), mActivity.mCronetEngine); if (disableCache) { urlRequestBuilder.disableCache(); } urlRequestBuilder.build().start(); listener.blockForDone(); assertEquals(expectCached, listener.mResponseInfo.wasCached()); }