Fix Widevine offline test assertion for API29+.
The error type thrown when acquiring a license that has already been released changed from MediaDrmStateException to IllegalStateException from API 29. Update the tests to assert the correct type of error based on API version. PiperOrigin-RevId: 308239508
This commit is contained in:
parent
30c55d117e
commit
13c668f9e0
@ -17,7 +17,7 @@ package com.google.android.exoplayer2.playbacktests.gts;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
import static com.google.common.truth.Truth.assertWithMessage;
|
||||
import static org.junit.Assert.fail;
|
||||
import static org.junit.Assert.assertThrows;
|
||||
|
||||
import android.media.MediaDrm.MediaDrmStateException;
|
||||
import android.net.Uri;
|
||||
@ -111,29 +111,47 @@ public final class DashWidevineOfflineTest {
|
||||
|
||||
@Test
|
||||
public void widevineOfflineReleasedLicenseV22() throws Throwable {
|
||||
if (Util.SDK_INT < 22) {
|
||||
if (Util.SDK_INT < 22 || Util.SDK_INT > 28) {
|
||||
return; // Pass.
|
||||
}
|
||||
downloadLicense();
|
||||
releaseLicense(); // keySetId no longer valid.
|
||||
|
||||
try {
|
||||
testRunner.run();
|
||||
fail("Playback should fail because the license has been released.");
|
||||
} catch (Throwable e) {
|
||||
Throwable error =
|
||||
assertThrows(
|
||||
"Playback should fail because the license has been released.",
|
||||
Throwable.class,
|
||||
() -> testRunner.run());
|
||||
|
||||
// Get the root cause
|
||||
while (true) {
|
||||
Throwable cause = e.getCause();
|
||||
if (cause == null || cause == e) {
|
||||
break;
|
||||
Throwable cause = error.getCause();
|
||||
while (cause != null && cause != error) {
|
||||
error = cause;
|
||||
cause = error.getCause();
|
||||
}
|
||||
e = cause;
|
||||
assertThat(error).isInstanceOf(MediaDrmStateException.class);
|
||||
}
|
||||
// It should be a MediaDrmStateException instance
|
||||
if (!(e instanceof MediaDrmStateException)) {
|
||||
throw e;
|
||||
|
||||
@Test
|
||||
public void widevineOfflineReleasedLicenseV29() throws Throwable {
|
||||
if (Util.SDK_INT < 29) {
|
||||
return; // Pass.
|
||||
}
|
||||
downloadLicense();
|
||||
releaseLicense(); // keySetId no longer valid.
|
||||
|
||||
Throwable error =
|
||||
assertThrows(
|
||||
"Playback should fail because the license has been released.",
|
||||
Throwable.class,
|
||||
() -> testRunner.run());
|
||||
// Get the root cause
|
||||
Throwable cause = error.getCause();
|
||||
while (cause != null && cause != error) {
|
||||
error = cause;
|
||||
cause = error.getCause();
|
||||
}
|
||||
assertThat(error).isInstanceOf(IllegalArgumentException.class);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
Loading…
x
Reference in New Issue
Block a user