Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
SDK
/
exoplayer
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
a9fc3185
authored
May 06, 2021
by
bachinger
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
Do not mock NetworkException
PiperOrigin-RevId: 372321626
parent
782c1739
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
9 deletions
extensions/cronet/src/test/java/com/google/android/exoplayer2/ext/cronet/CronetDataSourceTest.java
extensions/cronet/src/test/java/com/google/android/exoplayer2/ext/cronet/CronetDataSourceTest.java
View file @
a9fc3185
...
@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.ext.cronet;
...
@@ -18,6 +18,7 @@ package com.google.android.exoplayer2.ext.cronet;
import
static
com
.
google
.
common
.
truth
.
Truth
.
assertThat
;
import
static
com
.
google
.
common
.
truth
.
Truth
.
assertThat
;
import
static
java
.
lang
.
Math
.
min
;
import
static
java
.
lang
.
Math
.
min
;
import
static
java
.
util
.
concurrent
.
TimeUnit
.
SECONDS
;
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
.
junit
.
Assert
.
fail
;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
ArgumentMatchers
.
any
;
import
static
org
.
mockito
.
ArgumentMatchers
.
anyString
;
import
static
org
.
mockito
.
ArgumentMatchers
.
anyString
;
...
@@ -100,7 +101,6 @@ public final class CronetDataSourceTest {
...
@@ -100,7 +101,6 @@ public final class CronetDataSourceTest {
@Mock
private
UrlRequest
.
Builder
mockUrlRequestBuilder
;
@Mock
private
UrlRequest
.
Builder
mockUrlRequestBuilder
;
@Mock
private
UrlRequest
mockUrlRequest
;
@Mock
private
UrlRequest
mockUrlRequest
;
@Mock
private
TransferListener
mockTransferListener
;
@Mock
private
TransferListener
mockTransferListener
;
@Mock
private
NetworkException
mockNetworkException
;
@Mock
private
CronetEngine
mockCronetEngine
;
@Mock
private
CronetEngine
mockCronetEngine
;
private
ExecutorService
executorService
;
private
ExecutorService
executorService
;
...
@@ -242,7 +242,11 @@ public final class CronetDataSourceTest {
...
@@ -242,7 +242,11 @@ public final class CronetDataSourceTest {
invocation
->
{
invocation
->
{
// Invoke the callback for the previous request.
// Invoke the callback for the previous request.
dataSourceUnderTest
.
urlRequestCallback
.
onFailed
(
dataSourceUnderTest
.
urlRequestCallback
.
onFailed
(
mockUrlRequest
,
testUrlResponseInfo
,
mockNetworkException
);
mockUrlRequest
,
testUrlResponseInfo
,
createNetworkException
(
/* errorCode= */
Integer
.
MAX_VALUE
,
/* cause= */
new
IllegalArgumentException
()));
dataSourceUnderTest
.
urlRequestCallback
.
onResponseStarted
(
dataSourceUnderTest
.
urlRequestCallback
.
onResponseStarted
(
mockUrlRequest2
,
testUrlResponseInfo
);
mockUrlRequest2
,
testUrlResponseInfo
);
return
null
;
return
null
;
...
@@ -336,7 +340,8 @@ public final class CronetDataSourceTest {
...
@@ -336,7 +340,8 @@ public final class CronetDataSourceTest {
@Test
@Test
public
void
requestOpenFail
()
{
public
void
requestOpenFail
()
{
mockResponseStartFailure
();
mockResponseStartFailure
(
/* errorCode= */
Integer
.
MAX_VALUE
,
/* cause= */
new
IllegalArgumentException
());
try
{
try
{
dataSourceUnderTest
.
open
(
testDataSpec
);
dataSourceUnderTest
.
open
(
testDataSpec
);
...
@@ -372,9 +377,8 @@ public final class CronetDataSourceTest {
...
@@ -372,9 +377,8 @@ public final class CronetDataSourceTest {
@Test
@Test
public
void
requestOpenFailDueToDnsFailure
()
{
public
void
requestOpenFailDueToDnsFailure
()
{
mockResponseStartFailure
();
mockResponseStartFailure
(
when
(
mockNetworkException
.
getErrorCode
())
/* errorCode= */
ERROR_HOSTNAME_NOT_RESOLVED
,
/* cause= */
new
UnknownHostException
());
.
thenReturn
(
NetworkException
.
ERROR_HOSTNAME_NOT_RESOLVED
);
try
{
try
{
dataSourceUnderTest
.
open
(
testDataSpec
);
dataSourceUnderTest
.
open
(
testDataSpec
);
...
@@ -1544,13 +1548,13 @@ public final class CronetDataSourceTest {
...
@@ -1544,13 +1548,13 @@ public final class CronetDataSourceTest {
.
followRedirect
();
.
followRedirect
();
}
}
private
void
mockResponseStartFailure
()
{
private
void
mockResponseStartFailure
(
int
errorCode
,
Throwable
cause
)
{
doAnswer
(
doAnswer
(
invocation
->
{
invocation
->
{
dataSourceUnderTest
.
urlRequestCallback
.
onFailed
(
dataSourceUnderTest
.
urlRequestCallback
.
onFailed
(
mockUrlRequest
,
mockUrlRequest
,
createUrlResponseInfo
(
500
),
// statusCode
createUrlResponseInfo
(
500
),
// statusCode
mockNetworkException
);
createNetworkException
(
errorCode
,
cause
)
);
return
null
;
return
null
;
})
})
.
when
(
mockUrlRequest
)
.
when
(
mockUrlRequest
)
...
@@ -1585,7 +1589,9 @@ public final class CronetDataSourceTest {
...
@@ -1585,7 +1589,9 @@ public final class CronetDataSourceTest {
dataSourceUnderTest
.
urlRequestCallback
.
onFailed
(
dataSourceUnderTest
.
urlRequestCallback
.
onFailed
(
mockUrlRequest
,
mockUrlRequest
,
createUrlResponseInfo
(
500
),
// statusCode
createUrlResponseInfo
(
500
),
// statusCode
mockNetworkException
);
createNetworkException
(
/* errorCode= */
Integer
.
MAX_VALUE
,
/* cause= */
new
IllegalArgumentException
()));
return
null
;
return
null
;
})
})
.
when
(
mockUrlRequest
)
.
when
(
mockUrlRequest
)
...
@@ -1663,4 +1669,23 @@ public final class CronetDataSourceTest {
...
@@ -1663,4 +1669,23 @@ public final class CronetDataSourceTest {
SystemClock
.
setCurrentTimeMillis
(
nowMs
);
SystemClock
.
setCurrentTimeMillis
(
nowMs
);
ShadowLooper
.
idleMainLooper
();
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
;
}
};
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment