Merge TimelineAsserts.StubMediaSource into FakeMediaSource.

The StubMediaSource was a subset of the FakeMediaSource.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=160638245
This commit is contained in:
tonihei 2017-06-30 06:02:22 -07:00 committed by Oliver Woodman
parent b3a7f8774f
commit 177a33bbee
6 changed files with 27 additions and 70 deletions

View file

@ -21,9 +21,9 @@ import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.Timeline.Period;
import com.google.android.exoplayer2.Timeline.Window;
import com.google.android.exoplayer2.testutil.FakeMediaSource;
import com.google.android.exoplayer2.testutil.TimelineAsserts;
import com.google.android.exoplayer2.testutil.TimelineAsserts.FakeTimeline;
import com.google.android.exoplayer2.testutil.TimelineAsserts.StubMediaSource;
/**
* Unit tests for {@link ClippingMediaSource}.
@ -120,7 +120,7 @@ public final class ClippingMediaSourceTest extends InstrumentationTestCase {
* Wraps the specified timeline in a {@link ClippingMediaSource} and returns the clipped timeline.
*/
private static Timeline getClippedTimeline(Timeline timeline, long startMs, long endMs) {
MediaSource mediaSource = new StubMediaSource(timeline);
MediaSource mediaSource = new FakeMediaSource(timeline, null);
return TimelineAsserts.extractTimelineFromMediaSource(
new ClippingMediaSource(mediaSource, startMs, endMs));
}

View file

@ -18,9 +18,9 @@ package com.google.android.exoplayer2.source;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.testutil.FakeMediaSource;
import com.google.android.exoplayer2.testutil.TimelineAsserts;
import com.google.android.exoplayer2.testutil.TimelineAsserts.FakeTimeline;
import com.google.android.exoplayer2.testutil.TimelineAsserts.StubMediaSource;
import junit.framework.TestCase;
/**
@ -102,7 +102,7 @@ public final class ConcatenatingMediaSourceTest extends TestCase {
Timeline... timelines) {
MediaSource[] mediaSources = new MediaSource[timelines.length];
for (int i = 0; i < timelines.length; i++) {
mediaSources[i] = new StubMediaSource(timelines[i]);
mediaSources[i] = new FakeMediaSource(timelines[i], null);
}
return TimelineAsserts.extractTimelineFromMediaSource(
new ConcatenatingMediaSource(isRepeatOneAtomic, mediaSources));

View file

@ -25,9 +25,9 @@ import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.PlaybackParameters;
import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.source.MediaSource.Listener;
import com.google.android.exoplayer2.testutil.FakeMediaSource;
import com.google.android.exoplayer2.testutil.TimelineAsserts;
import com.google.android.exoplayer2.testutil.TimelineAsserts.FakeTimeline;
import com.google.android.exoplayer2.testutil.TimelineAsserts.StubMediaSource;
import com.google.android.exoplayer2.trackselection.TrackSelectionArray;
import com.google.android.exoplayer2.upstream.Allocator;
import java.io.IOException;
@ -46,7 +46,7 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase {
public void testPlaylistChangesAfterPreparation() throws InterruptedException {
timeline = null;
TimelineAsserts.StubMediaSource[] childSources = createMediaSources(7);
FakeMediaSource[] childSources = createMediaSources(7);
DynamicConcatenatingMediaSource mediaSource = new DynamicConcatenatingMediaSource();
prepareAndListenToTimelineUpdates(mediaSource);
waitForTimelineUpdate();
@ -132,7 +132,7 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase {
public void testPlaylistChangesBeforePreparation() throws InterruptedException {
timeline = null;
TimelineAsserts.StubMediaSource[] childSources = createMediaSources(4);
FakeMediaSource[] childSources = createMediaSources(4);
DynamicConcatenatingMediaSource mediaSource = new DynamicConcatenatingMediaSource();
mediaSource.addMediaSource(childSources[0]);
mediaSource.addMediaSource(childSources[1]);
@ -155,7 +155,7 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase {
public void testPlaylistWithLazyMediaSource() throws InterruptedException {
timeline = null;
TimelineAsserts.StubMediaSource[] childSources = createMediaSources(2);
FakeMediaSource[] childSources = createMediaSources(2);
LazyMediaSource[] lazySources = new LazyMediaSource[4];
for (int i = 0; i < 4; i++) {
lazySources[i] = new LazyMediaSource();
@ -207,7 +207,7 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase {
public void testIllegalArguments() {
DynamicConcatenatingMediaSource mediaSource = new DynamicConcatenatingMediaSource();
MediaSource validSource = new StubMediaSource(new FakeTimeline(1, 1));
MediaSource validSource = new FakeMediaSource(new FakeTimeline(1, 1), null);
// Null sources.
try {
@ -234,7 +234,10 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase {
// Expected.
}
mediaSources = new MediaSource[] { new StubMediaSource(new FakeTimeline(1, 1)), validSource};
mediaSources = new MediaSource[] {
new FakeMediaSource(new FakeTimeline(1, 1), null),
validSource
};
try {
mediaSource.addMediaSources(Arrays.asList(mediaSources));
fail("Duplicate mediaSource not allowed.");
@ -267,10 +270,10 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase {
timelineUpdated = false;
}
private TimelineAsserts.StubMediaSource[] createMediaSources(int count) {
TimelineAsserts.StubMediaSource[] sources = new TimelineAsserts.StubMediaSource[count];
private FakeMediaSource[] createMediaSources(int count) {
FakeMediaSource[] sources = new FakeMediaSource[count];
for (int i = 0; i < count; i++) {
sources[i] = new TimelineAsserts.StubMediaSource(new FakeTimeline(i + 1, (i + 1) * 111));
sources[i] = new FakeMediaSource(new FakeTimeline(i + 1, (i + 1) * 111), null);
}
return sources;
}

View file

@ -18,9 +18,9 @@ package com.google.android.exoplayer2.source;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.testutil.FakeMediaSource;
import com.google.android.exoplayer2.testutil.TimelineAsserts;
import com.google.android.exoplayer2.testutil.TimelineAsserts.FakeTimeline;
import com.google.android.exoplayer2.testutil.TimelineAsserts.StubMediaSource;
import junit.framework.TestCase;
/**
@ -33,9 +33,9 @@ public class LoopingMediaSourceTest extends TestCase {
public LoopingMediaSourceTest() {
multiWindowTimeline = TimelineAsserts.extractTimelineFromMediaSource(
new ConcatenatingMediaSource(
new StubMediaSource(new FakeTimeline(1, 111)),
new StubMediaSource(new FakeTimeline(1, 222)),
new StubMediaSource(new FakeTimeline(1, 333))));
new FakeMediaSource(new FakeTimeline(1, 111), null),
new FakeMediaSource(new FakeTimeline(1, 222), null),
new FakeMediaSource(new FakeTimeline(1, 333), null)));
}
public void testSingleLoop() {
@ -87,7 +87,7 @@ public class LoopingMediaSourceTest extends TestCase {
* the looping timeline.
*/
private static Timeline getLoopingTimeline(Timeline timeline, int loopCount) {
MediaSource mediaSource = new StubMediaSource(timeline);
MediaSource mediaSource = new FakeMediaSource(timeline, null);
return TimelineAsserts.extractTimelineFromMediaSource(
new LoopingMediaSource(mediaSource, loopCount));
}

