Commit 75011fcc by ibaker Committed by Tianyi Feng

Release `ExoPlayer` instances in `ExoPlayerTest`

This was recommended in https://github.com/robolectric/robolectric/issues/8187#issuecomment-1552060094

PiperOrigin-RevId: 539691757
(cherry picked from commit 3923878db4f8ebbcf242f8941424b9f4e6999b5e)
parent 81379e21
...@@ -256,6 +256,8 @@ public final class ExoPlayerTest { ...@@ -256,6 +256,8 @@ public final class ExoPlayerTest {
assertThat(renderer.getFormatsRead()).isEmpty(); assertThat(renderer.getFormatsRead()).isEmpty();
assertThat(renderer.sampleBufferReadCount).isEqualTo(0); assertThat(renderer.sampleBufferReadCount).isEqualTo(0);
assertThat(renderer.isEnded).isFalse(); assertThat(renderer.isEnded).isFalse();
player.release();
} }
/** Tests playback of a source that exposes a single period. */ /** Tests playback of a source that exposes a single period. */
...@@ -298,6 +300,8 @@ public final class ExoPlayerTest { ...@@ -298,6 +300,8 @@ public final class ExoPlayerTest {
assertThat(renderer.getFormatsRead()).containsExactly(ExoPlayerTestRunner.VIDEO_FORMAT); assertThat(renderer.getFormatsRead()).containsExactly(ExoPlayerTestRunner.VIDEO_FORMAT);
assertThat(renderer.sampleBufferReadCount).isEqualTo(1); assertThat(renderer.sampleBufferReadCount).isEqualTo(1);
assertThat(renderer.isEnded).isTrue(); assertThat(renderer.isEnded).isTrue();
player.release();
} }
/** Tests playback of a source that exposes three periods. */ /** Tests playback of a source that exposes three periods. */
...@@ -334,6 +338,8 @@ public final class ExoPlayerTest { ...@@ -334,6 +338,8 @@ public final class ExoPlayerTest {
ExoPlayerTestRunner.VIDEO_FORMAT); ExoPlayerTestRunner.VIDEO_FORMAT);
assertThat(renderer.sampleBufferReadCount).isEqualTo(3); assertThat(renderer.sampleBufferReadCount).isEqualTo(3);
assertThat(renderer.isEnded).isTrue(); assertThat(renderer.isEnded).isTrue();
player.release();
} }
@Test @Test
...@@ -438,6 +444,8 @@ public final class ExoPlayerTest { ...@@ -438,6 +444,8 @@ public final class ExoPlayerTest {
assertThat(renderer.getFormatsRead()).hasSize(100); assertThat(renderer.getFormatsRead()).hasSize(100);
assertThat(renderer.sampleBufferReadCount).isEqualTo(100); assertThat(renderer.sampleBufferReadCount).isEqualTo(100);
assertThat(renderer.isEnded).isTrue(); assertThat(renderer.isEnded).isTrue();
player.release();
} }
@Test @Test
...@@ -662,6 +670,8 @@ public final class ExoPlayerTest { ...@@ -662,6 +670,8 @@ public final class ExoPlayerTest {
assertThat(audioRenderer.positionResetCount).isEqualTo(1); assertThat(audioRenderer.positionResetCount).isEqualTo(1);
assertThat(videoRenderer.isEnded).isTrue(); assertThat(videoRenderer.isEnded).isTrue();
assertThat(audioRenderer.isEnded).isTrue(); assertThat(audioRenderer.isEnded).isTrue();
player.release();
} }
@Test @Test
...@@ -743,6 +753,8 @@ public final class ExoPlayerTest { ...@@ -743,6 +753,8 @@ public final class ExoPlayerTest {
new int[] {C.FORMAT_HANDLED}, new int[] {C.FORMAT_HANDLED},
/* trackSelected= */ new boolean[] {true}))))); /* trackSelected= */ new boolean[] {true})))));
assertThat(renderer.isEnded).isTrue(); assertThat(renderer.isEnded).isTrue();
player.release();
} }
@Test @Test
...@@ -785,6 +797,8 @@ public final class ExoPlayerTest { ...@@ -785,6 +797,8 @@ public final class ExoPlayerTest {
.containsExactly(0, 1, 1, 2, 2, 0, 0, 0, 1, 2) .containsExactly(0, 1, 1, 2, 2, 0, 0, 0, 1, 2)
.inOrder(); .inOrder();
assertThat(renderer.isEnded).isTrue(); assertThat(renderer.isEnded).isTrue();
player.release();
} }
@Test @Test
...@@ -3034,6 +3048,8 @@ public final class ExoPlayerTest { ...@@ -3034,6 +3048,8 @@ public final class ExoPlayerTest {
assertThat(player.getPlayerError()).isNull(); assertThat(player.getPlayerError()).isNull();
verify(secondMediaItemTarget, times(2)).handleMessage(anyInt(), any()); verify(secondMediaItemTarget, times(2)).handleMessage(anyInt(), any());
player.release();
} }
@Test @Test
...@@ -3229,6 +3245,8 @@ public final class ExoPlayerTest { ...@@ -3229,6 +3245,8 @@ public final class ExoPlayerTest {
// When the ad finishes, the player position should be at or after the requested seek position. // When the ad finishes, the player position should be at or after the requested seek position.
runUntilPositionDiscontinuity(player, Player.DISCONTINUITY_REASON_AUTO_TRANSITION); runUntilPositionDiscontinuity(player, Player.DISCONTINUITY_REASON_AUTO_TRANSITION);
assertThat(player.getCurrentPosition()).isAtLeast(seekPositionMs); assertThat(player.getCurrentPosition()).isAtLeast(seekPositionMs);
player.release();
} }
@Test @Test
...@@ -3372,6 +3390,8 @@ public final class ExoPlayerTest { ...@@ -3372,6 +3390,8 @@ public final class ExoPlayerTest {
// We expect the change to null to be notified, but not onPlayerError. // We expect the change to null to be notified, but not onPlayerError.
verify(mockListener).onPlayerErrorChanged(ArgumentMatchers.isNull()); verify(mockListener).onPlayerErrorChanged(ArgumentMatchers.isNull());
verify(mockListener, never()).onPlayerError(any()); verify(mockListener, never()).onPlayerError(any());
player.release();
} }
@Test @Test
...@@ -5154,6 +5174,8 @@ public final class ExoPlayerTest { ...@@ -5154,6 +5174,8 @@ public final class ExoPlayerTest {
// This times out if playback info updates after the seek are blocked. // This times out if playback info updates after the seek are blocked.
runUntilPlaybackState(player, Player.STATE_ENDED); runUntilPlaybackState(player, Player.STATE_ENDED);
player.release();
} }
@Test @Test
...@@ -5905,6 +5927,8 @@ public final class ExoPlayerTest { ...@@ -5905,6 +5927,8 @@ public final class ExoPlayerTest {
runUntilPendingCommandsAreFullyHandled(player); runUntilPendingCommandsAreFullyHandled(player);
assertThat(player.getPlayerError()).isNull(); assertThat(player.getPlayerError()).isNull();
player.release();
} }
@Test @Test
...@@ -5991,6 +6015,8 @@ public final class ExoPlayerTest { ...@@ -5991,6 +6015,8 @@ public final class ExoPlayerTest {
// The player is not stuck in the buffering state. // The player is not stuck in the buffering state.
TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY); TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY);
player.release();
} }
@Test @Test
...@@ -9398,6 +9424,8 @@ public final class ExoPlayerTest { ...@@ -9398,6 +9424,8 @@ public final class ExoPlayerTest {
assertThat(player.isCommandAvailable(COMMAND_SET_TRACK_SELECTION_PARAMETERS)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_SET_TRACK_SELECTION_PARAMETERS)).isTrue();
assertThat(player.isCommandAvailable(COMMAND_GET_TRACKS)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_GET_TRACKS)).isTrue();
assertThat(player.isCommandAvailable(COMMAND_RELEASE)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_RELEASE)).isTrue();
player.release();
} }
@SuppressWarnings("deprecation") // Checking old volume commands @SuppressWarnings("deprecation") // Checking old volume commands
...@@ -9411,6 +9439,8 @@ public final class ExoPlayerTest { ...@@ -9411,6 +9439,8 @@ public final class ExoPlayerTest {
assertThat(player.isCommandAvailable(COMMAND_ADJUST_DEVICE_VOLUME)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_ADJUST_DEVICE_VOLUME)).isTrue();
assertThat(player.isCommandAvailable(COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS)).isTrue();
assertThat(player.isCommandAvailable(COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS)).isTrue();
player.release();
} }
@SuppressWarnings("deprecation") // Checking old volume commands @SuppressWarnings("deprecation") // Checking old volume commands
...@@ -9425,6 +9455,8 @@ public final class ExoPlayerTest { ...@@ -9425,6 +9455,8 @@ public final class ExoPlayerTest {
assertThat(player.isCommandAvailable(COMMAND_ADJUST_DEVICE_VOLUME)).isFalse(); assertThat(player.isCommandAvailable(COMMAND_ADJUST_DEVICE_VOLUME)).isFalse();
assertThat(player.isCommandAvailable(COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS)).isFalse(); assertThat(player.isCommandAvailable(COMMAND_SET_DEVICE_VOLUME_WITH_FLAGS)).isFalse();
assertThat(player.isCommandAvailable(COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS)).isFalse(); assertThat(player.isCommandAvailable(COMMAND_ADJUST_DEVICE_VOLUME_WITH_FLAGS)).isFalse();
player.release();
} }
@Test @Test
...@@ -9463,6 +9495,8 @@ public final class ExoPlayerTest { ...@@ -9463,6 +9495,8 @@ public final class ExoPlayerTest {
assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_MEDIA_ITEM)).isFalse(); assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_MEDIA_ITEM)).isFalse();
assertThat(player.isCommandAvailable(COMMAND_SEEK_BACK)).isFalse(); assertThat(player.isCommandAvailable(COMMAND_SEEK_BACK)).isFalse();
assertThat(player.isCommandAvailable(COMMAND_SEEK_FORWARD)).isFalse(); assertThat(player.isCommandAvailable(COMMAND_SEEK_FORWARD)).isFalse();
player.release();
} }
@Test @Test
...@@ -9483,6 +9517,8 @@ public final class ExoPlayerTest { ...@@ -9483,6 +9517,8 @@ public final class ExoPlayerTest {
assertThat(player.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM)).isFalse(); assertThat(player.isCommandAvailable(COMMAND_SEEK_IN_CURRENT_MEDIA_ITEM)).isFalse();
assertThat(player.isCommandAvailable(COMMAND_SEEK_BACK)).isFalse(); assertThat(player.isCommandAvailable(COMMAND_SEEK_BACK)).isFalse();
assertThat(player.isCommandAvailable(COMMAND_SEEK_FORWARD)).isFalse(); assertThat(player.isCommandAvailable(COMMAND_SEEK_FORWARD)).isFalse();
player.release();
} }
@Test @Test
...@@ -9508,6 +9544,8 @@ public final class ExoPlayerTest { ...@@ -9508,6 +9544,8 @@ public final class ExoPlayerTest {
runUntilPlaybackState(player, Player.STATE_READY); runUntilPlaybackState(player, Player.STATE_READY);
assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS)).isFalse(); assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS)).isFalse();
player.release();
} }
@Test @Test
...@@ -9536,6 +9574,8 @@ public final class ExoPlayerTest { ...@@ -9536,6 +9574,8 @@ public final class ExoPlayerTest {
runUntilPlaybackState(player, Player.STATE_READY); runUntilPlaybackState(player, Player.STATE_READY);
assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_PREVIOUS)).isTrue();
player.release();
} }
@Test @Test
...@@ -9560,6 +9600,8 @@ public final class ExoPlayerTest { ...@@ -9560,6 +9600,8 @@ public final class ExoPlayerTest {
runUntilPlaybackState(player, Player.STATE_READY); runUntilPlaybackState(player, Player.STATE_READY);
assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_NEXT)).isTrue(); assertThat(player.isCommandAvailable(COMMAND_SEEK_TO_NEXT)).isTrue();
player.release();
} }
@Test @Test
...@@ -9597,6 +9639,8 @@ public final class ExoPlayerTest { ...@@ -9597,6 +9639,8 @@ public final class ExoPlayerTest {
player.seekTo(/* mediaItemIndex= */ 3, /* positionMs= */ 0); player.seekTo(/* mediaItemIndex= */ 3, /* positionMs= */ 0);
verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPreviousWindow); verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPreviousWindow);
verify(mockListener, times(3)).onAvailableCommandsChanged(any()); verify(mockListener, times(3)).onAvailableCommandsChanged(any());
player.release();
} }
@Test @Test
...@@ -9635,6 +9679,8 @@ public final class ExoPlayerTest { ...@@ -9635,6 +9679,8 @@ public final class ExoPlayerTest {
player.seekTo(/* mediaItemIndex= */ 0, /* positionMs= */ 0); player.seekTo(/* mediaItemIndex= */ 0, /* positionMs= */ 0);
verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNextWindow); verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToNextWindow);
verify(mockListener, times(3)).onAvailableCommandsChanged(any()); verify(mockListener, times(3)).onAvailableCommandsChanged(any());
player.release();
} }
@Test @Test
...@@ -9651,6 +9697,8 @@ public final class ExoPlayerTest { ...@@ -9651,6 +9697,8 @@ public final class ExoPlayerTest {
player.seekTo(/* mediaItemIndex= */ 0, /* positionMs= */ 100); player.seekTo(/* mediaItemIndex= */ 0, /* positionMs= */ 100);
// Check that there were no other calls to onAvailableCommandsChanged. // Check that there were no other calls to onAvailableCommandsChanged.
verify(mockListener).onAvailableCommandsChanged(any()); verify(mockListener).onAvailableCommandsChanged(any());
player.release();
} }
@Test @Test
...@@ -9710,6 +9758,8 @@ public final class ExoPlayerTest { ...@@ -9710,6 +9758,8 @@ public final class ExoPlayerTest {
runUntilPlaybackState(player, Player.STATE_ENDED); runUntilPlaybackState(player, Player.STATE_ENDED);
verify(mockListener).onAvailableCommandsChanged(commandsWithSeekInCurrentAndToPreviousWindow); verify(mockListener).onAvailableCommandsChanged(commandsWithSeekInCurrentAndToPreviousWindow);
verify(mockListener, times(4)).onAvailableCommandsChanged(any()); verify(mockListener, times(4)).onAvailableCommandsChanged(any());
player.release();
} }
@Test @Test
...@@ -9732,6 +9782,8 @@ public final class ExoPlayerTest { ...@@ -9732,6 +9782,8 @@ public final class ExoPlayerTest {
player.addMediaSource(new FakeMediaSource()); player.addMediaSource(new FakeMediaSource());
verify(mockListener, times(2)).onAvailableCommandsChanged(any()); verify(mockListener, times(2)).onAvailableCommandsChanged(any());
player.release();
} }
@Test @Test
...@@ -9754,6 +9806,8 @@ public final class ExoPlayerTest { ...@@ -9754,6 +9806,8 @@ public final class ExoPlayerTest {
player.addMediaSource(/* index= */ 0, new FakeMediaSource()); player.addMediaSource(/* index= */ 0, new FakeMediaSource());
verify(mockListener, times(2)).onAvailableCommandsChanged(any()); verify(mockListener, times(2)).onAvailableCommandsChanged(any());
player.release();
} }
@Test @Test
...@@ -9784,6 +9838,8 @@ public final class ExoPlayerTest { ...@@ -9784,6 +9838,8 @@ public final class ExoPlayerTest {
player.removeMediaItem(/* index= */ 0); player.removeMediaItem(/* index= */ 0);
verify(mockListener).onAvailableCommandsChanged(emptyTimelineCommands); verify(mockListener).onAvailableCommandsChanged(emptyTimelineCommands);
verify(mockListener, times(3)).onAvailableCommandsChanged(any()); verify(mockListener, times(3)).onAvailableCommandsChanged(any());
player.release();
} }
@Test @Test
...@@ -9815,6 +9871,8 @@ public final class ExoPlayerTest { ...@@ -9815,6 +9871,8 @@ public final class ExoPlayerTest {
player.removeMediaItem(/* index= */ 0); player.removeMediaItem(/* index= */ 0);
verify(mockListener).onAvailableCommandsChanged(emptyTimelineCommands); verify(mockListener).onAvailableCommandsChanged(emptyTimelineCommands);
verify(mockListener, times(3)).onAvailableCommandsChanged(any()); verify(mockListener, times(3)).onAvailableCommandsChanged(any());
player.release();
} }
@Test @Test
...@@ -9834,6 +9892,8 @@ public final class ExoPlayerTest { ...@@ -9834,6 +9892,8 @@ public final class ExoPlayerTest {
player.removeMediaItem(/* index= */ 0); player.removeMediaItem(/* index= */ 0);
verify(mockListener).onAvailableCommandsChanged(defaultCommands); verify(mockListener).onAvailableCommandsChanged(defaultCommands);
verify(mockListener, times(2)).onAvailableCommandsChanged(any()); verify(mockListener, times(2)).onAvailableCommandsChanged(any());
player.release();
} }
@Test @Test
...@@ -9856,6 +9916,8 @@ public final class ExoPlayerTest { ...@@ -9856,6 +9916,8 @@ public final class ExoPlayerTest {
player.setRepeatMode(Player.REPEAT_MODE_ALL); player.setRepeatMode(Player.REPEAT_MODE_ALL);
verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPreviousAndNextWindow); verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPreviousAndNextWindow);
verify(mockListener, times(2)).onAvailableCommandsChanged(any()); verify(mockListener, times(2)).onAvailableCommandsChanged(any());
player.release();
} }
@Test @Test
...@@ -9870,6 +9932,8 @@ public final class ExoPlayerTest { ...@@ -9870,6 +9932,8 @@ public final class ExoPlayerTest {
player.setRepeatMode(Player.REPEAT_MODE_ONE); player.setRepeatMode(Player.REPEAT_MODE_ONE);
verify(mockListener).onAvailableCommandsChanged(any()); verify(mockListener).onAvailableCommandsChanged(any());
player.release();
} }
@Test @Test
...@@ -9896,6 +9960,8 @@ public final class ExoPlayerTest { ...@@ -9896,6 +9960,8 @@ public final class ExoPlayerTest {
player.setShuffleModeEnabled(true); player.setShuffleModeEnabled(true);
verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPreviousWindow); verify(mockListener).onAvailableCommandsChanged(commandsWithSeekToPreviousWindow);
verify(mockListener, times(2)).onAvailableCommandsChanged(any()); verify(mockListener, times(2)).onAvailableCommandsChanged(any());
player.release();
} }
@Test @Test
...@@ -9923,6 +9989,8 @@ public final class ExoPlayerTest { ...@@ -9923,6 +9989,8 @@ public final class ExoPlayerTest {
.uid; .uid;
assertThat(error.mediaPeriodId.periodUid).isEqualTo(period1Uid); assertThat(error.mediaPeriodId.periodUid).isEqualTo(period1Uid);
assertThat(player.getCurrentMediaItemIndex()).isEqualTo(1); assertThat(player.getCurrentMediaItemIndex()).isEqualTo(1);
player.release();
} }
@Test @Test
...@@ -9969,6 +10037,8 @@ public final class ExoPlayerTest { ...@@ -9969,6 +10037,8 @@ public final class ExoPlayerTest {
.uid; .uid;
assertThat(error.mediaPeriodId.periodUid).isEqualTo(period1Uid); assertThat(error.mediaPeriodId.periodUid).isEqualTo(period1Uid);
assertThat(player.getCurrentMediaItemIndex()).isEqualTo(1); assertThat(player.getCurrentMediaItemIndex()).isEqualTo(1);
player.release();
} }
@Test @Test
...@@ -10032,6 +10102,8 @@ public final class ExoPlayerTest { ...@@ -10032,6 +10102,8 @@ public final class ExoPlayerTest {
.uid; .uid;
assertThat(error.mediaPeriodId.periodUid).isEqualTo(period1Uid); assertThat(error.mediaPeriodId.periodUid).isEqualTo(period1Uid);
assertThat(player.getCurrentMediaItemIndex()).isEqualTo(1); assertThat(player.getCurrentMediaItemIndex()).isEqualTo(1);
player.release();
} }
@Test @Test
...@@ -10083,6 +10155,8 @@ public final class ExoPlayerTest { ...@@ -10083,6 +10155,8 @@ public final class ExoPlayerTest {
inOrderEvents inOrderEvents
.verify(mockListener) .verify(mockListener)
.onMediaItemTransition(any(), any(), eq(Player.MEDIA_ITEM_TRANSITION_REASON_AUTO)); .onMediaItemTransition(any(), any(), eq(Player.MEDIA_ITEM_TRANSITION_REASON_AUTO));
player.release();
} }
@Test @Test
...@@ -10112,6 +10186,8 @@ public final class ExoPlayerTest { ...@@ -10112,6 +10186,8 @@ public final class ExoPlayerTest {
runUntilSleepingForOffload(player, /* expectedSleepForOffload= */ true); runUntilSleepingForOffload(player, /* expectedSleepForOffload= */ true);
assertThat(player.experimentalIsSleepingForOffload()).isTrue(); assertThat(player.experimentalIsSleepingForOffload()).isTrue();
player.release();
} }
@Test @Test
...@@ -10132,6 +10208,8 @@ public final class ExoPlayerTest { ...@@ -10132,6 +10208,8 @@ public final class ExoPlayerTest {
runUntilSleepingForOffload(player, /* expectedSleepForOffload= */ false); runUntilSleepingForOffload(player, /* expectedSleepForOffload= */ false);
assertThat(player.experimentalIsSleepingForOffload()).isFalse(); assertThat(player.experimentalIsSleepingForOffload()).isFalse();
runUntilPlaybackState(player, Player.STATE_ENDED); runUntilPlaybackState(player, Player.STATE_ENDED);
player.release();
} }
@Test @Test
...@@ -10150,6 +10228,8 @@ public final class ExoPlayerTest { ...@@ -10150,6 +10228,8 @@ public final class ExoPlayerTest {
runUntilSleepingForOffload(player, /* expectedSleepForOffload= */ false); runUntilSleepingForOffload(player, /* expectedSleepForOffload= */ false);
assertThat(player.experimentalIsSleepingForOffload()).isFalse(); assertThat(player.experimentalIsSleepingForOffload()).isFalse();
runUntilPlaybackState(player, Player.STATE_ENDED); runUntilPlaybackState(player, Player.STATE_ENDED);
player.release();
} }
@Test @Test
...@@ -10174,6 +10254,8 @@ public final class ExoPlayerTest { ...@@ -10174,6 +10254,8 @@ public final class ExoPlayerTest {
assertThat(newPosition - currentPosition).isNotEqualTo(0); assertThat(newPosition - currentPosition).isNotEqualTo(0);
assertThat(newPosition).isEqualTo(800); assertThat(newPosition).isEqualTo(800);
player.release();
} }
@Test @Test
...@@ -10199,6 +10281,8 @@ public final class ExoPlayerTest { ...@@ -10199,6 +10281,8 @@ public final class ExoPlayerTest {
long currentPosition = player.getCurrentPosition(); long currentPosition = player.getCurrentPosition();
assertThat(currentPosition).isEqualTo(800); assertThat(currentPosition).isEqualTo(800);
player.release();
} }
@Test @Test
...@@ -10226,6 +10310,8 @@ public final class ExoPlayerTest { ...@@ -10226,6 +10310,8 @@ public final class ExoPlayerTest {
long currentPosition = player.getCurrentPosition(); long currentPosition = player.getCurrentPosition();
assertThat(currentPosition).isEqualTo(1800); assertThat(currentPosition).isEqualTo(1800);
player.release();
} }
@Test @Test
...@@ -10453,6 +10539,8 @@ public final class ExoPlayerTest { ...@@ -10453,6 +10539,8 @@ public final class ExoPlayerTest {
verify(mockListener) verify(mockListener)
.onPlaybackParametersChanged(new PlaybackParameters(/* speed= */ 2, /* pitch= */ 2)); .onPlaybackParametersChanged(new PlaybackParameters(/* speed= */ 2, /* pitch= */ 2));
player.release();
} }
@Test @Test
...@@ -12414,6 +12502,8 @@ public final class ExoPlayerTest { ...@@ -12414,6 +12502,8 @@ public final class ExoPlayerTest {
.build()); .build());
assertThat(player.getMediaMetadata()).isEqualTo(mediaMetadata); assertThat(player.getMediaMetadata()).isEqualTo(mediaMetadata);
player.release();
} }
@Test @Test
...@@ -12439,12 +12529,15 @@ public final class ExoPlayerTest { ...@@ -12439,12 +12529,15 @@ public final class ExoPlayerTest {
shadowOf(Looper.getMainLooper()).idle(); shadowOf(Looper.getMainLooper()).idle();
assertThat(player.getMediaMetadata()).isEqualTo(mediaMetadata); assertThat(player.getMediaMetadata()).isEqualTo(mediaMetadata);
player.release();
} }
@Test @Test
@Config(sdk = Config.ALL_SDKS) @Config(sdk = Config.ALL_SDKS)
public void builder_inBackgroundThreadWithAllowedAnyThreadMethods_doesNotThrow() public void builder_inBackgroundThreadWithAllowedAnyThreadMethods_doesNotThrow()
throws Exception { throws Exception {
AtomicReference<Player> playerReference = new AtomicReference<>();
Thread builderThread = Thread builderThread =
new Thread( new Thread(
() -> { () -> {
...@@ -12456,6 +12549,7 @@ public final class ExoPlayerTest { ...@@ -12456,6 +12549,7 @@ public final class ExoPlayerTest {
player.getClock(); player.getClock();
player.getApplicationLooper(); player.getApplicationLooper();
player.getPlaybackLooper(); player.getPlaybackLooper();
playerReference.set(player);
}); });
AtomicReference<Throwable> builderThrow = new AtomicReference<>(); AtomicReference<Throwable> builderThrow = new AtomicReference<>();
builderThread.setUncaughtExceptionHandler((thread, throwable) -> builderThrow.set(throwable)); builderThread.setUncaughtExceptionHandler((thread, throwable) -> builderThrow.set(throwable));
...@@ -12464,6 +12558,7 @@ public final class ExoPlayerTest { ...@@ -12464,6 +12558,7 @@ public final class ExoPlayerTest {
builderThread.join(); builderThread.join();
assertThat(builderThrow.get()).isNull(); assertThat(builderThrow.get()).isNull();
playerReference.get().release();
} }
@Test @Test
...@@ -12480,6 +12575,8 @@ public final class ExoPlayerTest { ...@@ -12480,6 +12575,8 @@ public final class ExoPlayerTest {
verify(playerListener).onPlaylistMetadataChanged(mediaMetadata); verify(playerListener).onPlaylistMetadataChanged(mediaMetadata);
verify(analyticsListener).onPlaylistMetadataChanged(any(), eq(mediaMetadata)); verify(analyticsListener).onPlaylistMetadataChanged(any(), eq(mediaMetadata));
player.release();
} }
@Test @Test
...@@ -12686,6 +12783,8 @@ public final class ExoPlayerTest { ...@@ -12686,6 +12783,8 @@ public final class ExoPlayerTest {
assertThat(minVolume).isEqualTo(0); assertThat(minVolume).isEqualTo(0);
assertThat(maxVolume).isEqualTo(0); assertThat(maxVolume).isEqualTo(0);
player.release();
} }
@Test @Test
...@@ -12706,6 +12805,8 @@ public final class ExoPlayerTest { ...@@ -12706,6 +12805,8 @@ public final class ExoPlayerTest {
runUntilPlaybackState(player, Player.STATE_ENDED); runUntilPlaybackState(player, Player.STATE_ENDED);
// Assert that playing works without getting stuck due to the memory used by the back buffer. // Assert that playing works without getting stuck due to the memory used by the back buffer.
player.release();
} }
@Test @Test
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment