Chromium Code Reviews| 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 { |