| Index: components/cronet/android/sample/javatests/src/org/chromium/cronet_sample_apk/CronetSampleUrlTest.java
|
| diff --git a/components/cronet/android/sample/javatests/src/org/chromium/cronet_sample_apk/CronetSampleUrlTest.java b/components/cronet/android/sample/javatests/src/org/chromium/cronet_sample_apk/CronetSampleUrlTest.java
|
| index aef180500f480ae5bf9770b4305581bec06d176d..eaa024a14e4b779db563bd8c18fce2a0501aef14 100644
|
| --- a/components/cronet/android/sample/javatests/src/org/chromium/cronet_sample_apk/CronetSampleUrlTest.java
|
| +++ b/components/cronet/android/sample/javatests/src/org/chromium/cronet_sample_apk/CronetSampleUrlTest.java
|
| @@ -4,12 +4,17 @@
|
|
|
| package org.chromium.cronet_sample_apk;
|
|
|
| +import android.os.ConditionVariable;
|
| +
|
| import android.test.suitebuilder.annotation.SmallTest;
|
|
|
| import org.chromium.base.test.util.Feature;
|
| +import org.chromium.net.HttpUrlRequest;
|
| import org.chromium.net.HttpUrlRequestFactoryConfig;
|
| +import org.chromium.net.HttpUrlRequestListener;
|
|
|
| import java.io.File;
|
| +import java.util.HashMap;
|
|
|
| /**
|
| * Example test that just starts the cronet sample.
|
| @@ -89,6 +94,52 @@ public class CronetSampleUrlTest extends CronetSampleTestBase {
|
| assertTrue(!file.exists());
|
| }
|
|
|
| + class BadHttpUrlRequestListener implements HttpUrlRequestListener {
|
| + static final String THROW_TAG = "BadListener";
|
| + ConditionVariable mComplete = new ConditionVariable();
|
| +
|
| + public BadHttpUrlRequestListener() {
|
| + }
|
| +
|
| + @Override
|
| + public void onResponseStarted(HttpUrlRequest request) {
|
| + throw new NullPointerException(THROW_TAG);
|
| + }
|
| +
|
| + @Override
|
| + public void onRequestComplete(HttpUrlRequest request) {
|
| + mComplete.open();
|
| + }
|
| +
|
| + public void blockForComplete() {
|
| + mComplete.block();
|
| + }
|
| + }
|
| +
|
| + @SmallTest
|
| + @Feature({"Cronet"})
|
| + public void testCalledByNativeException() throws Exception {
|
| + CronetSampleActivity activity = launchCronetSampleWithUrl(URL);
|
| +
|
| + // Make sure the activity was created as expected.
|
| + assertNotNull(activity);
|
| +
|
| + waitForActiveShellToBeDoneLoading();
|
| +
|
| + HashMap<String, String> headers = new HashMap<String, String>();
|
| + BadHttpUrlRequestListener listener = new BadHttpUrlRequestListener();
|
| +
|
| + // Create request with null listener to trigger an exception.
|
| + HttpUrlRequest request = activity.mChromiumRequestFactory.createRequest(
|
| + URL, HttpUrlRequest.REQUEST_PRIORITY_MEDIUM, headers, listener);
|
| + request.start();
|
| + listener.blockForComplete();
|
| + assertTrue(request.isCanceled());
|
| + assertNotNull(request.getException());
|
| + assertEquals(listener.THROW_TAG, request.getException().getCause().getMessage());
|
| +
|
| + }
|
| +
|
| @SmallTest
|
| @Feature({"Cronet"})
|
| public void testLegacyLoadUrl() throws Exception {
|
|
|