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

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: Added tests 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 289fb8975cbabe04fcce34ffd82933fed5b8be3b..491864ac45465b9bb0441a9ba2bfb67a291190f0 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.UploadTestServer;
+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(UploadTestServer.startUploadTestServer(
getInstrumentation().getTargetContext()));
}
@@ -116,7 +124,7 @@ public class CronetHttpURLConnectionTest extends CronetTestBase {
|| e.getMessage().contains("net::ERR_CONNECTION_REFUSED")));
}
checkExceptionsAreThrown(secondConnection);
- // Starts the server to avoid crashing on shutdown in tearDown().
+ // Starts the server again to prepare for comparison.
xunjieli 2015/01/26 21:36:09 Had to change this inaccurate comment. If remove s
assertTrue(UploadTestServer.startUploadTestServer(
getInstrumentation().getTargetContext()));
}
@@ -602,6 +610,56 @@ public class CronetHttpURLConnectionTest extends CronetTestBase {
connection.disconnect();
}
+ @SmallTest
+ @Feature({"Cronet"})
+ @OnlyRunCronetHttpURLConnection
+ public void testSetUseCaches() throws Exception {
+ String url = UploadTestServer.getFileURL("/cacheable.txt");
+ checkRequestCaching(url, true /** useCaches */, true /** success */);
+ // Shut down the server, we should be able to receive a cached response.
+ UploadTestServer.shutdownUploadTestServer();
+ checkRequestCaching(url, true /** useCaches */, true /** success */);
xunjieli 2015/01/26 21:36:09 Strangely, the default implementation fails to ret
+ }
+
+ @SmallTest
+ @Feature({"Cronet"})
+ @OnlyRunCronetHttpURLConnection
+ public void testSetUseCachesFalse() throws Exception {
+ String url = UploadTestServer.getFileURL("/cacheable.txt");
+ checkRequestCaching(url, true /** useCaches */, true /** success */);
+ UploadTestServer.shutdownUploadTestServer();
+ // Disables caching. No cached response is received.
+ checkRequestCaching(url, false /** useCaches */, false /** success */);
+ }
+
+ /**
+ * 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();
+ }
+
private void checkExceptionsAreThrown(HttpURLConnection connection)
throws Exception {
try {

Powered by Google App Engine
This is Rietveld 408576698