Commit 960315c4 by tonihei Committed by Oliver Woodman

Move extractTimelineFromMediaSource to test util class.

This also ensures that TimelineAsserts only contains assert methods.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=160827271
parent a82e5107
...@@ -24,6 +24,7 @@ import com.google.android.exoplayer2.Timeline.Window; ...@@ -24,6 +24,7 @@ import com.google.android.exoplayer2.Timeline.Window;
import com.google.android.exoplayer2.testutil.FakeMediaSource; import com.google.android.exoplayer2.testutil.FakeMediaSource;
import com.google.android.exoplayer2.testutil.FakeTimeline; import com.google.android.exoplayer2.testutil.FakeTimeline;
import com.google.android.exoplayer2.testutil.FakeTimeline.TimelineWindowDefinition; import com.google.android.exoplayer2.testutil.FakeTimeline.TimelineWindowDefinition;
import com.google.android.exoplayer2.testutil.TestUtil;
import com.google.android.exoplayer2.testutil.TimelineAsserts; import com.google.android.exoplayer2.testutil.TimelineAsserts;
/** /**
...@@ -123,7 +124,7 @@ public final class ClippingMediaSourceTest extends InstrumentationTestCase { ...@@ -123,7 +124,7 @@ public final class ClippingMediaSourceTest extends InstrumentationTestCase {
*/ */
private static Timeline getClippedTimeline(Timeline timeline, long startMs, long endMs) { private static Timeline getClippedTimeline(Timeline timeline, long startMs, long endMs) {
MediaSource mediaSource = new FakeMediaSource(timeline, null); MediaSource mediaSource = new FakeMediaSource(timeline, null);
return TimelineAsserts.extractTimelineFromMediaSource( return TestUtil.extractTimelineFromMediaSource(
new ClippingMediaSource(mediaSource, startMs, endMs)); new ClippingMediaSource(mediaSource, startMs, endMs));
} }
......
...@@ -21,6 +21,7 @@ import com.google.android.exoplayer2.Timeline; ...@@ -21,6 +21,7 @@ import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.testutil.FakeMediaSource; import com.google.android.exoplayer2.testutil.FakeMediaSource;
import com.google.android.exoplayer2.testutil.FakeTimeline; import com.google.android.exoplayer2.testutil.FakeTimeline;
import com.google.android.exoplayer2.testutil.FakeTimeline.TimelineWindowDefinition; import com.google.android.exoplayer2.testutil.FakeTimeline.TimelineWindowDefinition;
import com.google.android.exoplayer2.testutil.TestUtil;
import com.google.android.exoplayer2.testutil.TimelineAsserts; import com.google.android.exoplayer2.testutil.TimelineAsserts;
import junit.framework.TestCase; import junit.framework.TestCase;
...@@ -105,7 +106,7 @@ public final class ConcatenatingMediaSourceTest extends TestCase { ...@@ -105,7 +106,7 @@ public final class ConcatenatingMediaSourceTest extends TestCase {
for (int i = 0; i < timelines.length; i++) { for (int i = 0; i < timelines.length; i++) {
mediaSources[i] = new FakeMediaSource(timelines[i], null); mediaSources[i] = new FakeMediaSource(timelines[i], null);
} }
return TimelineAsserts.extractTimelineFromMediaSource( return TestUtil.extractTimelineFromMediaSource(
new ConcatenatingMediaSource(isRepeatOneAtomic, mediaSources)); new ConcatenatingMediaSource(isRepeatOneAtomic, mediaSources));
} }
......
...@@ -21,6 +21,7 @@ import com.google.android.exoplayer2.Timeline; ...@@ -21,6 +21,7 @@ import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.testutil.FakeMediaSource; import com.google.android.exoplayer2.testutil.FakeMediaSource;
import com.google.android.exoplayer2.testutil.FakeTimeline; import com.google.android.exoplayer2.testutil.FakeTimeline;
import com.google.android.exoplayer2.testutil.FakeTimeline.TimelineWindowDefinition; import com.google.android.exoplayer2.testutil.FakeTimeline.TimelineWindowDefinition;
import com.google.android.exoplayer2.testutil.TestUtil;
import com.google.android.exoplayer2.testutil.TimelineAsserts; import com.google.android.exoplayer2.testutil.TimelineAsserts;
import junit.framework.TestCase; import junit.framework.TestCase;
...@@ -32,7 +33,7 @@ public class LoopingMediaSourceTest extends TestCase { ...@@ -32,7 +33,7 @@ public class LoopingMediaSourceTest extends TestCase {
private final Timeline multiWindowTimeline; private final Timeline multiWindowTimeline;
public LoopingMediaSourceTest() { public LoopingMediaSourceTest() {
multiWindowTimeline = TimelineAsserts.extractTimelineFromMediaSource(new FakeMediaSource( multiWindowTimeline = TestUtil.extractTimelineFromMediaSource(new FakeMediaSource(
new FakeTimeline(new TimelineWindowDefinition(1, 111), new FakeTimeline(new TimelineWindowDefinition(1, 111),
new TimelineWindowDefinition(1, 222), new TimelineWindowDefinition(1, 333)), null)); new TimelineWindowDefinition(1, 222), new TimelineWindowDefinition(1, 333)), null));
} }
...@@ -87,7 +88,7 @@ public class LoopingMediaSourceTest extends TestCase { ...@@ -87,7 +88,7 @@ public class LoopingMediaSourceTest extends TestCase {
*/ */
private static Timeline getLoopingTimeline(Timeline timeline, int loopCount) { private static Timeline getLoopingTimeline(Timeline timeline, int loopCount) {
MediaSource mediaSource = new FakeMediaSource(timeline, null); MediaSource mediaSource = new FakeMediaSource(timeline, null);
return TimelineAsserts.extractTimelineFromMediaSource( return TestUtil.extractTimelineFromMediaSource(
new LoopingMediaSource(mediaSource, loopCount)); new LoopingMediaSource(mediaSource, loopCount));
} }
......
...@@ -19,9 +19,12 @@ import android.app.Instrumentation; ...@@ -19,9 +19,12 @@ import android.app.Instrumentation;
import android.test.InstrumentationTestCase; import android.test.InstrumentationTestCase;
import android.test.MoreAsserts; import android.test.MoreAsserts;
import com.google.android.exoplayer2.C; import com.google.android.exoplayer2.C;
import com.google.android.exoplayer2.Timeline;
import com.google.android.exoplayer2.extractor.Extractor; import com.google.android.exoplayer2.extractor.Extractor;
import com.google.android.exoplayer2.extractor.PositionHolder; import com.google.android.exoplayer2.extractor.PositionHolder;
import com.google.android.exoplayer2.extractor.SeekMap; import com.google.android.exoplayer2.extractor.SeekMap;
import com.google.android.exoplayer2.source.MediaSource;
import com.google.android.exoplayer2.source.MediaSource.Listener;
import com.google.android.exoplayer2.testutil.FakeExtractorInput.SimulatedIOException; import com.google.android.exoplayer2.testutil.FakeExtractorInput.SimulatedIOException;
import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DataSource;
import com.google.android.exoplayer2.upstream.DataSpec; import com.google.android.exoplayer2.upstream.DataSpec;
...@@ -219,6 +222,32 @@ public class TestUtil { ...@@ -219,6 +222,32 @@ public class TestUtil {
} }
/** /**
* Extracts the timeline from a media source.
*/
public static Timeline extractTimelineFromMediaSource(MediaSource mediaSource) {
class TimelineListener implements Listener {
private Timeline timeline;
@Override
public synchronized void onSourceInfoRefreshed(Timeline timeline, Object manifest) {
this.timeline = timeline;
this.notify();
}
}
TimelineListener listener = new TimelineListener();
mediaSource.prepareSource(null, true, listener);
synchronized (listener) {
while (listener.timeline == null) {
try {
listener.wait();
} catch (InterruptedException e) {
Assert.fail(e.getMessage());
}
}
}
return listener.timeline;
}
/**
* Calls {@link #assertOutput(Extractor, String, byte[], Instrumentation, boolean, boolean, * Calls {@link #assertOutput(Extractor, String, byte[], Instrumentation, boolean, boolean,
* boolean)} with all possible combinations of "simulate" parameters. * boolean)} with all possible combinations of "simulate" parameters.
* *
......
...@@ -22,8 +22,6 @@ import com.google.android.exoplayer2.ExoPlayer; ...@@ -22,8 +22,6 @@ 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.MediaSource;
import com.google.android.exoplayer2.source.MediaSource.Listener;
/** /**
* Unit test for {@link Timeline}. * Unit test for {@link Timeline}.
...@@ -33,22 +31,6 @@ public final class TimelineAsserts { ...@@ -33,22 +31,6 @@ public final class TimelineAsserts {
private TimelineAsserts() {} private TimelineAsserts() {}
/** /**
* Extracts the timeline from a media source.
*/
public static Timeline extractTimelineFromMediaSource(MediaSource mediaSource) {
class TimelineListener implements Listener {
private Timeline timeline;
@Override
public void onSourceInfoRefreshed(Timeline timeline, Object manifest) {
this.timeline = timeline;
}
}
TimelineListener listener = new TimelineListener();
mediaSource.prepareSource(null, true, listener);
return listener.timeline;
}
/**
* Assert that timeline is empty (i.e. has no windows or periods). * Assert that timeline is empty (i.e. has no windows or periods).
*/ */
public static void assertEmpty(Timeline timeline) { public static void assertEmpty(Timeline timeline) {
......
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