diff --git a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java
index 840db10c2c..0e67717fa9 100644
--- a/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java
+++ b/libraries/exoplayer/src/test/java/androidx/media3/exoplayer/ExoPlayerTest.java
@@ -58,6 +58,7 @@ import static androidx.media3.test.utils.FakeTimeline.TimelineWindowDefinition.D
import static androidx.media3.test.utils.TestUtil.assertTimelinesSame;
import static androidx.media3.test.utils.TestUtil.timelinesAreSame;
import static androidx.media3.test.utils.robolectric.RobolectricUtil.runMainLooperUntil;
+import static androidx.media3.test.utils.robolectric.TestPlayerRunHelper.play;
import static androidx.media3.test.utils.robolectric.TestPlayerRunHelper.playUntilPosition;
import static androidx.media3.test.utils.robolectric.TestPlayerRunHelper.playUntilStartOfMediaItem;
import static androidx.media3.test.utils.robolectric.TestPlayerRunHelper.run;
@@ -231,7 +232,7 @@ import org.robolectric.shadows.ShadowPackageManager;
/** Unit test for {@link ExoPlayer}. */
@RunWith(AndroidJUnit4.class)
-public final class ExoPlayerTest {
+public class ExoPlayerTest {
private static final String TAG = "ExoPlayerTest";
@@ -259,6 +260,31 @@ public final class ExoPlayerTest {
FakeTimeline.FAKE_MEDIA_ITEM.buildUpon().setTag(0).build());
}
+ /**
+ * Returns the target preload duration, in microseconds, or {@link C#TIME_UNSET} if preloading
+ * should be disabled.
+ *
+ *
Return {@link C#TIME_UNSET} by default. Override this method to run tests with a different
+ * target preload duration.
+ */
+ // TODO(issuetracker.google.com/316040980): Replace this by a parameterized field when resolved.
+ protected long getTargetPreloadDurationUs() {
+ return C.TIME_UNSET;
+ }
+
+ private TestExoPlayerBuilder parameterizeTestExoPlayerBuilder(TestExoPlayerBuilder builder) {
+ return builder.setPreloadConfiguration(createPreloadConfiguration());
+ }
+
+ private ExoPlayerTestRunner.Builder parameterizeExoPlayerTestRunnerBuilder(
+ ExoPlayerTestRunner.Builder builder) {
+ return builder.setPreloadConfiguration(createPreloadConfiguration());
+ }
+
+ private ExoPlayer.PreloadConfiguration createPreloadConfiguration() {
+ return new ExoPlayer.PreloadConfiguration(getTargetPreloadDurationUs());
+ }
+
/**
* Tests playback of a source that exposes an empty timeline. Playback is expected to end without
* error.
@@ -270,7 +296,9 @@ public final class ExoPlayerTest {
new MaskingMediaSource.PlaceholderTimeline(FakeMediaSource.FAKE_MEDIA_ITEM);
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_UNKNOWN);
- ExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
+ ExoPlayer player =
+ parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context).setRenderers(renderer))
+ .build();
Player.Listener mockListener = mock(Player.Listener.class);
player.addListener(mockListener);
@@ -303,7 +331,9 @@ public final class ExoPlayerTest {
public void playSinglePeriodTimeline() throws Exception {
Timeline timeline = new FakeTimeline();
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
- ExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
+ ExoPlayer player =
+ parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context).setRenderers(renderer))
+ .build();
Player.Listener mockListener = mock(Player.Listener.class);
player.addListener(mockListener);
@@ -347,7 +377,9 @@ public final class ExoPlayerTest {
public void playMultiPeriodTimeline() throws Exception {
Timeline timeline = new FakeTimeline(/* windowCount= */ 3);
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
- ExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
+ ExoPlayer player =
+ parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context).setRenderers(renderer))
+ .build();
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
@@ -384,7 +416,7 @@ public final class ExoPlayerTest {
public void play_audioVideoAudioVideoTransition_videoSizeChangedCalledCorrectly()
throws Exception {
Timeline timeline = new FakeTimeline(/* windowCount= */ 1);
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.setVideoSurface(new Surface(new SurfaceTexture(/* texName= */ 0)));
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
@@ -457,7 +489,9 @@ public final class ExoPlayerTest {
Timeline timeline =
new FakeTimeline(new TimelineWindowDefinition(/* periodCount= */ 100, /* id= */ 0));
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
- ExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
+ ExoPlayer player =
+ parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context).setRenderers(renderer))
+ .build();
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
@@ -492,7 +526,9 @@ public final class ExoPlayerTest {
final FakeRenderer videoRenderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
final FakeRenderer audioRenderer = new FakeRenderer(C.TRACK_TYPE_AUDIO);
ExoPlayer player =
- new TestExoPlayerBuilder(context).setRenderers(videoRenderer, audioRenderer).build();
+ parameterizeTestExoPlayerBuilder(
+ new TestExoPlayerBuilder(context).setRenderers(videoRenderer, audioRenderer))
+ .build();
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
player.setMediaSource(new FakeMediaSource(timeline, ExoPlayerTestRunner.AUDIO_FORMAT));
@@ -516,7 +552,9 @@ public final class ExoPlayerTest {
final FakeRenderer audioRenderer = new FakeRenderer(C.TRACK_TYPE_AUDIO);
final FakeRenderer textRenderer = new FakeRenderer(C.TRACK_TYPE_TEXT);
ExoPlayer player =
- new TestExoPlayerBuilder(context).setRenderers(videoRenderer, audioRenderer).build();
+ parameterizeTestExoPlayerBuilder(
+ new TestExoPlayerBuilder(context).setRenderers(videoRenderer, audioRenderer))
+ .build();
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
player.setMediaSources(
@@ -554,7 +592,9 @@ public final class ExoPlayerTest {
Format textFormat =
new Format.Builder().setSampleMimeType(MimeTypes.TEXT_VTT).setLanguage("en").build();
ExoPlayer player =
- new TestExoPlayerBuilder(context).setRenderers(audioRenderer, textRenderer).build();
+ parameterizeTestExoPlayerBuilder(
+ new TestExoPlayerBuilder(context).setRenderers(audioRenderer, textRenderer))
+ .build();
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
player.setMediaSources(
@@ -590,8 +630,9 @@ public final class ExoPlayerTest {
Format textFormat =
new Format.Builder().setSampleMimeType(MimeTypes.TEXT_VTT).setLanguage("en").build();
ExoPlayer player =
- new TestExoPlayerBuilder(context)
- .setRenderers(videoRenderer, audioRenderer, textRenderer)
+ parameterizeTestExoPlayerBuilder(
+ new TestExoPlayerBuilder(context)
+ .setRenderers(videoRenderer, audioRenderer, textRenderer))
.build();
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
@@ -681,7 +722,9 @@ public final class ExoPlayerTest {
}
};
ExoPlayer player =
- new TestExoPlayerBuilder(context).setRenderers(videoRenderer, audioRenderer).build();
+ parameterizeTestExoPlayerBuilder(
+ new TestExoPlayerBuilder(context).setRenderers(videoRenderer, audioRenderer))
+ .build();
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
@@ -732,7 +775,9 @@ public final class ExoPlayerTest {
};
Timeline thirdTimeline = new FakeTimeline();
MediaSource thirdSource = new FakeMediaSource(thirdTimeline, ExoPlayerTestRunner.VIDEO_FORMAT);
- ExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
+ ExoPlayer player =
+ parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context).setRenderers(renderer))
+ .build();
Player.Listener mockPlayerListener = mock(Player.Listener.class);
player.addListener(mockPlayerListener);
@@ -799,7 +844,9 @@ public final class ExoPlayerTest {
public void repeatModeChanges() throws Exception {
Timeline timeline = new FakeTimeline(/* windowCount= */ 3);
FakeRenderer renderer = new FakeRenderer(C.TRACK_TYPE_VIDEO);
- ExoPlayer player = new TestExoPlayerBuilder(context).setRenderers(renderer).build();
+ ExoPlayer player =
+ parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context).setRenderers(renderer))
+ .build();
AnalyticsListener mockAnalyticsListener = mock(AnalyticsListener.class);
player.addAnalyticsListener(mockAnalyticsListener);
@@ -863,10 +910,11 @@ public final class ExoPlayerTest {
.play()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setRenderers(renderer)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setRenderers(renderer)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -917,7 +965,7 @@ public final class ExoPlayerTest {
errorAdPlaybackState));
final FakeMediaSource fakeMediaSource =
new FakeMediaSource(fakeTimeline, ExoPlayerTestRunner.VIDEO_FORMAT);
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
Player.Listener mockListener = mock(Player.Listener.class);
player.addListener(mockListener);
@@ -972,7 +1020,7 @@ public final class ExoPlayerTest {
errorAdPlaybackState));
final FakeMediaSource fakeMediaSource =
new FakeMediaSource(fakeTimeline, ExoPlayerTestRunner.VIDEO_FORMAT);
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
Player.Listener mockListener = mock(Player.Listener.class);
player.addListener(mockListener);
@@ -1048,9 +1096,10 @@ public final class ExoPlayerTest {
.waitForPositionDiscontinuity()
.setRepeatMode(Player.REPEAT_MODE_OFF) // Turn off repeat so that playback can finish.
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setRenderers(renderer)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setRenderers(renderer)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -1059,7 +1108,7 @@ public final class ExoPlayerTest {
@Test
public void seekTo_indexLargerThanPlaylist_isIgnored() throws Exception {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.setMediaItem(MediaItem.fromUri("http://test"));
player.seekTo(/* mediaItemIndex= */ 1, /* positionMs= */ 1000);
@@ -1070,7 +1119,7 @@ public final class ExoPlayerTest {
@Test
public void addMediaItems_indexLargerThanPlaylist_addsToEndOfPlaylist() throws Exception {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.setMediaItem(MediaItem.fromUri("http://test"));
ImmutableList addedItems =
ImmutableList.of(MediaItem.fromUri("http://new1"), MediaItem.fromUri("http://new2"));
@@ -1085,7 +1134,7 @@ public final class ExoPlayerTest {
@Test
public void removeMediaItems_fromIndexLargerThanPlaylist_isIgnored() throws Exception {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.setMediaItems(
ImmutableList.of(MediaItem.fromUri("http://item1"), MediaItem.fromUri("http://item2")));
@@ -1098,7 +1147,7 @@ public final class ExoPlayerTest {
@Test
public void removeMediaItems_toIndexLargerThanPlaylist_removesUpToEndOfPlaylist()
throws Exception {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.setMediaItems(
ImmutableList.of(MediaItem.fromUri("http://item1"), MediaItem.fromUri("http://item2")));
@@ -1112,7 +1161,7 @@ public final class ExoPlayerTest {
@Test
public void moveMediaItems_fromIndexLargerThanPlaylist_isIgnored() throws Exception {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
ImmutableList items =
ImmutableList.of(MediaItem.fromUri("http://item1"), MediaItem.fromUri("http://item2"));
player.setMediaItems(items);
@@ -1127,7 +1176,7 @@ public final class ExoPlayerTest {
@Test
public void moveMediaItems_toIndexLargerThanPlaylist_movesItemsUpToEndOfPlaylist()
throws Exception {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
ImmutableList items =
ImmutableList.of(MediaItem.fromUri("http://item1"), MediaItem.fromUri("http://item2"));
player.setMediaItems(items);
@@ -1142,7 +1191,7 @@ public final class ExoPlayerTest {
@Test
public void moveMediaItems_newIndexLargerThanPlaylist_movesItemsUpToEndOfPlaylist()
throws Exception {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
ImmutableList items =
ImmutableList.of(MediaItem.fromUri("http://item1"), MediaItem.fromUri("http://item2"));
player.setMediaItems(items);
@@ -1159,9 +1208,10 @@ public final class ExoPlayerTest {
FakeTimeline timeline = new FakeTimeline(1);
ActionSchedule actionSchedule = new ActionSchedule.Builder(TAG).seek(10).build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -1203,9 +1253,10 @@ public final class ExoPlayerTest {
.play()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -1238,8 +1289,8 @@ public final class ExoPlayerTest {
}
};
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setMediaSources(mediaSource))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -1273,8 +1324,8 @@ public final class ExoPlayerTest {
}
};
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setMediaSources(mediaSource))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -1291,10 +1342,11 @@ public final class ExoPlayerTest {
FakeRenderer audioRenderer = new FakeRenderer(C.TRACK_TYPE_AUDIO);
FakeTrackSelector trackSelector = new FakeTrackSelector();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setRenderers(videoRenderer, audioRenderer)
- .setTrackSelector(trackSelector)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setRenderers(videoRenderer, audioRenderer)
+ .setTrackSelector(trackSelector))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -1321,10 +1373,11 @@ public final class ExoPlayerTest {
FakeRenderer audioRenderer = new FakeRenderer(C.TRACK_TYPE_AUDIO);
FakeTrackSelector trackSelector = new FakeTrackSelector();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setRenderers(videoRenderer, audioRenderer)
- .setTrackSelector(trackSelector)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setRenderers(videoRenderer, audioRenderer)
+ .setTrackSelector(trackSelector))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -1357,11 +1410,12 @@ public final class ExoPlayerTest {
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setRenderers(videoRenderer, audioRenderer)
- .setTrackSelector(trackSelector)
- .setActionSchedule(disableTrackAction)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setRenderers(videoRenderer, audioRenderer)
+ .setTrackSelector(trackSelector)
+ .setActionSchedule(disableTrackAction))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -1396,11 +1450,12 @@ public final class ExoPlayerTest {
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setRenderers(videoRenderer, audioRenderer)
- .setTrackSelector(trackSelector)
- .setActionSchedule(disableTrackAction)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setRenderers(videoRenderer, audioRenderer)
+ .setTrackSelector(trackSelector)
+ .setActionSchedule(disableTrackAction))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -1439,7 +1494,9 @@ public final class ExoPlayerTest {
AtomicReference exoTrackSelectionAtomicReferenceMediaItem2 =
new AtomicReference<>();
ExoPlayer player =
- new TestExoPlayerBuilder(context).setTrackSelector(defaultTrackSelector).build();
+ parameterizeTestExoPlayerBuilder(
+ new TestExoPlayerBuilder(context).setTrackSelector(defaultTrackSelector))
+ .build();
player.addMediaSources(
ImmutableList.of(
new FakeMediaSource(timeline, audioFormat1) {
@@ -1518,9 +1575,10 @@ public final class ExoPlayerTest {
.play()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -1562,9 +1620,10 @@ public final class ExoPlayerTest {
.waitForPositionDiscontinuity()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(firstMediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(firstMediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -1624,9 +1683,10 @@ public final class ExoPlayerTest {
// Complete preparation of the fake media period.
.executeRunnable(() -> fakeMediaPeriodHolder[0].setPreparationComplete())
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -1693,10 +1753,11 @@ public final class ExoPlayerTest {
})
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .initialSeek(/* mediaItemIndex= */ 0, /* positionMs= */ 2000)
- .setMediaSources(mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .initialSeek(/* mediaItemIndex= */ 0, /* positionMs= */ 2000)
+ .setMediaSources(mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -1746,9 +1807,10 @@ public final class ExoPlayerTest {
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource, mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource, mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -1783,9 +1845,10 @@ public final class ExoPlayerTest {
ActionSchedule actionSchedule =
new ActionSchedule.Builder(TAG).waitForPlaybackState(Player.STATE_READY).stop().build();
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -1796,7 +1859,7 @@ public final class ExoPlayerTest {
@Test
public void stop_withLiveStream_currentPeriodIsPlaceholder() throws TimeoutException {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
FakeTimeline fakeTimeline =
new FakeTimeline(
new TimelineWindowDefinition(
@@ -1834,7 +1897,7 @@ public final class ExoPlayerTest {
@Test
public void stop_withVodStream_currentPeriodIsPlaceholder() throws TimeoutException {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.addMediaSources(ImmutableList.of(new FakeMediaSource()));
player.prepare();
runUntilPlaybackState(player, Player.STATE_READY);
@@ -1859,7 +1922,7 @@ public final class ExoPlayerTest {
@Test
public void playbackError_withLiveStream_currentPeriodIsPlaceholder() throws TimeoutException {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
FakeTimeline fakeTimeline =
new FakeTimeline(
new TimelineWindowDefinition(
@@ -1948,9 +2011,10 @@ public final class ExoPlayerTest {
})
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource, mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource, mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS);
@@ -1999,10 +2063,11 @@ public final class ExoPlayerTest {
.waitForPlaybackState(Player.STATE_READY)
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
- .setExpectedPlayerEndedCount(2)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule)
+ .setExpectedPlayerEndedCount(2))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2066,9 +2131,10 @@ public final class ExoPlayerTest {
.play()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -2120,9 +2186,10 @@ public final class ExoPlayerTest {
.play()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -2177,9 +2244,10 @@ public final class ExoPlayerTest {
.play()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -2208,9 +2276,10 @@ public final class ExoPlayerTest {
.waitForPendingPlayerCommands()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(new FakeTimeline())
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(new FakeTimeline())
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -2234,9 +2303,10 @@ public final class ExoPlayerTest {
.waitForPendingPlayerCommands()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -2263,9 +2333,10 @@ public final class ExoPlayerTest {
.waitForPlaybackState(Player.STATE_READY)
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build();
try {
testRunner.start().blockUntilActionScheduleFinished(TIMEOUT_MS).blockUntilEnded(TIMEOUT_MS);
@@ -2284,7 +2355,7 @@ public final class ExoPlayerTest {
@Test
public void seekAndReprepareAfterPlaybackError_keepsSeekPositionAndTimeline() throws Exception {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
Player.Listener mockListener = mock(Player.Listener.class);
player.addListener(mockListener);
FakeMediaSource fakeMediaSource = new FakeMediaSource();
@@ -2367,9 +2438,10 @@ public final class ExoPlayerTest {
}
})
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(concatenatingMediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(concatenatingMediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -2424,9 +2496,10 @@ public final class ExoPlayerTest {
.play()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(firstMediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(firstMediaSource)
+ .setActionSchedule(actionSchedule))
.build();
try {
testRunner.start().blockUntilActionScheduleFinished(TIMEOUT_MS).blockUntilEnded(TIMEOUT_MS);
@@ -2490,9 +2563,10 @@ public final class ExoPlayerTest {
.play()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(firstMediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(firstMediaSource)
+ .setActionSchedule(actionSchedule))
.build();
assertThrows(
@@ -2547,9 +2621,10 @@ public final class ExoPlayerTest {
}
};
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
- .setAnalyticsListener(listener)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setActionSchedule(actionSchedule)
+ .setAnalyticsListener(listener))
.build();
try {
testRunner.start().blockUntilActionScheduleFinished(TIMEOUT_MS).blockUntilEnded(TIMEOUT_MS);
@@ -2582,9 +2657,10 @@ public final class ExoPlayerTest {
.waitForPlaybackState(Player.STATE_IDLE)
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build();
try {
testRunner.start().blockUntilActionScheduleFinished(TIMEOUT_MS).blockUntilEnded(TIMEOUT_MS);
@@ -2616,8 +2692,8 @@ public final class ExoPlayerTest {
.sendMessage(target, /* positionMs= */ 50)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2636,9 +2712,10 @@ public final class ExoPlayerTest {
.sendMessage(target, /* positionMs= */ 50)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2657,8 +2734,8 @@ public final class ExoPlayerTest {
.sendMessage(target50, /* positionMs= */ 50)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2683,8 +2760,8 @@ public final class ExoPlayerTest {
.delay(/* delayMs= */ 2000)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -2704,8 +2781,8 @@ public final class ExoPlayerTest {
.sendMessage(target2, /* positionMs= */ 50)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2725,9 +2802,10 @@ public final class ExoPlayerTest {
.sendMessage(target, /* positionMs= */ 50)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2770,9 +2848,10 @@ public final class ExoPlayerTest {
/* positionMs= */ C.TIME_END_OF_SOURCE)
.waitForMessage(targetEndLastPeriodUnresolved)
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -2804,8 +2883,8 @@ public final class ExoPlayerTest {
.sendMessage(target, /* positionMs= */ 50)
.seek(/* positionMs= */ 50)
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2824,9 +2903,10 @@ public final class ExoPlayerTest {
timeline, /* expectedReason= */ Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE)
.seek(/* positionMs= */ 50)
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2844,8 +2924,8 @@ public final class ExoPlayerTest {
.seek(/* positionMs= */ 51)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2865,9 +2945,10 @@ public final class ExoPlayerTest {
.seek(/* positionMs= */ 51)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2887,8 +2968,8 @@ public final class ExoPlayerTest {
.waitForPositionDiscontinuity()
.setRepeatMode(Player.REPEAT_MODE_OFF)
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2914,8 +2995,8 @@ public final class ExoPlayerTest {
.setRepeatMode(Player.REPEAT_MODE_OFF)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2945,9 +3026,10 @@ public final class ExoPlayerTest {
secondTimeline, /* expectedReason= */ Player.TIMELINE_CHANGE_REASON_SOURCE_UPDATE)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2966,9 +3048,10 @@ public final class ExoPlayerTest {
.sendMessage(target, /* mediaItemIndex= */ 2, /* positionMs= */ 50)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -2988,9 +3071,10 @@ public final class ExoPlayerTest {
.sendMessage(target, /* mediaItemIndex= */ 2, /* positionMs= */ 50)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3023,9 +3107,10 @@ public final class ExoPlayerTest {
.seek(/* mediaItemIndex= */ 0, /* positionMs= */ 0)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3057,9 +3142,10 @@ public final class ExoPlayerTest {
.seek(/* mediaItemIndex= */ 2, /* positionMs= */ 0)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3089,8 +3175,8 @@ public final class ExoPlayerTest {
.executeRunnable(() -> message.get().cancel())
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3125,8 +3211,8 @@ public final class ExoPlayerTest {
.executeRunnable(() -> message.get().cancel())
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3137,7 +3223,7 @@ public final class ExoPlayerTest {
@Test
public void sendMessages_withMediaRemoval_triggersCorrectMessagesAndDoesNotThrow()
throws Exception {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.addMediaSources(ImmutableList.of(new FakeMediaSource(), new FakeMediaSource()));
player
.createMessage((messageType, payload) -> {})
@@ -3185,9 +3271,10 @@ public final class ExoPlayerTest {
}
};
ActionSchedule actionSchedule = addSurfaceSwitch(new ActionSchedule.Builder(TAG)).build();
- new ExoPlayerTestRunner.Builder(context)
- .setRenderers(videoRenderer)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setRenderers(videoRenderer)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -3200,9 +3287,10 @@ public final class ExoPlayerTest {
ActionSchedule.Builder scheduleBuilder =
new ActionSchedule.Builder(TAG).waitForPlaybackState(Player.STATE_ENDED);
ActionSchedule waitForEndedAndSwitchSchedule = addSurfaceSwitch(scheduleBuilder).build();
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(Timeline.EMPTY)
- .setActionSchedule(waitForEndedAndSwitchSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(Timeline.EMPTY)
+ .setActionSchedule(waitForEndedAndSwitchSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -3235,9 +3323,10 @@ public final class ExoPlayerTest {
.play()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3289,9 +3378,10 @@ public final class ExoPlayerTest {
.play()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3342,7 +3432,7 @@ public final class ExoPlayerTest {
return super.createPeriod(id, allocator, startPositionUs);
}
};
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.setMediaSource(mediaSource);
// Throw on the playback thread if the player position reaches a value that is just less than
// seek position. This ensures that playback stops and the assertion on the player position
@@ -3395,9 +3485,10 @@ public final class ExoPlayerTest {
.play()
.build();
ExoPlayerTestRunner testRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3466,9 +3557,10 @@ public final class ExoPlayerTest {
})
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -3482,7 +3574,7 @@ public final class ExoPlayerTest {
@Test
public void onPlayerErrorChanged_isNotifiedForNullError() throws Exception {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.addMediaSource(
new FakeMediaSource(/* timeline= */ null) {
@Override
@@ -3550,8 +3642,8 @@ public final class ExoPlayerTest {
}
})
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3611,8 +3703,8 @@ public final class ExoPlayerTest {
}
})
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context).setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3657,9 +3749,10 @@ public final class ExoPlayerTest {
.waitForPlaybackState(Player.STATE_ENDED)
.build();
ExoPlayerTestRunner exoPlayerTestRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
- .setTimeline(firstTimeline)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setActionSchedule(actionSchedule)
+ .setTimeline(firstTimeline))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -3724,10 +3817,11 @@ public final class ExoPlayerTest {
.setRepeatMode(Player.REPEAT_MODE_OFF)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setClock(clock)
- .setMediaSources(mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setClock(clock)
+ .setMediaSources(mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3759,17 +3853,19 @@ public final class ExoPlayerTest {
.play()
.build();
List tracksList = new ArrayList<>();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource)
- .setSupportedFormats(ExoPlayerTestRunner.VIDEO_FORMAT, ExoPlayerTestRunner.AUDIO_FORMAT)
- .setActionSchedule(actionSchedule)
- .setPlayerListener(
- new Player.Listener() {
- @Override
- public void onTracksChanged(Tracks tracks) {
- tracksList.add(tracks);
- }
- })
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource)
+ .setSupportedFormats(
+ ExoPlayerTestRunner.VIDEO_FORMAT, ExoPlayerTestRunner.AUDIO_FORMAT)
+ .setActionSchedule(actionSchedule)
+ .setPlayerListener(
+ new Player.Listener() {
+ @Override
+ public void onTracksChanged(Tracks tracks) {
+ tracksList.add(tracks);
+ }
+ }))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3803,9 +3899,10 @@ public final class ExoPlayerTest {
// Remove the media source.
.executeRunnable(concatenatingMediaSource::clear)
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(concatenatingMediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(concatenatingMediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3842,9 +3939,10 @@ public final class ExoPlayerTest {
})
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(concatenatedMediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(concatenatedMediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3887,9 +3985,10 @@ public final class ExoPlayerTest {
})
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(concatenatedMediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(concatenatedMediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3941,9 +4040,10 @@ public final class ExoPlayerTest {
.waitForIsLoading(/* targetIsLoading= */ false)
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setTimeline(timeline)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setTimeline(timeline)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -3991,9 +4091,10 @@ public final class ExoPlayerTest {
.waitForPlaybackState(Player.STATE_BUFFERING)
.executeRunnable(() -> fakeMediaSource.setNewSourceInfo(fakeTimeline))
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(fakeMediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(fakeMediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -4043,9 +4144,10 @@ public final class ExoPlayerTest {
.waitForPlaybackState(Player.STATE_BUFFERING)
.executeRunnable(() -> fakeMediaSource.setNewSourceInfo(fakeTimeline))
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(fakeMediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(fakeMediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -4055,7 +4157,7 @@ public final class ExoPlayerTest {
@Test
public void adInMovingLiveWindow_keepsContentPosition() throws Exception {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
AdPlaybackState adPlaybackState =
FakeTimeline.createAdPlaybackState(
/* adsPerAdGroup= */ 1, /* adGroupTimesUs...= */ 42_000_004_000_000L);
@@ -4105,7 +4207,7 @@ public final class ExoPlayerTest {
@Test
public void setPlaybackSpeedConsecutivelyNotifiesListenerForEveryChangeOnceAndIsMasked()
throws Exception {
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
List maskedPlaybackSpeeds = new ArrayList<>();
List reportedPlaybackSpeeds = new ArrayList<>();
player.addListener(
@@ -4138,8 +4240,9 @@ public final class ExoPlayerTest {
setUnsupportedPlaybackSpeedConsecutivelyNotifiesListenerForEveryChangeOnceAndResetsOnceHandled()
throws Exception {
ExoPlayer player =
- new TestExoPlayerBuilder(context)
- .setRenderers(new AudioClockRendererWithoutSpeedChangeSupport())
+ parameterizeTestExoPlayerBuilder(
+ new TestExoPlayerBuilder(context)
+ .setRenderers(new AudioClockRendererWithoutSpeedChangeSupport()))
.build();
List reportedPlaybackParameters = new ArrayList<>();
player.addListener(
@@ -4174,8 +4277,9 @@ public final class ExoPlayerTest {
setUnsupportedPlaybackSpeedDirectlyFollowedByDisablingTheRendererAndSupportedPlaybackSpeed_keepsCorrectFinalSpeedAndInformsListenersCorrectly()
throws Exception {
ExoPlayer player =
- new TestExoPlayerBuilder(context)
- .setRenderers(new AudioClockRendererWithoutSpeedChangeSupport())
+ parameterizeTestExoPlayerBuilder(
+ new TestExoPlayerBuilder(context)
+ .setRenderers(new AudioClockRendererWithoutSpeedChangeSupport()))
.build();
List reportedPlaybackParameters = new ArrayList<>();
player.addListener(
@@ -4232,9 +4336,10 @@ public final class ExoPlayerTest {
seenPlaybackSuppression.set(true);
}
};
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
- .setPlayerListener(listener)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setActionSchedule(actionSchedule)
+ .setPlayerListener(listener))
.build()
.start()
.blockUntilEnded(TIMEOUT_MS);
@@ -4270,9 +4375,10 @@ public final class ExoPlayerTest {
seenPlaybackSuppression.set(true);
}
};
- new ExoPlayerTestRunner.Builder(context)
- .setActionSchedule(actionSchedule)
- .setPlayerListener(listener)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setActionSchedule(actionSchedule)
+ .setPlayerListener(listener))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS);
@@ -4330,9 +4436,10 @@ public final class ExoPlayerTest {
})
.build();
ExoPlayerTestRunner exoPlayerTestRunner =
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(delegatingMediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(delegatingMediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -4381,9 +4488,10 @@ public final class ExoPlayerTest {
}
})
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource, mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource, mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS);
@@ -4434,9 +4542,10 @@ public final class ExoPlayerTest {
}
})
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSource, mediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSource, mediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS);
@@ -5022,9 +5131,10 @@ public final class ExoPlayerTest {
})
.stop()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(mediaSources)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(mediaSources)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -5150,9 +5260,10 @@ public final class ExoPlayerTest {
.play()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(adsMediaSource, new FakeMediaSource())
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(adsMediaSource, new FakeMediaSource())
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -5240,9 +5351,10 @@ public final class ExoPlayerTest {
.stop()
.build();
- new ExoPlayerTestRunner.Builder(context)
- .setMediaSources(adsMediaSource)
- .setActionSchedule(actionSchedule)
+ parameterizeExoPlayerTestRunnerBuilder(
+ new ExoPlayerTestRunner.Builder(context)
+ .setMediaSources(adsMediaSource)
+ .setActionSchedule(actionSchedule))
.build()
.start()
.blockUntilActionScheduleFinished(TIMEOUT_MS)
@@ -5287,7 +5399,7 @@ public final class ExoPlayerTest {
adPlaybackState));
FakeMediaSource adsMediaSource = new FakeMediaSource(adTimeline);
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.setMediaSource(adsMediaSource);
player.pause();
player.prepare();
@@ -5336,7 +5448,7 @@ public final class ExoPlayerTest {
false)
.getAdPlaybackStates(/* windowIndex= */ 0);
Listener listener = mock(Listener.class);
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.addListener(listener);
AtomicReference sourceReference = new AtomicReference<>();
sourceReference.set(
@@ -5442,7 +5554,7 @@ public final class ExoPlayerTest {
false)
.getAdPlaybackStates(/* windowIndex= */ 0);
Listener listener = mock(Listener.class);
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.addListener(listener);
AtomicReference sourceReference = new AtomicReference<>();
sourceReference.set(
@@ -5519,7 +5631,7 @@ public final class ExoPlayerTest {
false)
.getAdPlaybackStates(/* windowIndex= */ 0);
Listener listener = mock(Listener.class);
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.addListener(listener);
AtomicReference sourceReference = new AtomicReference<>();
sourceReference.set(
@@ -5601,7 +5713,7 @@ public final class ExoPlayerTest {
false)
.getAdPlaybackStates(/* windowIndex= */ 0);
Listener listener = mock(Listener.class);
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.addListener(listener);
AtomicReference sourceReference = new AtomicReference<>();
sourceReference.set(
@@ -5697,7 +5809,7 @@ public final class ExoPlayerTest {
false)
.getAdPlaybackStates(/* windowIndex= */ 0);
Listener listener = mock(Listener.class);
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.addListener(listener);
AtomicReference sourceReference = new AtomicReference<>();
sourceReference.set(
@@ -5771,7 +5883,7 @@ public final class ExoPlayerTest {
true)
.getAdPlaybackStates(/* windowIndex= */ 0);
Listener listener = mock(Listener.class);
- ExoPlayer player = new TestExoPlayerBuilder(context).build();
+ ExoPlayer player = parameterizeTestExoPlayerBuilder(new TestExoPlayerBuilder(context)).build();
player.addListener(listener);
AtomicReference sourceReference = new AtomicReference<>();
sourceReference.set(
@@ -5876,7 +5988,7 @@ public final class ExoPlayerTest {
ImmutableMap