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

Unified Diff: components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java

Issue 2254043002: Fix flaky tests in CronetUrlRequestContextTest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed a comment Created 4 years, 4 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java
index 4697f0c7720bff84d7b12109277543445dd65031..c7893151b4bdbb6d750cf29fac1ad840bcbf37d4 100644
--- a/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java
+++ b/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java
@@ -13,7 +13,6 @@ import android.os.StrictMode;
import android.test.suitebuilder.annotation.SmallTest;
import org.chromium.base.FileUtils;
-import org.chromium.base.Log;
import org.chromium.base.PathUtils;
import org.chromium.base.annotations.JNINamespace;
import org.chromium.base.test.util.Feature;
@@ -42,7 +41,6 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
"http://mock.failed.request/-2";
private static final String MOCK_CRONET_TEST_SUCCESS_URL =
"http://mock.http/success.txt";
- private static final String TAG = "RequestContextTest";
private static final int MAX_FILE_SIZE = 1000000000;
private static final int NUM_EVENT_FILES = 10;
@@ -50,7 +48,6 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
private String mUrl;
private String mUrl404;
private String mUrl500;
- CronetTestFramework mTestFramework;
// Thread on which network quality listeners should be notified.
private Thread mNetworkQualityThread;
@@ -100,25 +97,31 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
* Callback that shutdowns the request context when request has succeeded
* or failed.
*/
- class ShutdownTestUrlRequestCallback extends TestUrlRequestCallback {
+ static class ShutdownTestUrlRequestCallback extends TestUrlRequestCallback {
+ private final CronetEngine mCronetEngine;
+ private final ConditionVariable mCallbackCompletionBlock = new ConditionVariable();
+
+ ShutdownTestUrlRequestCallback(CronetEngine cronetEngine) {
+ mCronetEngine = cronetEngine;
+ }
+
@Override
public void onSucceeded(UrlRequest request, UrlResponseInfo info) {
- // TODO: Remove logging when http://crbug.com/596929 & http://crbug.com/635025 is fixed.
- Log.d(TAG, "ShutdownTestUrlRequestCallback.onSucceeded() has started");
super.onSucceeded(request, info);
- Log.d(TAG, "ShutdownTestUrlRequestCallback.onSucceeded() before calling shutdown");
- mTestFramework.mCronetEngine.shutdown();
- Log.d(TAG, "ShutdownTestUrlRequestCallback.hasFinished() has finished");
+ mCronetEngine.shutdown();
+ mCallbackCompletionBlock.open();
}
@Override
public void onFailed(UrlRequest request, UrlResponseInfo info, UrlRequestException error) {
- // TODO: Remove logging when http://crbug.com/596929 & http://crbug.com/635025 is fixed.
- Log.d(TAG, "ShutdownTestUrlRequestCallback.onFailed() has started");
super.onFailed(request, info, error);
- Log.d(TAG, "ShutdownTestUrlRequestCallback.onFailed() before calling shutdown");
- mTestFramework.mCronetEngine.shutdown();
- Log.d(TAG, "ShutdownTestUrlRequestCallback.onFailed() has finished.");
+ mCronetEngine.shutdown();
+ mCallbackCompletionBlock.open();
+ }
+
+ // Wait for request completion callback.
+ void blockForCallbackToComplete() {
+ mCallbackCompletionBlock.block();
}
}
@@ -174,7 +177,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
}
cronetEngineBuilder.setUserAgent(userAgentValue);
cronetEngineBuilder.setLibraryName("cronet_tests");
- mTestFramework =
+ final CronetTestFramework testFramework =
startCronetTestFrameworkWithUrlAndCronetEngineBuilder(mUrl, cronetEngineBuilder);
NativeTestServer.shutdownNativeTestServer(); // startNativeTestServer returns false if it's
// already running
@@ -182,7 +185,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
TestUrlRequestCallback callback = new TestUrlRequestCallback();
UrlRequest.Builder urlRequestBuilder =
new UrlRequest.Builder(NativeTestServer.getEchoHeaderURL(userAgentName), callback,
- callback.getExecutor(), mTestFramework.mCronetEngine);
+ callback.getExecutor(), testFramework.mCronetEngine);
urlRequestBuilder.build().start();
callback.blockForDone();
assertEquals(userAgentValue, callback.mResponseAsString);
@@ -192,7 +195,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
@Feature({"Cronet"})
@OnlyRunNativeCronet
public void testDataReductionProxyEnabled() throws Exception {
- mTestFramework = startCronetTestFrameworkAndSkipLibraryInit();
+ final CronetTestFramework testFramework = startCronetTestFrameworkAndSkipLibraryInit();
// Ensure native code is loaded before trying to start test server.
new CronetEngine.Builder(getContext()).setLibraryName("cronet_tests").build().shutdown();
@@ -211,7 +214,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
cronetEngineBuilder.setDataReductionProxyOptions(serverHostPort, "unused.net:9999",
NativeTestServer.getFileURL("/secureproxychecksuccess.txt"));
cronetEngineBuilder.setLibraryName("cronet_tests");
- mTestFramework.mCronetEngine = cronetEngineBuilder.build();
+ testFramework.mCronetEngine = cronetEngineBuilder.build();
TestUrlRequestCallback callback = new TestUrlRequestCallback();
// Construct and start a request that can only be returned by the test
@@ -219,7 +222,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
// Data Reduction Proxy is not used.
UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
"http://DomainThatDoesnt.Resolve/datareductionproxysuccess.txt", callback,
- callback.getExecutor(), mTestFramework.mCronetEngine);
+ callback.getExecutor(), testFramework.mCronetEngine);
urlRequestBuilder.build().start();
callback.blockForDone();
@@ -235,7 +238,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
@Feature({"Cronet"})
public void testRealTimeNetworkQualityObservationsNotEnabled() throws Exception {
CronetEngine.Builder mCronetEngineBuilder = new CronetEngine.Builder(getContext());
- mTestFramework =
+ final CronetTestFramework testFramework =
startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, mCronetEngineBuilder);
Executor networkQualityExecutor = Executors.newSingleThreadExecutor();
TestNetworkQualityRttListener rttListener =
@@ -243,25 +246,25 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
TestNetworkQualityThroughputListener throughputListener =
new TestNetworkQualityThroughputListener(networkQualityExecutor, null);
try {
- mTestFramework.mCronetEngine.addRttListener(rttListener);
+ testFramework.mCronetEngine.addRttListener(rttListener);
fail("Should throw an exception.");
} catch (IllegalStateException e) {
}
try {
- mTestFramework.mCronetEngine.addThroughputListener(throughputListener);
+ testFramework.mCronetEngine.addThroughputListener(throughputListener);
fail("Should throw an exception.");
} catch (IllegalStateException e) {
}
TestUrlRequestCallback callback = new TestUrlRequestCallback();
UrlRequest.Builder builder = new UrlRequest.Builder(
- mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ mUrl, callback, callback.getExecutor(), testFramework.mCronetEngine);
UrlRequest urlRequest = builder.build();
urlRequest.start();
callback.blockForDone();
assertEquals(0, rttListener.rttObservationCount());
assertEquals(0, throughputListener.throughputObservationCount());
- mTestFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
}
@SmallTest
@@ -272,21 +275,21 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
TestNetworkQualityRttListener rttListener =
new TestNetworkQualityRttListener(networkQualityExecutor);
mCronetEngineBuilder.enableNetworkQualityEstimator(true);
- mTestFramework =
+ final CronetTestFramework testFramework =
startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, mCronetEngineBuilder);
- mTestFramework.mCronetEngine.configureNetworkQualityEstimatorForTesting(true, true);
+ testFramework.mCronetEngine.configureNetworkQualityEstimatorForTesting(true, true);
- mTestFramework.mCronetEngine.addRttListener(rttListener);
- mTestFramework.mCronetEngine.removeRttListener(rttListener);
+ testFramework.mCronetEngine.addRttListener(rttListener);
+ testFramework.mCronetEngine.removeRttListener(rttListener);
TestUrlRequestCallback callback = new TestUrlRequestCallback();
UrlRequest.Builder builder = new UrlRequest.Builder(
- mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ mUrl, callback, callback.getExecutor(), testFramework.mCronetEngine);
UrlRequest urlRequest = builder.build();
urlRequest.start();
callback.blockForDone();
networkQualityExecutor.runAllTasks();
assertEquals(0, rttListener.rttObservationCount());
- mTestFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
}
@SmallTest
@@ -301,16 +304,16 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
new TestNetworkQualityThroughputListener(listenersExecutor, waitForThroughput);
mCronetEngineBuilder.enableHttp2(true).enableQuic(false).enableNetworkQualityEstimator(
true);
- mTestFramework =
+ final CronetTestFramework testFramework =
startCronetTestFrameworkWithUrlAndCronetEngineBuilder(null, mCronetEngineBuilder);
- mTestFramework.mCronetEngine.configureNetworkQualityEstimatorForTesting(true, true);
+ testFramework.mCronetEngine.configureNetworkQualityEstimatorForTesting(true, true);
- mTestFramework.mCronetEngine.addRttListener(rttListener);
- mTestFramework.mCronetEngine.addThroughputListener(throughputListener);
+ testFramework.mCronetEngine.addRttListener(rttListener);
+ testFramework.mCronetEngine.addThroughputListener(throughputListener);
TestUrlRequestCallback callback = new TestUrlRequestCallback();
UrlRequest.Builder builder = new UrlRequest.Builder(
- mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ mUrl, callback, callback.getExecutor(), testFramework.mCronetEngine);
UrlRequest urlRequest = builder.build();
urlRequest.start();
callback.blockForDone();
@@ -340,10 +343,10 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
// Verify that effective connection type callback is received and
// effective connection type is correctly set.
- assertTrue(mTestFramework.mCronetEngine.getEffectiveConnectionType()
+ assertTrue(testFramework.mCronetEngine.getEffectiveConnectionType()
!= EffectiveConnectionType.EFFECTIVE_CONNECTION_TYPE_UNKNOWN);
- mTestFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
}
@SmallTest
@@ -351,18 +354,18 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
// TODO: Remove the annotation after fixing http://crbug.com/637979 & http://crbug.com/637972
@OnlyRunNativeCronet
public void testShutdown() throws Exception {
- Log.i(TAG, "testShutdown() has started");
- mTestFramework = startCronetTestFramework();
- TestUrlRequestCallback callback = new ShutdownTestUrlRequestCallback();
+ final CronetTestFramework testFramework = startCronetTestFramework();
+ ShutdownTestUrlRequestCallback callback =
+ new ShutdownTestUrlRequestCallback(testFramework.mCronetEngine);
// Block callback when response starts to verify that shutdown fails
// if there are active requests.
callback.setAutoAdvance(false);
UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
- mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ mUrl, callback, callback.getExecutor(), testFramework.mCronetEngine);
UrlRequest urlRequest = urlRequestBuilder.build();
urlRequest.start();
try {
- mTestFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
fail("Should throw an exception");
} catch (Exception e) {
assertEquals("Cannot shutdown with active requests.",
@@ -372,7 +375,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
callback.waitForNextStep();
assertEquals(ResponseStep.ON_RESPONSE_STARTED, callback.mResponseStep);
try {
- mTestFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
fail("Should throw an exception");
} catch (Exception e) {
assertEquals("Cannot shutdown with active requests.",
@@ -383,7 +386,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
callback.waitForNextStep();
assertEquals(ResponseStep.ON_READ_COMPLETED, callback.mResponseStep);
try {
- mTestFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
fail("Should throw an exception");
} catch (Exception e) {
assertEquals("Cannot shutdown with active requests.",
@@ -395,11 +398,8 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
callback.setAutoAdvance(true);
callback.startNextRead(urlRequest);
callback.blockForDone();
- // TODO: Remove sleep when http://crbug.com/596929 is fixed.
- // The sleep gives the thread that shuts down the engine time to complete.
- // See http://crbug.com/596929
- Thread.sleep(3000);
- Log.i(TAG, "testShutdown() has finished");
+ callback.blockForCallbackToComplete();
+ callback.shutdownExecutor();
}
@SmallTest
@@ -478,10 +478,10 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
@SmallTest
@Feature({"Cronet"})
public void testMultipleShutdown() throws Exception {
- mTestFramework = startCronetTestFramework();
+ final CronetTestFramework testFramework = startCronetTestFramework();
try {
- mTestFramework.mCronetEngine.shutdown();
- mTestFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
fail("Should throw an exception");
} catch (Exception e) {
assertEquals("Engine is shut down.", e.getMessage());
@@ -493,35 +493,32 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
// TODO: Remove the annotation after fixing http://crbug.com/637972
@OnlyRunNativeCronet
public void testShutdownAfterError() throws Exception {
- Log.i(TAG, "testShutdownAfterError() has started");
- mTestFramework = startCronetTestFramework();
- TestUrlRequestCallback callback = new ShutdownTestUrlRequestCallback();
+ final CronetTestFramework testFramework = startCronetTestFramework();
+ ShutdownTestUrlRequestCallback callback =
+ new ShutdownTestUrlRequestCallback(testFramework.mCronetEngine);
UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(MOCK_CRONET_TEST_FAILED_URL,
- callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ callback, callback.getExecutor(), testFramework.mCronetEngine);
urlRequestBuilder.build().start();
callback.blockForDone();
assertTrue(callback.mOnErrorCalled);
- // TODO: Remove sleep when http://crbug.com/635025 is fixed.
- // The sleep gives the thread that shuts down the engine time to complete.
- // See http://crbug.com/637986
- Thread.sleep(3000);
- Log.i(TAG, "testShutdownAfterError() has finished");
+ callback.blockForCallbackToComplete();
+ callback.shutdownExecutor();
}
@SmallTest
@Feature({"Cronet"})
public void testShutdownAfterCancel() throws Exception {
- mTestFramework = startCronetTestFramework();
+ final CronetTestFramework testFramework = startCronetTestFramework();
TestUrlRequestCallback callback = new TestUrlRequestCallback();
// Block callback when response starts to verify that shutdown fails
// if there are active requests.
callback.setAutoAdvance(false);
UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
- mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ mUrl, callback, callback.getExecutor(), testFramework.mCronetEngine);
UrlRequest urlRequest = urlRequestBuilder.build();
urlRequest.start();
try {
- mTestFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
fail("Should throw an exception");
} catch (Exception e) {
assertEquals("Cannot shutdown with active requests.",
@@ -530,7 +527,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
callback.waitForNextStep();
assertEquals(ResponseStep.ON_RESPONSE_STARTED, callback.mResponseStep);
urlRequest.cancel();
- mTestFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
}
@SmallTest
@@ -755,10 +752,11 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
// Tests that if CronetEngine is shut down when reading from disk cache,
// there isn't a crash. See crbug.com/486120.
public void testShutDownEngineWhenReadingFromDiskCache() throws Exception {
- enableCache(CronetEngine.Builder.HTTP_CACHE_DISK);
+ final CronetTestFramework testFramework =
+ startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HTTP_CACHE_DISK);
String url = NativeTestServer.getFileURL("/cacheable.txt");
// Make a request to a cacheable resource.
- checkRequestCaching(url, false);
+ checkRequestCaching(testFramework.mCronetEngine, url, false);
// Shut down the server.
NativeTestServer.shutdownNativeTestServer();
@@ -768,7 +766,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
super.onResponseStarted(request, info);
request.cancel();
// Shut down CronetEngine immediately after request is destroyed.
- mTestFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
}
@Override
@@ -786,7 +784,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
}
CancelUrlRequestCallback callback = new CancelUrlRequestCallback();
UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
- url, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ url, callback, callback.getExecutor(), testFramework.mCronetEngine);
urlRequestBuilder.build().start();
callback.blockForDone();
assertEquals(200, callback.mResponseInfo.getHttpStatusCode());
@@ -798,18 +796,18 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
@Feature({"Cronet"})
@OnlyRunNativeCronet
public void testNetLogAfterShutdown() throws Exception {
- mTestFramework = startCronetTestFramework();
+ final CronetTestFramework testFramework = startCronetTestFramework();
TestUrlRequestCallback callback = new TestUrlRequestCallback();
UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
- mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ mUrl, callback, callback.getExecutor(), testFramework.mCronetEngine);
urlRequestBuilder.build().start();
callback.blockForDone();
- mTestFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
File directory = new File(PathUtils.getDataDirectory(getContext()));
File file = File.createTempFile("cronet", "json", directory);
try {
- mTestFramework.mCronetEngine.startNetLogToFile(file.getPath(), false);
+ testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false);
fail("Should throw an exception.");
} catch (Exception e) {
assertEquals("Engine is shut down.", e.getMessage());
@@ -823,13 +821,13 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
@Feature({"Cronet"})
@OnlyRunNativeCronet
public void testBoundedFileNetLogAfterShutdown() throws Exception {
- mTestFramework = startCronetTestFramework();
+ final CronetTestFramework testFramework = startCronetTestFramework();
TestUrlRequestCallback callback = new TestUrlRequestCallback();
UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
- mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ mUrl, callback, callback.getExecutor(), testFramework.mCronetEngine);
urlRequestBuilder.build().start();
callback.blockForDone();
- mTestFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine.shutdown();
File directory = new File(PathUtils.getDataDirectory(getContext()));
File netLogDir = new File(directory, "NetLog");
@@ -837,7 +835,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
assertTrue(netLogDir.mkdir());
File constantsFile = new File(netLogDir, "constants.json");
try {
- mTestFramework.mCronetEngine.startNetLogToDisk(
+ testFramework.mCronetEngine.startNetLogToDisk(
netLogDir.getPath(), false, MAX_FILE_SIZE);
fail("Should throw an exception.");
} catch (Exception e) {
@@ -851,21 +849,21 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
@SmallTest
@Feature({"Cronet"})
public void testNetLogStartMultipleTimes() throws Exception {
- mTestFramework = startCronetTestFramework();
+ final CronetTestFramework testFramework = startCronetTestFramework();
File directory = new File(PathUtils.getDataDirectory(getContext()));
File file = File.createTempFile("cronet", "json", directory);
// Start NetLog multiple times.
- mTestFramework.mCronetEngine.startNetLogToFile(file.getPath(), false);
- mTestFramework.mCronetEngine.startNetLogToFile(file.getPath(), false);
- mTestFramework.mCronetEngine.startNetLogToFile(file.getPath(), false);
- mTestFramework.mCronetEngine.startNetLogToFile(file.getPath(), false);
+ testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false);
+ testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false);
+ testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false);
+ testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false);
// Start a request.
TestUrlRequestCallback callback = new TestUrlRequestCallback();
UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
- mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ mUrl, callback, callback.getExecutor(), testFramework.mCronetEngine);
urlRequestBuilder.build().start();
callback.blockForDone();
- mTestFramework.mCronetEngine.stopNetLog();
+ testFramework.mCronetEngine.stopNetLog();
assertTrue(file.exists());
assertTrue(file.length() != 0);
assertFalse(hasBytesInNetLog(file));
@@ -876,7 +874,7 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
@SmallTest
@Feature({"Cronet"})
public void testBoundedFileNetLogStartMultipleTimes() throws Exception {
- mTestFramework = startCronetTestFramework();
+ final CronetTestFramework testFramework = startCronetTestFramework();
File directory = new File(PathUtils.getDataDirectory(getContext()));
File netLogDir = new File(directory, "NetLog");
assertFalse(netLogDir.exists());
@@ -884,17 +882,17 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
File eventFile = new File(netLogDir, "event_file_0.json");
// Start NetLog multiple times. This should be equivalent to starting NetLog
// once. Each subsequent start (without calling stopNetLog) should be a no-op.
- mTestFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE);
- mTestFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE);
- mTestFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE);
- mTestFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE);
+ testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE);
+ testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE);
+ testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE);
+ testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE);
// Start a request.
TestUrlRequestCallback callback = new TestUrlRequestCallback();
UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
- mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ mUrl, callback, callback.getExecutor(), testFramework.mCronetEngine);
urlRequestBuilder.build().start();
callback.blockForDone();
- mTestFramework.mCronetEngine.stopNetLog();
+ testFramework.mCronetEngine.stopNetLog();
assertTrue(eventFile.exists());
assertTrue(eventFile.length() != 0);
assertFalse(hasBytesInNetLog(eventFile));
@@ -905,22 +903,22 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
@SmallTest
@Feature({"Cronet"})
public void testNetLogStopMultipleTimes() throws Exception {
- mTestFramework = startCronetTestFramework();
+ final CronetTestFramework testFramework = startCronetTestFramework();
File directory = new File(PathUtils.getDataDirectory(getContext()));
File file = File.createTempFile("cronet", "json", directory);
- mTestFramework.mCronetEngine.startNetLogToFile(file.getPath(), false);
+ testFramework.mCronetEngine.startNetLogToFile(file.getPath(), false);
// Start a request.
TestUrlRequestCallback callback = new TestUrlRequestCallback();
UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
- mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ mUrl, callback, callback.getExecutor(), testFramework.mCronetEngine);
urlRequestBuilder.build().start();
callback.blockForDone();
// Stop NetLog multiple times.
- mTestFramework.mCronetEngine.stopNetLog();
- mTestFramework.mCronetEngine.stopNetLog();
- mTestFramework.mCronetEngine.stopNetLog();
- mTestFramework.mCronetEngine.stopNetLog();
- mTestFramework.mCronetEngine.stopNetLog();
+ testFramework.mCronetEngine.stopNetLog();
+ testFramework.mCronetEngine.stopNetLog();
+ testFramework.mCronetEngine.stopNetLog();
+ testFramework.mCronetEngine.stopNetLog();
+ testFramework.mCronetEngine.stopNetLog();
assertTrue(file.exists());
assertTrue(file.length() != 0);
assertFalse(hasBytesInNetLog(file));
@@ -931,26 +929,26 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
@SmallTest
@Feature({"Cronet"})
public void testBoundedFileNetLogStopMultipleTimes() throws Exception {
- mTestFramework = startCronetTestFramework();
+ final CronetTestFramework testFramework = startCronetTestFramework();
File directory = new File(PathUtils.getDataDirectory(getContext()));
File netLogDir = new File(directory, "NetLog");
assertFalse(netLogDir.exists());
assertTrue(netLogDir.mkdir());
File eventFile = new File(netLogDir, "event_file_0.json");
- mTestFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE);
+ testFramework.mCronetEngine.startNetLogToDisk(netLogDir.getPath(), false, MAX_FILE_SIZE);
// Start a request.
TestUrlRequestCallback callback = new TestUrlRequestCallback();
UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
- mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ mUrl, callback, callback.getExecutor(), testFramework.mCronetEngine);
urlRequestBuilder.build().start();
callback.blockForDone();
// Stop NetLog multiple times. This should be equivalent to stopping NetLog once.
// Each subsequent stop (without calling startNetLogToDisk first) should be a no-op.
- mTestFramework.mCronetEngine.stopNetLog();
- mTestFramework.mCronetEngine.stopNetLog();
- mTestFramework.mCronetEngine.stopNetLog();
- mTestFramework.mCronetEngine.stopNetLog();
- mTestFramework.mCronetEngine.stopNetLog();
+ testFramework.mCronetEngine.stopNetLog();
+ testFramework.mCronetEngine.stopNetLog();
+ testFramework.mCronetEngine.stopNetLog();
+ testFramework.mCronetEngine.stopNetLog();
+ testFramework.mCronetEngine.stopNetLog();
assertTrue(eventFile.exists());
assertTrue(eventFile.length() != 0);
assertFalse(hasBytesInNetLog(eventFile));
@@ -1045,7 +1043,8 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
assertEquals(expectedStatusCode, callback.mResponseInfo.getHttpStatusCode());
}
- private void enableCache(int cacheType) throws Exception {
+ private CronetTestFramework startCronetTestFrameworkWithCacheEnabled(int cacheType)
+ throws Exception {
String cacheTypeString = "";
if (cacheType == CronetEngine.Builder.HTTP_CACHE_DISK) {
cacheTypeString = CronetTestFramework.CACHE_DISK;
@@ -1055,19 +1054,21 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
cacheTypeString = CronetTestFramework.CACHE_IN_MEMORY;
}
String[] commandLineArgs = {CronetTestFramework.CACHE_KEY, cacheTypeString};
- mTestFramework = startCronetTestFrameworkWithUrlAndCommandLineArgs(null, commandLineArgs);
+ CronetTestFramework testFramework =
+ startCronetTestFrameworkWithUrlAndCommandLineArgs(null, commandLineArgs);
assertTrue(NativeTestServer.startNativeTestServer(getContext()));
+ return testFramework;
}
- private void checkRequestCaching(String url, boolean expectCached) {
- checkRequestCaching(url, expectCached, false);
+ private void checkRequestCaching(CronetEngine engine, String url, boolean expectCached) {
+ checkRequestCaching(engine, url, expectCached, false);
}
- private void checkRequestCaching(String url, boolean expectCached,
- boolean disableCache) {
+ private void checkRequestCaching(
+ CronetEngine engine, String url, boolean expectCached, boolean disableCache) {
TestUrlRequestCallback callback = new TestUrlRequestCallback();
- UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
- url, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ UrlRequest.Builder urlRequestBuilder =
+ new UrlRequest.Builder(url, callback, callback.getExecutor(), engine);
if (disableCache) {
urlRequestBuilder.disableCache();
}
@@ -1081,68 +1082,73 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
@Feature({"Cronet"})
@OnlyRunNativeCronet
public void testEnableHttpCacheDisabled() throws Exception {
- enableCache(CronetEngine.Builder.HTTP_CACHE_DISABLED);
+ final CronetTestFramework testFramework =
+ startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HTTP_CACHE_DISABLED);
String url = NativeTestServer.getFileURL("/cacheable.txt");
- checkRequestCaching(url, false);
- checkRequestCaching(url, false);
- checkRequestCaching(url, false);
+ checkRequestCaching(testFramework.mCronetEngine, url, false);
+ checkRequestCaching(testFramework.mCronetEngine, url, false);
+ checkRequestCaching(testFramework.mCronetEngine, url, false);
}
@SmallTest
@Feature({"Cronet"})
public void testEnableHttpCacheInMemory() throws Exception {
- enableCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY);
+ final CronetTestFramework testFramework =
+ startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY);
String url = NativeTestServer.getFileURL("/cacheable.txt");
- checkRequestCaching(url, false);
- checkRequestCaching(url, true);
+ checkRequestCaching(testFramework.mCronetEngine, url, false);
+ checkRequestCaching(testFramework.mCronetEngine, url, true);
NativeTestServer.shutdownNativeTestServer();
- checkRequestCaching(url, true);
+ checkRequestCaching(testFramework.mCronetEngine, url, true);
}
@SmallTest
@Feature({"Cronet"})
public void testEnableHttpCacheDisk() throws Exception {
- enableCache(CronetEngine.Builder.HTTP_CACHE_DISK);
+ final CronetTestFramework testFramework =
+ startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HTTP_CACHE_DISK);
String url = NativeTestServer.getFileURL("/cacheable.txt");
- checkRequestCaching(url, false);
- checkRequestCaching(url, true);
+ checkRequestCaching(testFramework.mCronetEngine, url, false);
+ checkRequestCaching(testFramework.mCronetEngine, url, true);
NativeTestServer.shutdownNativeTestServer();
- checkRequestCaching(url, true);
+ checkRequestCaching(testFramework.mCronetEngine, url, true);
}
@SmallTest
@Feature({"Cronet"})
@OnlyRunNativeCronet
public void testEnableHttpCacheDiskNoHttp() throws Exception {
- enableCache(CronetEngine.Builder.HTTP_CACHE_DISABLED);
+ final CronetTestFramework testFramework =
+ startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HTTP_CACHE_DISABLED);
String url = NativeTestServer.getFileURL("/cacheable.txt");
- checkRequestCaching(url, false);
- checkRequestCaching(url, false);
- checkRequestCaching(url, false);
+ checkRequestCaching(testFramework.mCronetEngine, url, false);
+ checkRequestCaching(testFramework.mCronetEngine, url, false);
+ checkRequestCaching(testFramework.mCronetEngine, url, false);
}
@SmallTest
@Feature({"Cronet"})
public void testDisableCache() throws Exception {
- enableCache(CronetEngine.Builder.HTTP_CACHE_DISK);
+ final CronetTestFramework testFramework =
+ startCronetTestFrameworkWithCacheEnabled(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);
+ checkRequestCaching(testFramework.mCronetEngine, url, false, true /** disable cache */);
+ checkRequestCaching(testFramework.mCronetEngine, url, false);
// When cache is enabled, the second request is cached.
- checkRequestCaching(url, false, true /** disable cache */);
- checkRequestCaching(url, true);
+ checkRequestCaching(testFramework.mCronetEngine, url, false, true /** disable cache */);
+ checkRequestCaching(testFramework.mCronetEngine, url, true);
// Shut down the server, next request should have a cached response.
NativeTestServer.shutdownNativeTestServer();
- checkRequestCaching(url, true);
+ checkRequestCaching(testFramework.mCronetEngine, url, true);
// Cache is disabled after server is shut down, request should fail.
TestUrlRequestCallback callback = new TestUrlRequestCallback();
UrlRequest.Builder urlRequestBuilder = new UrlRequest.Builder(
- url, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ url, callback, callback.getExecutor(), testFramework.mCronetEngine);
urlRequestBuilder.disableCache();
urlRequestBuilder.build().start();
callback.blockForDone();
@@ -1154,17 +1160,18 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
@SmallTest
@Feature({"Cronet"})
public void testEnableHttpCacheDiskNewEngine() throws Exception {
- enableCache(CronetEngine.Builder.HTTP_CACHE_DISK);
+ final CronetTestFramework testFramework =
+ startCronetTestFrameworkWithCacheEnabled(CronetEngine.Builder.HTTP_CACHE_DISK);
String url = NativeTestServer.getFileURL("/cacheable.txt");
- checkRequestCaching(url, false);
- checkRequestCaching(url, true);
+ checkRequestCaching(testFramework.mCronetEngine, url, false);
+ checkRequestCaching(testFramework.mCronetEngine, url, true);
NativeTestServer.shutdownNativeTestServer();
- checkRequestCaching(url, true);
+ checkRequestCaching(testFramework.mCronetEngine, url, true);
// Shutdown original context and create another that uses the same cache.
- mTestFramework.mCronetEngine.shutdown();
- mTestFramework.mCronetEngine = mTestFramework.getCronetEngineBuilder().build();
- checkRequestCaching(url, true);
+ testFramework.mCronetEngine.shutdown();
+ testFramework.mCronetEngine = testFramework.getCronetEngineBuilder().build();
+ checkRequestCaching(testFramework.mCronetEngine, url, true);
}
@SmallTest
@@ -1270,13 +1277,13 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
// Test that concurrently instantiating Cronet context's upon various
// different versions of the same Android Context does not cause crashes
// like crbug.com/453845
- mTestFramework = startCronetTestFramework();
+ final CronetTestFramework testFramework = startCronetTestFramework();
CronetEngine firstEngine =
- new CronetUrlRequestContext(mTestFramework.createCronetEngineBuilder(getContext()));
+ new CronetUrlRequestContext(testFramework.createCronetEngineBuilder(getContext()));
CronetEngine secondEngine = new CronetUrlRequestContext(
- mTestFramework.createCronetEngineBuilder(getContext().getApplicationContext()));
+ testFramework.createCronetEngineBuilder(getContext().getApplicationContext()));
CronetEngine thirdEngine = new CronetUrlRequestContext(
- mTestFramework.createCronetEngineBuilder(new ContextWrapper(getContext())));
+ testFramework.createCronetEngineBuilder(new ContextWrapper(getContext())));
firstEngine.shutdown();
secondEngine.shutdown();
thirdEngine.shutdown();
@@ -1285,16 +1292,16 @@ public class CronetUrlRequestContextTest extends CronetTestBase {
@SmallTest
@Feature({"Cronet"})
public void testGetGlobalMetricsDeltas() throws Exception {
- mTestFramework = startCronetTestFramework();
+ final CronetTestFramework testFramework = startCronetTestFramework();
- byte delta1[] = mTestFramework.mCronetEngine.getGlobalMetricsDeltas();
+ byte delta1[] = testFramework.mCronetEngine.getGlobalMetricsDeltas();
TestUrlRequestCallback callback = new TestUrlRequestCallback();
UrlRequest.Builder builder = new UrlRequest.Builder(
- mUrl, callback, callback.getExecutor(), mTestFramework.mCronetEngine);
+ mUrl, callback, callback.getExecutor(), testFramework.mCronetEngine);
builder.build().start();
callback.blockForDone();
- byte delta2[] = mTestFramework.mCronetEngine.getGlobalMetricsDeltas();
+ byte delta2[] = testFramework.mCronetEngine.getGlobalMetricsDeltas();
assertTrue(delta2.length != 0);
assertFalse(Arrays.equals(delta1, delta2));
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698