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

Unified Diff: components/cronet/android/sample/javatests/src/org/chromium/cronet_sample_apk/CronetSampleUrlTest.java

Issue 474573003: Catch and report exceptions in CalledByNative java methods. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Move && Created 6 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 | « components/cronet/android/java/src/org/chromium/net/ChromiumUrlRequestContext.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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..3136ca72646bb5166fffd8fa848333b9178bf925 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,53 @@ 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();
+ throw new NullPointerException(THROW_TAG);
+ }
+
+ 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 {
« no previous file with comments | « components/cronet/android/java/src/org/chromium/net/ChromiumUrlRequestContext.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698