Index: components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java |
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java b/components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java |
index da46d1b9c1858b3f569c2a4d846388181ece8dc3..915813fef00a84dd20cf314aee8034ca7e9ce5ff 100644 |
--- a/components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java |
+++ b/components/cronet/android/test/javatests/src/org/chromium/net/TestUrlRequestCallback.java |
@@ -46,6 +46,9 @@ class TestUrlRequestCallback extends UrlRequest.Callback { |
// that advance it. |
private boolean mAutoAdvance = true; |
+ // Whether to permit calls on the network thread. |
+ private boolean mAllowDirectExecutor = false; |
+ |
// Conditionally fail on certain steps. |
private FailureType mFailureType = FailureType.NONE; |
private ResponseStep mFailureStep = ResponseStep.NOTHING; |
@@ -108,6 +111,10 @@ class TestUrlRequestCallback extends UrlRequest.Callback { |
mAutoAdvance = autoAdvance; |
} |
+ public void setAllowDirectExecutor(boolean allowed) { |
mef
2016/08/30 17:55:47
maybe instead of setAllowDirectExecutor() use setU
Charles
2016/08/30 20:11:06
That wouldn't fly for javaurlrequest, which has a
|
+ mAllowDirectExecutor = allowed; |
+ } |
+ |
public void setFailure(FailureType failureType, ResponseStep failureStep) { |
mFailureStep = failureStep; |
mFailureType = failureType; |
@@ -151,7 +158,9 @@ class TestUrlRequestCallback extends UrlRequest.Callback { |
@Override |
public void onResponseStarted(UrlRequest request, UrlResponseInfo info) { |
- assertEquals(mExecutorThread, Thread.currentThread()); |
+ if (!mAllowDirectExecutor) { |
+ assertEquals(mExecutorThread, Thread.currentThread()); |
+ } |
assertFalse(request.isDone()); |
assertTrue(mResponseStep == ResponseStep.NOTHING |
|| mResponseStep == ResponseStep.ON_RECEIVED_REDIRECT); |
@@ -167,7 +176,9 @@ class TestUrlRequestCallback extends UrlRequest.Callback { |
@Override |
public void onReadCompleted(UrlRequest request, UrlResponseInfo info, ByteBuffer byteBuffer) { |
- assertEquals(mExecutorThread, Thread.currentThread()); |
+ if (!mAllowDirectExecutor) { |
+ assertEquals(mExecutorThread, Thread.currentThread()); |
+ } |
assertFalse(request.isDone()); |
assertTrue(mResponseStep == ResponseStep.ON_RESPONSE_STARTED |
|| mResponseStep == ResponseStep.ON_READ_COMPLETED); |
@@ -194,7 +205,9 @@ class TestUrlRequestCallback extends UrlRequest.Callback { |
@Override |
public void onSucceeded(UrlRequest request, UrlResponseInfo info) { |
- assertEquals(mExecutorThread, Thread.currentThread()); |
+ if (!mAllowDirectExecutor) { |
+ assertEquals(mExecutorThread, Thread.currentThread()); |
+ } |
assertTrue(request.isDone()); |
assertTrue(mResponseStep == ResponseStep.ON_RESPONSE_STARTED |
|| mResponseStep == ResponseStep.ON_READ_COMPLETED); |
@@ -210,7 +223,12 @@ class TestUrlRequestCallback extends UrlRequest.Callback { |
@Override |
public void onFailed(UrlRequest request, UrlResponseInfo info, UrlRequestException error) { |
- assertEquals(mExecutorThread, Thread.currentThread()); |
+ // If the failure is because of prohibited direct execution, the test shouldn't fail |
+ // since the request already did. |
+ if (!mAllowDirectExecutor |
+ && !(error.getCause() instanceof InlineExecutionProhibitedException)) { |
+ assertEquals(mExecutorThread, Thread.currentThread()); |
+ } |
assertTrue(request.isDone()); |
// Shouldn't happen after success. |
assertTrue(mResponseStep != ResponseStep.ON_SUCCEEDED); |
@@ -231,12 +249,15 @@ class TestUrlRequestCallback extends UrlRequest.Callback { |
mOnErrorCalled = true; |
mError = error; |
openDone(); |
+ System.out.println("opened"); |
mef
2016/08/30 17:55:47
nit: remove
Charles
2016/08/30 20:11:06
Done.
|
maybeThrowCancelOrPause(request); |
} |
@Override |
public void onCanceled(UrlRequest request, UrlResponseInfo info) { |
- assertEquals(mExecutorThread, Thread.currentThread()); |
+ if (!mAllowDirectExecutor) { |
+ assertEquals(mExecutorThread, Thread.currentThread()); |
+ } |
assertTrue(request.isDone()); |
// Should happen at most once for a single request. |
assertFalse(mOnCanceledCalled); |