| Index: components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java
|
| diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java
|
| index 1f671a8bff67a8d7c3e4ae8ba1683c6c1d443cbc..c88ff84531aca685ffe7a28908821bc11cd9050d 100644
|
| --- a/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java
|
| +++ b/components/cronet/android/test/javatests/src/org/chromium/net/RequestFinishedInfoTest.java
|
| @@ -20,6 +20,7 @@ import java.util.Date;
|
| import java.util.HashSet;
|
| import java.util.List;
|
| import java.util.concurrent.Executor;
|
| +import java.util.concurrent.RejectedExecutionException;
|
|
|
| /**
|
| * Test RequestFinishedInfo.Listener and the metrics information it provides.
|
| @@ -292,6 +293,41 @@ public class RequestFinishedInfoTest extends CronetTestBase {
|
| mTestFramework.mCronetEngine.shutdown();
|
| }
|
|
|
| + private static class RejectAllTasksExecutor implements Executor {
|
| + @Override
|
| + public void execute(Runnable task) {
|
| + throw new RejectedExecutionException();
|
| + }
|
| + }
|
| +
|
| + // Checks that CronetURLRequestAdapter::DestroyOnNetworkThread() doesn't crash when metrics
|
| + // collection is enabled and the URLRequest hasn't been created. See http://crbug.com/675629.
|
| + @SmallTest
|
| + @OnlyRunNativeCronet
|
| + @Feature({"Cronet"})
|
| + public void testExceptionInRequestStart() throws Exception {
|
| + mTestFramework = startCronetTestFramework();
|
| + // The listener in this test shouldn't get any tasks.
|
| + Executor executor = new RejectAllTasksExecutor();
|
| + TestRequestFinishedListener requestFinishedListener =
|
| + new TestRequestFinishedListener(executor);
|
| + mTestFramework.mCronetEngine.addRequestFinishedListener(requestFinishedListener);
|
| + TestUrlRequestCallback callback = new TestUrlRequestCallback();
|
| + ExperimentalUrlRequest.Builder urlRequestBuilder =
|
| + mTestFramework.mCronetEngine.newUrlRequestBuilder(
|
| + mUrl, callback, callback.getExecutor());
|
| + // Empty headers are invalid and will cause start() to throw an exception.
|
| + UrlRequest request = urlRequestBuilder.addHeader("", "").build();
|
| + try {
|
| + request.start();
|
| + fail("UrlRequest.start() should throw IllegalArgumentException");
|
| + } catch (IllegalArgumentException e) {
|
| + assertEquals("Invalid header =", e.getMessage());
|
| + }
|
| +
|
| + mTestFramework.mCronetEngine.shutdown();
|
| + }
|
| +
|
| @SmallTest
|
| @Feature({"Cronet"})
|
| public void testMetricsGetters() throws Exception {
|
|
|