Chromium Code Reviews| 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); |