Commit 177a33bb by tonihei Committed by Oliver Woodman

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
parent b3a7f877
...@@ -21,9 +21,9 @@ import com.google.android.exoplayer2.ExoPlayer; ...@@ -21,9 +21,9 @@ import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.Timeline.Period; import com.google.android.exoplayer2.Timeline.Period;
import com.google.android.exoplayer2.Timeline.Window; 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;
import com.google.android.exoplayer2.testutil.TimelineAsserts.FakeTimeline; import com.google.android.exoplayer2.testutil.TimelineAsserts.FakeTimeline;
import com.google.android.exoplayer2.testutil.TimelineAsserts.StubMediaSource;
/** /**
* Unit tests for {@link ClippingMediaSource}. * Unit tests for {@link ClippingMediaSource}.
...@@ -120,7 +120,7 @@ public final class ClippingMediaSourceTest extends InstrumentationTestCase { ...@@ -120,7 +120,7 @@ public final class ClippingMediaSourceTest extends InstrumentationTestCase {
* Wraps the specified timeline in a {@link ClippingMediaSource} and returns the clipped timeline. * Wraps the specified timeline in a {@link ClippingMediaSource} and returns the clipped timeline.
*/ */
private static Timeline getClippedTimeline(Timeline timeline, long startMs, long endMs) { private static Timeline getClippedTimeline(Timeline timeline, long startMs, long endMs) {
MediaSource mediaSource = new StubMediaSource(timeline); MediaSource mediaSource = new FakeMediaSource(timeline, null);
return TimelineAsserts.extractTimelineFromMediaSource( return TimelineAsserts.extractTimelineFromMediaSource(
new ClippingMediaSource(mediaSource, startMs, endMs)); new ClippingMediaSource(mediaSource, startMs, endMs));
} }
......
...@@ -18,9 +18,9 @@ package com.google.android.exoplayer2.source; ...@@ -18,9 +18,9 @@ package com.google.android.exoplayer2.source;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline; 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;
import com.google.android.exoplayer2.testutil.TimelineAsserts.FakeTimeline; import com.google.android.exoplayer2.testutil.TimelineAsserts.FakeTimeline;
import com.google.android.exoplayer2.testutil.TimelineAsserts.StubMediaSource;
import junit.framework.TestCase; import junit.framework.TestCase;
/** /**
...@@ -102,7 +102,7 @@ public final class ConcatenatingMediaSourceTest extends TestCase { ...@@ -102,7 +102,7 @@ public final class ConcatenatingMediaSourceTest extends TestCase {
Timeline... timelines) { Timeline... timelines) {
MediaSource[] mediaSources = new MediaSource[timelines.length]; MediaSource[] mediaSources = new MediaSource[timelines.length];
for (int i = 0; i < timelines.length; i++) { for (int i = 0; i < timelines.length; i++) {
mediaSources[i] = new StubMediaSource(timelines[i]); mediaSources[i] = new FakeMediaSource(timelines[i], null);
} }
return TimelineAsserts.extractTimelineFromMediaSource( return TimelineAsserts.extractTimelineFromMediaSource(
new ConcatenatingMediaSource(isRepeatOneAtomic, mediaSources)); new ConcatenatingMediaSource(isRepeatOneAtomic, mediaSources));
......
...@@ -25,9 +25,9 @@ import com.google.android.exoplayer2.ExoPlayer; ...@@ -25,9 +25,9 @@ import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.PlaybackParameters; import com.google.android.exoplayer2.PlaybackParameters;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.source.MediaSource.Listener; 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;
import com.google.android.exoplayer2.testutil.TimelineAsserts.FakeTimeline; 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.trackselection.TrackSelectionArray;
import com.google.android.exoplayer2.upstream.Allocator; import com.google.android.exoplayer2.upstream.Allocator;
import java.io.IOException; import java.io.IOException;
...@@ -46,7 +46,7 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase { ...@@ -46,7 +46,7 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase {
public void testPlaylistChangesAfterPreparation() throws InterruptedException { public void testPlaylistChangesAfterPreparation() throws InterruptedException {
timeline = null; timeline = null;
TimelineAsserts.StubMediaSource[] childSources = createMediaSources(7); FakeMediaSource[] childSources = createMediaSources(7);
DynamicConcatenatingMediaSource mediaSource = new DynamicConcatenatingMediaSource(); DynamicConcatenatingMediaSource mediaSource = new DynamicConcatenatingMediaSource();
prepareAndListenToTimelineUpdates(mediaSource); prepareAndListenToTimelineUpdates(mediaSource);
waitForTimelineUpdate(); waitForTimelineUpdate();
...@@ -132,7 +132,7 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase { ...@@ -132,7 +132,7 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase {
public void testPlaylistChangesBeforePreparation() throws InterruptedException { public void testPlaylistChangesBeforePreparation() throws InterruptedException {
timeline = null; timeline = null;
TimelineAsserts.StubMediaSource[] childSources = createMediaSources(4); FakeMediaSource[] childSources = createMediaSources(4);
DynamicConcatenatingMediaSource mediaSource = new DynamicConcatenatingMediaSource(); DynamicConcatenatingMediaSource mediaSource = new DynamicConcatenatingMediaSource();
mediaSource.addMediaSource(childSources[0]); mediaSource.addMediaSource(childSources[0]);
mediaSource.addMediaSource(childSources[1]); mediaSource.addMediaSource(childSources[1]);
...@@ -155,7 +155,7 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase { ...@@ -155,7 +155,7 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase {
public void testPlaylistWithLazyMediaSource() throws InterruptedException { public void testPlaylistWithLazyMediaSource() throws InterruptedException {
timeline = null; timeline = null;
TimelineAsserts.StubMediaSource[] childSources = createMediaSources(2); FakeMediaSource[] childSources = createMediaSources(2);
LazyMediaSource[] lazySources = new LazyMediaSource[4]; LazyMediaSource[] lazySources = new LazyMediaSource[4];
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
lazySources[i] = new LazyMediaSource(); lazySources[i] = new LazyMediaSource();
...@@ -207,7 +207,7 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase { ...@@ -207,7 +207,7 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase {
public void testIllegalArguments() { public void testIllegalArguments() {
DynamicConcatenatingMediaSource mediaSource = new DynamicConcatenatingMediaSource(); DynamicConcatenatingMediaSource mediaSource = new DynamicConcatenatingMediaSource();
MediaSource validSource = new StubMediaSource(new FakeTimeline(1, 1)); MediaSource validSource = new FakeMediaSource(new FakeTimeline(1, 1), null);
// Null sources. // Null sources.
try { try {
...@@ -234,7 +234,10 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase { ...@@ -234,7 +234,10 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase {
// Expected. // Expected.
} }
mediaSources = new MediaSource[] { new StubMediaSource(new FakeTimeline(1, 1)), validSource}; mediaSources = new MediaSource[] {
new FakeMediaSource(new FakeTimeline(1, 1), null),
validSource
};
try { try {
mediaSource.addMediaSources(Arrays.asList(mediaSources)); mediaSource.addMediaSources(Arrays.asList(mediaSources));
fail("Duplicate mediaSource not allowed."); fail("Duplicate mediaSource not allowed.");
...@@ -267,10 +270,10 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase { ...@@ -267,10 +270,10 @@ public final class DynamicConcatenatingMediaSourceTest extends TestCase {
timelineUpdated = false; timelineUpdated = false;
} }
private TimelineAsserts.StubMediaSource[] createMediaSources(int count) { private FakeMediaSource[] createMediaSources(int count) {
TimelineAsserts.StubMediaSource[] sources = new TimelineAsserts.StubMediaSource[count]; FakeMediaSource[] sources = new FakeMediaSource[count];
for (int i = 0; i < count; i++) { 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; return sources;
} }
......
...@@ -18,9 +18,9 @@ package com.google.android.exoplayer2.source; ...@@ -18,9 +18,9 @@ package com.google.android.exoplayer2.source;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline; 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;
import com.google.android.exoplayer2.testutil.TimelineAsserts.FakeTimeline; import com.google.android.exoplayer2.testutil.TimelineAsserts.FakeTimeline;
import com.google.android.exoplayer2.testutil.TimelineAsserts.StubMediaSource;
import junit.framework.TestCase; import junit.framework.TestCase;
/** /**
...@@ -33,9 +33,9 @@ public class LoopingMediaSourceTest extends TestCase { ...@@ -33,9 +33,9 @@ public class LoopingMediaSourceTest extends TestCase {
public LoopingMediaSourceTest() { public LoopingMediaSourceTest() {
multiWindowTimeline = TimelineAsserts.extractTimelineFromMediaSource( multiWindowTimeline = TimelineAsserts.extractTimelineFromMediaSource(
new ConcatenatingMediaSource( new ConcatenatingMediaSource(
new StubMediaSource(new FakeTimeline(1, 111)), new FakeMediaSource(new FakeTimeline(1, 111), null),
new StubMediaSource(new FakeTimeline(1, 222)), new FakeMediaSource(new FakeTimeline(1, 222), null),
new StubMediaSource(new FakeTimeline(1, 333)))); new FakeMediaSource(new FakeTimeline(1, 333), null)));
} }
public void testSingleLoop() { public void testSingleLoop() {
...@@ -87,7 +87,7 @@ public class LoopingMediaSourceTest extends TestCase { ...@@ -87,7 +87,7 @@ public class LoopingMediaSourceTest extends TestCase {
* the looping timeline. * the looping timeline.
*/ */
private static Timeline getLoopingTimeline(Timeline timeline, int loopCount) { private static Timeline getLoopingTimeline(Timeline timeline, int loopCount) {
MediaSource mediaSource = new StubMediaSource(timeline); MediaSource mediaSource = new FakeMediaSource(timeline, null);
return TimelineAsserts.extractTimelineFromMediaSource( return TimelineAsserts.extractTimelineFromMediaSource(
new LoopingMediaSource(mediaSource, loopCount)); new LoopingMediaSource(mediaSource, loopCount));
} }
......
...@@ -29,8 +29,8 @@ import java.util.ArrayList; ...@@ -29,8 +29,8 @@ import java.util.ArrayList;
import junit.framework.Assert; import junit.framework.Assert;
/** /**
* Fake {@link MediaSource} that provides a given timeline (which must have one period). Creating * Fake {@link MediaSource} that provides a given timeline. Creating the period will return a
* the period will return a {@link FakeMediaPeriod}. * {@link FakeMediaPeriod} with a {@link TrackGroupArray} using the given {@link Format}s.
*/ */
public class FakeMediaSource implements MediaSource { public class FakeMediaSource implements MediaSource {
...@@ -53,6 +53,10 @@ public class FakeMediaSource implements MediaSource { ...@@ -53,6 +53,10 @@ public class FakeMediaSource implements MediaSource {
activeMediaPeriods = new ArrayList<>(); activeMediaPeriods = new ArrayList<>();
} }
public void assertReleased() {
Assert.assertTrue(releasedSource);
}
@Override @Override
public void prepareSource(ExoPlayer player, boolean isTopLevelSource, Listener listener) { public void prepareSource(ExoPlayer player, boolean isTopLevelSource, Listener listener) {
Assert.assertFalse(preparedSource); Assert.assertFalse(preparedSource);
......
...@@ -16,19 +16,14 @@ ...@@ -16,19 +16,14 @@
package com.google.android.exoplayer2.testutil; package com.google.android.exoplayer2.testutil;
import static junit.framework.Assert.assertEquals; 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.C;
import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.Timeline.Period; import com.google.android.exoplayer2.Timeline.Period;
import com.google.android.exoplayer2.Timeline.Window; 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;
import com.google.android.exoplayer2.source.MediaSource.Listener; import com.google.android.exoplayer2.source.MediaSource.Listener;
import com.google.android.exoplayer2.upstream.Allocator;
import java.io.IOException;
/** /**
* Unit test for {@link Timeline}. * Unit test for {@link Timeline}.
...@@ -80,51 +75,6 @@ public final class TimelineAsserts { ...@@ -80,51 +75,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. * Extracts the timeline from a media source.
*/ */
public static Timeline extractTimelineFromMediaSource(MediaSource mediaSource) { public static Timeline extractTimelineFromMediaSource(MediaSource mediaSource) {
......
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