View file

@ -29,8 +29,8 @@ import java.util.ArrayList;
import junit.framework.Assert;
/**
* Fake {@link MediaSource} that provides a given timeline (which must have one period). Creating
* the period will return a {@link FakeMediaPeriod}.
* Fake {@link MediaSource} that provides a given timeline. Creating the period will return a
* {@link FakeMediaPeriod} with a {@link TrackGroupArray} using the given {@link Format}s.
*/
public class FakeMediaSource implements MediaSource {
@ -53,6 +53,10 @@ public class FakeMediaSource implements MediaSource {
activeMediaPeriods = new ArrayList<>();
}
public void assertReleased() {
Assert.assertTrue(releasedSource);
}
@Override
public void prepareSource(ExoPlayer player, boolean isTopLevelSource, Listener listener) {
Assert.assertFalse(preparedSource);

View file

@ -16,19 +16,14 @@
package com.google.android.exoplayer2.testutil;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.Timeline.Period;
import com.google.android.exoplayer2.Timeline.Window;
import com.google.android.exoplayer2.source.MediaPeriod;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.MediaSource.Listener;
import com.google.android.exoplayer2.upstream.Allocator;
import java.io.IOException;
/**
* Unit test for {@link Timeline}.
@ -79,51 +74,6 @@ public final class TimelineAsserts {
}
}
/**
* Stub media source which returns a provided timeline as source info and keeps track if it is
* prepared and released.
*/
public static class StubMediaSource implements MediaSource {
private final Timeline timeline;
private boolean isPrepared;
private volatile boolean isReleased;
public StubMediaSource(Timeline timeline) {
this.timeline = timeline;
}
@Override
public void prepareSource(ExoPlayer player, boolean isTopLevelSource, Listener listener) {
assertFalse(isPrepared);
listener.onSourceInfoRefreshed(timeline, null);
isPrepared = true;
}
@Override
public void maybeThrowSourceInfoRefreshError() throws IOException {
}
@Override
public MediaPeriod createPeriod(MediaPeriodId id, Allocator allocator) {
return null;
}
@Override
public void releasePeriod(MediaPeriod mediaPeriod) {
}
@Override
public void releaseSource() {
assertTrue(isPrepared);
isReleased = true;
}
public void assertReleased() {
assertTrue(isReleased);
}
}
/**
* Extracts the timeline from a media source.
*/