Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(208)

Unified Diff: components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/urlconnection/CronetHttpURLConnectionTest.java

Issue 860893002: [Cronet] Allow UrlRequest bypass cache (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed Matt's comments Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/urlconnection/CronetHttpURLConnectionTest.java
diff --git a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/urlconnection/CronetHttpURLConnectionTest.java b/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/urlconnection/CronetHttpURLConnectionTest.java
index f4eda23dd0e2cccae535abcbc63f92c8865d29c4..20768b986bb704b35727821a4b61b8e751e6090b 100644
--- a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/urlconnection/CronetHttpURLConnectionTest.java
+++ b/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/urlconnection/CronetHttpURLConnectionTest.java
@@ -10,6 +10,7 @@ import org.chromium.base.test.util.Feature;
import org.chromium.cronet_test_apk.CronetTestActivity;
import org.chromium.cronet_test_apk.CronetTestBase;
import org.chromium.cronet_test_apk.NativeTestServer;
+import org.chromium.net.UrlRequestContextConfig;
import org.chromium.net.UrlRequestException;
import java.io.ByteArrayOutputStream;
@@ -40,7 +41,14 @@ public class CronetHttpURLConnectionTest extends CronetTestBase {
@Override
protected void setUp() throws Exception {
super.setUp();
- mActivity = launchCronetTestApp();
+ UrlRequestContextConfig config = new UrlRequestContextConfig();
+ config.setStoragePath(prepareTestStorage());
+ config.enableHttpCache(UrlRequestContextConfig.HttpCache.DISK,
+ 1000 * 1024);
+ String[] commandLineArgs = {
+ CronetTestActivity.CONFIG_KEY, config.toString()};
+ mActivity = launchCronetTestAppWithUrlAndCommandLineArgs(null,
+ commandLineArgs);
assertTrue(NativeTestServer.startNativeTestServer(
getInstrumentation().getTargetContext()));
}
@@ -602,6 +610,59 @@ public class CronetHttpURLConnectionTest extends CronetTestBase {
connection.disconnect();
}
+ /**
+ * Helper method to make a request with cache enabled or disabled, and check
+ * whether the request is successful.
+ * @param requestUrl request url.
+ * @param useCaches whether cache should be used.
+ * @param success whether request is expected to be successful.
+ */
+ private void checkRequestCaching(String requestUrl, boolean useCaches,
+ boolean success) throws Exception {
+ URL url = new URL(requestUrl);
+ HttpURLConnection connection =
+ (HttpURLConnection) url.openConnection();
+ connection.setUseCaches(useCaches);
+ if (success) {
+ assertEquals(200, connection.getResponseCode());
+ assertEquals("this is a cacheable file\n",
+ getResponseAsString(connection));
+ } else {
+ try {
+ connection.getResponseCode();
+ fail();
+ } catch (IOException e) {
+ // Expected.
+ }
+ }
+ connection.disconnect();
+ }
+
+ @SmallTest
+ @Feature({"Cronet"})
+ @OnlyRunCronetHttpURLConnection
+ // Strangely, the default implementation fails to return a cached response.
+ // If the server is shut down, the request just fails with a connection
+ // refused error. Therefore, this test and the next only runs Cronet.
+ public void testSetUseCaches() throws Exception {
+ String url = NativeTestServer.getFileURL("/cacheable.txt");
+ checkRequestCaching(url, true /** useCaches */, true /** success */);
mef 2015/02/04 20:39:42 I find the use of comments interesting, is it reco
xunjieli 2015/02/04 21:27:05 Done.
+ // Shut down the server, we should be able to receive a cached response.
+ NativeTestServer.shutdownNativeTestServer();
+ checkRequestCaching(url, true /** useCaches */, true /** success */);
+ }
+
+ @SmallTest
+ @Feature({"Cronet"})
+ @OnlyRunCronetHttpURLConnection
+ public void testSetUseCachesFalse() throws Exception {
+ String url = NativeTestServer.getFileURL("/cacheable.txt");
+ checkRequestCaching(url, true /** useCaches */, true /** success */);
+ NativeTestServer.shutdownNativeTestServer();
+ // Disables caching. No cached response is received.
+ checkRequestCaching(url, false /** useCaches */, false /** success */);
+ }
+
private void checkExceptionsAreThrown(HttpURLConnection connection)
throws Exception {
try {

Powered by Google App Engine
This is Rietveld 408576698