Commit 023c9d56 by tonihei Committed by Oliver Woodman

Simplify timeline test stub class.

Use an actual class for the stub media source instead of an anomymous class.
Allows to call assertReleased() on that class.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=159109143
parent ed27017b
...@@ -73,13 +73,24 @@ public class TimelineTest extends TestCase { ...@@ -73,13 +73,24 @@ public class TimelineTest extends TestCase {
} }
/** /**
* Returns a stub {@link MediaSource} with the specified {@link Timeline} in its source info. * Stub media source which returns a provided timeline as source info and keeps track if it is
* prepared and released.
*/ */
public static MediaSource stubMediaSourceSourceWithTimeline(final Timeline timeline) { public static class StubMediaSource implements MediaSource {
return new MediaSource() { private final Timeline timeline;
private boolean isPrepared;
private volatile boolean isReleased;
public StubMediaSource(Timeline timeline) {
this.timeline = timeline;
}
@Override @Override
public void prepareSource(ExoPlayer player, boolean isTopLevelSource, Listener listener) { public void prepareSource(ExoPlayer player, boolean isTopLevelSource, Listener listener) {
assertFalse(isPrepared);
listener.onSourceInfoRefreshed(timeline, null); listener.onSourceInfoRefreshed(timeline, null);
isPrepared = true;
} }
@Override @Override
...@@ -97,13 +108,17 @@ public class TimelineTest extends TestCase { ...@@ -97,13 +108,17 @@ public class TimelineTest extends TestCase {
@Override @Override
public void releaseSource() { public void releaseSource() {
assertTrue(isPrepared);
isReleased = true;
}
public void assertReleased() {
assertTrue(isReleased);
} }
};
} }
/** /**
* Works in conjunction with {@code stubMediaSourceSourceWithTimeline} to extract the Timeline * Extracts the timeline from a media source.
* from a media source.
*/ */
public static Timeline extractTimelineFromMediaSource(MediaSource mediaSource) { public static Timeline extractTimelineFromMediaSource(MediaSource mediaSource) {
class TimelineListener implements Listener { class TimelineListener implements Listener {
......
...@@ -23,6 +23,7 @@ import com.google.android.exoplayer2.Timeline.Period; ...@@ -23,6 +23,7 @@ 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.TimelineTest; import com.google.android.exoplayer2.TimelineTest;
import com.google.android.exoplayer2.TimelineTest.FakeTimeline; import com.google.android.exoplayer2.TimelineTest.FakeTimeline;
import com.google.android.exoplayer2.TimelineTest.StubMediaSource;
import com.google.android.exoplayer2.TimelineTest.TimelineVerifier; import com.google.android.exoplayer2.TimelineTest.TimelineVerifier;
/** /**
...@@ -119,7 +120,7 @@ public final class ClippingMediaSourceTest extends InstrumentationTestCase { ...@@ -119,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 = TimelineTest.stubMediaSourceSourceWithTimeline(timeline); MediaSource mediaSource = new StubMediaSource(timeline);
return TimelineTest.extractTimelineFromMediaSource( return TimelineTest.extractTimelineFromMediaSource(
new ClippingMediaSource(mediaSource, startMs, endMs)); new ClippingMediaSource(mediaSource, startMs, endMs));
} }
......
...@@ -20,6 +20,7 @@ import com.google.android.exoplayer2.ExoPlayer; ...@@ -20,6 +20,7 @@ import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.TimelineTest; import com.google.android.exoplayer2.TimelineTest;
import com.google.android.exoplayer2.TimelineTest.FakeTimeline; import com.google.android.exoplayer2.TimelineTest.FakeTimeline;
import com.google.android.exoplayer2.TimelineTest.StubMediaSource;
import com.google.android.exoplayer2.TimelineTest.TimelineVerifier; import com.google.android.exoplayer2.TimelineTest.TimelineVerifier;
import junit.framework.TestCase; import junit.framework.TestCase;
...@@ -101,7 +102,7 @@ public final class ConcatenatingMediaSourceTest extends TestCase { ...@@ -101,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] = TimelineTest.stubMediaSourceSourceWithTimeline(timelines[i]); mediaSources[i] = new StubMediaSource(timelines[i]);
} }
return TimelineTest.extractTimelineFromMediaSource( return TimelineTest.extractTimelineFromMediaSource(
new ConcatenatingMediaSource(isRepeatOneAtomic, mediaSources)); new ConcatenatingMediaSource(isRepeatOneAtomic, mediaSources));
......
...@@ -20,6 +20,7 @@ import com.google.android.exoplayer2.ExoPlayer; ...@@ -20,6 +20,7 @@ import com.google.android.exoplayer2.ExoPlayer;
import com.google.android.exoplayer2.Timeline; import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.TimelineTest; import com.google.android.exoplayer2.TimelineTest;
import com.google.android.exoplayer2.TimelineTest.FakeTimeline; import com.google.android.exoplayer2.TimelineTest.FakeTimeline;
import com.google.android.exoplayer2.TimelineTest.StubMediaSource;
import com.google.android.exoplayer2.TimelineTest.TimelineVerifier; import com.google.android.exoplayer2.TimelineTest.TimelineVerifier;
import junit.framework.TestCase; import junit.framework.TestCase;
...@@ -33,9 +34,9 @@ public class LoopingMediaSourceTest extends TestCase { ...@@ -33,9 +34,9 @@ public class LoopingMediaSourceTest extends TestCase {
public LoopingMediaSourceTest() { public LoopingMediaSourceTest() {
multiWindowTimeline = TimelineTest.extractTimelineFromMediaSource( multiWindowTimeline = TimelineTest.extractTimelineFromMediaSource(
new ConcatenatingMediaSource( new ConcatenatingMediaSource(
TimelineTest.stubMediaSourceSourceWithTimeline(new FakeTimeline(1, 111)), new StubMediaSource(new FakeTimeline(1, 111)),
TimelineTest.stubMediaSourceSourceWithTimeline(new FakeTimeline(1, 222)), new StubMediaSource(new FakeTimeline(1, 222)),
TimelineTest.stubMediaSourceSourceWithTimeline(new FakeTimeline(1, 333)))); new StubMediaSource(new FakeTimeline(1, 333))));
} }
public void testSingleLoop() { public void testSingleLoop() {
...@@ -83,7 +84,7 @@ public class LoopingMediaSourceTest extends TestCase { ...@@ -83,7 +84,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 = TimelineTest.stubMediaSourceSourceWithTimeline(timeline); MediaSource mediaSource = new StubMediaSource(timeline);
return TimelineTest.extractTimelineFromMediaSource( return TimelineTest.extractTimelineFromMediaSource(
new LoopingMediaSource(mediaSource, loopCount)); new LoopingMediaSource(mediaSource, loopCount));
} }
......
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