Tests: Throw exception when network is needed but not available.
This exception is a bit shorter and more clear (and is more clear that this is a test issue, as opposed to the prior issue that was thrown as an ExoPlayer DataSourceException, which may seem like a legitimate Transformer failure) PiperOrigin-RevId: 490252772
This commit is contained in:
parent
0d863ddc91
commit
82b59b7228
@ -19,6 +19,10 @@ import static com.google.android.exoplayer2.util.Assertions.checkNotNull;
|
|||||||
import static java.util.concurrent.TimeUnit.SECONDS;
|
import static java.util.concurrent.TimeUnit.SECONDS;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
|
import android.net.NetworkCapabilities;
|
||||||
|
import android.net.NetworkInfo;
|
||||||
|
import android.net.Uri;
|
||||||
import android.view.Surface;
|
import android.view.Surface;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.test.platform.app.InstrumentationRegistry;
|
import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
@ -233,6 +237,14 @@ public class TransformerAndroidTestRunner {
|
|||||||
"SSIM calculation is not supported for clipped inputs.");
|
"SSIM calculation is not supported for clipped inputs.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Uri mediaItemUri = checkNotNull(mediaItem.localConfiguration).uri;
|
||||||
|
String scheme = checkNotNull(mediaItemUri.getScheme());
|
||||||
|
if ((scheme.equals("http") || scheme.equals("https")) && !hasNetworkConnection(context)) {
|
||||||
|
throw new UnsupportedOperationException(
|
||||||
|
"Input network file requested on device with no network connection. Input file name: "
|
||||||
|
+ mediaItemUri);
|
||||||
|
}
|
||||||
|
|
||||||
AtomicReference<@NullableType TransformationException> transformationExceptionReference =
|
AtomicReference<@NullableType TransformationException> transformationExceptionReference =
|
||||||
new AtomicReference<>();
|
new AtomicReference<>();
|
||||||
AtomicReference<@NullableType Exception> unexpectedExceptionReference = new AtomicReference<>();
|
AtomicReference<@NullableType Exception> unexpectedExceptionReference = new AtomicReference<>();
|
||||||
@ -363,6 +375,34 @@ public class TransformerAndroidTestRunner {
|
|||||||
return resultBuilder.build();
|
return resultBuilder.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Returns whether the context is connected to the network. */
|
||||||
|
private static boolean hasNetworkConnection(Context context) {
|
||||||
|
ConnectivityManager connectivityManager =
|
||||||
|
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
|
if (connectivityManager == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (Util.SDK_INT >= 23) {
|
||||||
|
// getActiveNetwork is available from API 23.
|
||||||
|
NetworkCapabilities activeNetworkCapabilities =
|
||||||
|
connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork());
|
||||||
|
if (activeNetworkCapabilities != null
|
||||||
|
&& (activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)
|
||||||
|
|| activeNetworkCapabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// getActiveNetworkInfo is deprecated from API 29.
|
||||||
|
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
|
||||||
|
if (activeNetworkInfo != null
|
||||||
|
&& (activeNetworkInfo.getType() == ConnectivityManager.TYPE_WIFI
|
||||||
|
|| activeNetworkInfo.getType() == ConnectivityManager.TYPE_MOBILE)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A {@link Codec.EncoderFactory} that forwards all methods to another encoder factory, whilst
|
* A {@link Codec.EncoderFactory} that forwards all methods to another encoder factory, whilst
|
||||||
* providing visibility into the names of last codecs created by it.
|
* providing visibility into the names of last codecs created by it.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user