mirror of
https://github.com/androidx/media.git
synced 2025-04-30 06:46:50 +08:00
Do not mock NetworkException
PiperOrigin-RevId: 372321626
This commit is contained in:
parent
782c1739c8
commit
a9fc3185fe
@ -18,6 +18,7 @@ package com.google.android.exoplayer2.ext.cronet;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static java.lang.Math.min;
|
||||
import static java.util.concurrent.TimeUnit.SECONDS;
|
||||
import static org.chromium.net.NetworkException.ERROR_HOSTNAME_NOT_RESOLVED;
|
||||
import static org.junit.Assert.fail;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyString;
|
||||
@ -100,7 +101,6 @@ public final class CronetDataSourceTest {
|
||||
@Mock private UrlRequest.Builder mockUrlRequestBuilder;
|
||||
@Mock private UrlRequest mockUrlRequest;
|
||||
@Mock private TransferListener mockTransferListener;
|
||||
@Mock private NetworkException mockNetworkException;
|
||||
@Mock private CronetEngine mockCronetEngine;
|
||||
|
||||
private ExecutorService executorService;
|
||||
@ -242,7 +242,11 @@ public final class CronetDataSourceTest {
|
||||
invocation -> {
|
||||
// Invoke the callback for the previous request.
|
||||
dataSourceUnderTest.urlRequestCallback.onFailed(
|
||||
mockUrlRequest, testUrlResponseInfo, mockNetworkException);
|
||||
mockUrlRequest,
|
||||
testUrlResponseInfo,
|
||||
createNetworkException(
|
||||
/* errorCode= */ Integer.MAX_VALUE,
|
||||
/* cause= */ new IllegalArgumentException()));
|
||||
dataSourceUnderTest.urlRequestCallback.onResponseStarted(
|
||||
mockUrlRequest2, testUrlResponseInfo);
|
||||
return null;
|
||||
@ -336,7 +340,8 @@ public final class CronetDataSourceTest {
|
||||
|
||||
@Test
|
||||
public void requestOpenFail() {
|
||||
mockResponseStartFailure();
|
||||
mockResponseStartFailure(
|
||||
/* errorCode= */ Integer.MAX_VALUE, /* cause= */ new IllegalArgumentException());
|
||||
|
||||
try {
|
||||
dataSourceUnderTest.open(testDataSpec);
|
||||
@ -372,9 +377,8 @@ public final class CronetDataSourceTest {
|
||||
|
||||
@Test
|
||||
public void requestOpenFailDueToDnsFailure() {
|
||||
mockResponseStartFailure();
|
||||
when(mockNetworkException.getErrorCode())
|
||||
.thenReturn(NetworkException.ERROR_HOSTNAME_NOT_RESOLVED);
|
||||
mockResponseStartFailure(
|
||||
/* errorCode= */ ERROR_HOSTNAME_NOT_RESOLVED, /* cause= */ new UnknownHostException());
|
||||
|
||||
try {
|
||||
dataSourceUnderTest.open(testDataSpec);
|
||||
@ -1544,13 +1548,13 @@ public final class CronetDataSourceTest {
|
||||
.followRedirect();
|
||||
}
|
||||
|
||||
private void mockResponseStartFailure() {
|
||||
private void mockResponseStartFailure(int errorCode, Throwable cause) {
|
||||
doAnswer(
|
||||
invocation -> {
|
||||
dataSourceUnderTest.urlRequestCallback.onFailed(
|
||||
mockUrlRequest,
|
||||
createUrlResponseInfo(500), // statusCode
|
||||
mockNetworkException);
|
||||
createNetworkException(errorCode, cause));
|
||||
return null;
|
||||
})
|
||||
.when(mockUrlRequest)
|
||||
@ -1585,7 +1589,9 @@ public final class CronetDataSourceTest {
|
||||
dataSourceUnderTest.urlRequestCallback.onFailed(
|
||||
mockUrlRequest,
|
||||
createUrlResponseInfo(500), // statusCode
|
||||
mockNetworkException);
|
||||
createNetworkException(
|
||||
/* errorCode= */ Integer.MAX_VALUE,
|
||||
/* cause= */ new IllegalArgumentException()));
|
||||
return null;
|
||||
})
|
||||
.when(mockUrlRequest)
|
||||
@ -1663,4 +1669,23 @@ public final class CronetDataSourceTest {
|
||||
SystemClock.setCurrentTimeMillis(nowMs);
|
||||
ShadowLooper.idleMainLooper();
|
||||
}
|
||||
|
||||
private static NetworkException createNetworkException(int errorCode, Throwable cause) {
|
||||
return new NetworkException("", cause) {
|
||||
@Override
|
||||
public int getErrorCode() {
|
||||
return errorCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCronetInternalErrorCode() {
|
||||
return errorCode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean immediatelyRetryable() {
|
||||
return false;
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user