Migrate ExoPlayerTest to use TestExoPlayer.
Tests playSinglePeriodTimeline and playMultiPeriodTimeline are migrated to use TestExoplayer. PiperOrigin-RevId: 323546141
This commit is contained in:
parent
ce0f814b77
commit
bcb9ad22af
@ -118,6 +118,7 @@ import org.junit.Test;
|
|||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.mockito.ArgumentMatcher;
|
import org.mockito.ArgumentMatcher;
|
||||||
import org.mockito.InOrder;
|
import org.mockito.InOrder;
|
||||||
|
import org.mockito.Mockito;
|
||||||
import org.robolectric.shadows.ShadowAudioManager;
|
import org.robolectric.shadows.ShadowAudioManager;
|
||||||
|
|
||||||
/** Unit test for {@link ExoPlayer}. */
|
/** Unit test for {@link ExoPlayer}. */
|
||||||
@ -183,24 +184,32 @@ public final class ExoPlayerTest {
|
|||||||
/** Tests playback of a source that exposes a single period. */
|
/** Tests playback of a source that exposes a single period. */
|
||||||
@Test
|
@Test
|
||||||
public void playSinglePeriodTimeline() throws Exception {
|
public void playSinglePeriodTimeline() throws Exception {
|
||||||
Object manifest = new Object();
|
Timeline timeline = new FakeTimeline(/* windowCount= */ 1);
|
||||||
Timeline timeline = new FakeTimeline(/* windowCount= */ 1, manifest);
|
|
||||||
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
|
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
|
||||||
ExoPlayerTestRunner testRunner =
|
SimpleExoPlayer player = new TestExoPlayer.Builder(context).setRenderers(renderer).build();
|
||||||
new ExoPlayerTestRunner.Builder(context)
|
EventListener mockEventListener = mock(EventListener.class);
|
||||||
.setTimeline(timeline)
|
player.addListener(mockEventListener);
|
||||||
.setManifest(manifest)
|
|
||||||
.setRenderers(renderer)
|
player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT));
|
||||||
.build()
|
player.prepare();
|
||||||
.start()
|
player.play();
|
||||||
.blockUntilEnded(TIMEOUT_MS);
|
runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||||
testRunner.assertNoPositionDiscontinuities();
|
|
||||||
testRunner.assertTimelinesSame(placeholderTimeline, timeline);
|
InOrder inOrder = Mockito.inOrder(mockEventListener);
|
||||||
testRunner.assertTimelineChangeReasonsEqual(
|
inOrder
|
||||||
Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED,
|
.verify(mockEventListener)
|
||||||
Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE);
|
.onTimelineChanged(
|
||||||
testRunner.assertTrackGroupsEqual(
|
argThat(noUid(placeholderTimeline)),
|
||||||
new TrackGroupArray(new TrackGroup(ExoPlayerTestRunner.VIDEO_FORMAT)));
|
eq(Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED));
|
||||||
|
inOrder
|
||||||
|
.verify(mockEventListener)
|
||||||
|
.onTimelineChanged(
|
||||||
|
argThat(noUid(timeline)), eq(Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE));
|
||||||
|
inOrder
|
||||||
|
.verify(mockEventListener)
|
||||||
|
.onTracksChanged(
|
||||||
|
eq(new TrackGroupArray(new TrackGroup(ExoPlayerTestRunner.VIDEO_FORMAT))), any());
|
||||||
|
inOrder.verify(mockEventListener, never()).onPositionDiscontinuity(anyInt());
|
||||||
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();
|
||||||
@ -211,20 +220,28 @@ public final class ExoPlayerTest {
|
|||||||
public void playMultiPeriodTimeline() throws Exception {
|
public void playMultiPeriodTimeline() throws Exception {
|
||||||
Timeline timeline = new FakeTimeline(/* windowCount= */ 3);
|
Timeline timeline = new FakeTimeline(/* windowCount= */ 3);
|
||||||
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
|
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
|
||||||
ExoPlayerTestRunner testRunner =
|
SimpleExoPlayer player = new TestExoPlayer.Builder(context).setRenderers(renderer).build();
|
||||||
new ExoPlayerTestRunner.Builder(context)
|
EventListener mockEventListener = mock(EventListener.class);
|
||||||
.setTimeline(timeline)
|
player.addListener(mockEventListener);
|
||||||
.setRenderers(renderer)
|
|
||||||
.build()
|
player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.VIDEO_FORMAT));
|
||||||
.start()
|
player.prepare();
|
||||||
.blockUntilEnded(TIMEOUT_MS);
|
player.play();
|
||||||
testRunner.assertPositionDiscontinuityReasonsEqual(
|
runUntilPlaybackState(player, Player.STATE_ENDED);
|
||||||
Player.DISCONTINUITY_REASON_PERIOD_TRANSITION,
|
|
||||||
Player.DISCONTINUITY_REASON_PERIOD_TRANSITION);
|
InOrder inOrder = Mockito.inOrder(mockEventListener);
|
||||||
testRunner.assertTimelinesSame(new FakeMediaSource.InitialTimeline(timeline), timeline);
|
inOrder
|
||||||
testRunner.assertTimelineChangeReasonsEqual(
|
.verify(mockEventListener)
|
||||||
Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED,
|
.onTimelineChanged(
|
||||||
Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE);
|
argThat(noUid(new FakeMediaSource.InitialTimeline(timeline))),
|
||||||
|
eq(Player.DISCONTINUITY_REASON_PERIOD_TRANSITION));
|
||||||
|
inOrder
|
||||||
|
.verify(mockEventListener)
|
||||||
|
.onTimelineChanged(
|
||||||
|
argThat(noUid(timeline)), eq(Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE));
|
||||||
|
inOrder
|
||||||
|
.verify(mockEventListener, times(2))
|
||||||
|
.onPositionDiscontinuity(Player.DISCONTINUITY_REASON_PERIOD_TRANSITION);
|
||||||
assertThat(renderer.getFormatsRead())
|
assertThat(renderer.getFormatsRead())
|
||||||
.containsExactly(
|
.containsExactly(
|
||||||
ExoPlayerTestRunner.VIDEO_FORMAT,
|
ExoPlayerTestRunner.VIDEO_FORMAT,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user