Commit 2fe478ad by eguven Committed by Oliver Woodman

Invert DashHostedTest and inner class Builder to make the design more natural

Builder class was renamed to DashTestRunner and DashHostedTest moved
into it as an inner class.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=150307988
parent 9b0d24c9
...@@ -40,40 +40,54 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -40,40 +40,54 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.build(); .build();
private static final ActionSchedule RENDERER_DISABLING_SCHEDULE = new ActionSchedule.Builder(TAG) private static final ActionSchedule RENDERER_DISABLING_SCHEDULE = new ActionSchedule.Builder(TAG)
// Wait 10 seconds, disable the video renderer, wait another 10 seconds and enable it again. // Wait 10 seconds, disable the video renderer, wait another 10 seconds and enable it again.
.delay(10000).disableRenderer(DashHostedTest.VIDEO_RENDERER_INDEX) .delay(10000).disableRenderer(DashTestRunner.VIDEO_RENDERER_INDEX)
.delay(10000).enableRenderer(DashHostedTest.VIDEO_RENDERER_INDEX) .delay(10000).enableRenderer(DashTestRunner.VIDEO_RENDERER_INDEX)
// Ditto for the audio renderer. // Ditto for the audio renderer.
.delay(10000).disableRenderer(DashHostedTest.AUDIO_RENDERER_INDEX) .delay(10000).disableRenderer(DashTestRunner.AUDIO_RENDERER_INDEX)
.delay(10000).enableRenderer(DashHostedTest.AUDIO_RENDERER_INDEX) .delay(10000).enableRenderer(DashTestRunner.AUDIO_RENDERER_INDEX)
// Wait 10 seconds, then disable and enable the video renderer 5 times in quick succession. // Wait 10 seconds, then disable and enable the video renderer 5 times in quick succession.
.delay(10000).disableRenderer(DashHostedTest.VIDEO_RENDERER_INDEX) .delay(10000).disableRenderer(DashTestRunner.VIDEO_RENDERER_INDEX)
.enableRenderer(DashHostedTest.VIDEO_RENDERER_INDEX) .enableRenderer(DashTestRunner.VIDEO_RENDERER_INDEX)
.disableRenderer(DashHostedTest.VIDEO_RENDERER_INDEX) .disableRenderer(DashTestRunner.VIDEO_RENDERER_INDEX)
.enableRenderer(DashHostedTest.VIDEO_RENDERER_INDEX) .enableRenderer(DashTestRunner.VIDEO_RENDERER_INDEX)
.disableRenderer(DashHostedTest.VIDEO_RENDERER_INDEX) .disableRenderer(DashTestRunner.VIDEO_RENDERER_INDEX)
.enableRenderer(DashHostedTest.VIDEO_RENDERER_INDEX) .enableRenderer(DashTestRunner.VIDEO_RENDERER_INDEX)
.disableRenderer(DashHostedTest.VIDEO_RENDERER_INDEX) .disableRenderer(DashTestRunner.VIDEO_RENDERER_INDEX)
.enableRenderer(DashHostedTest.VIDEO_RENDERER_INDEX) .enableRenderer(DashTestRunner.VIDEO_RENDERER_INDEX)
.disableRenderer(DashHostedTest.VIDEO_RENDERER_INDEX) .disableRenderer(DashTestRunner.VIDEO_RENDERER_INDEX)
.enableRenderer(DashHostedTest.VIDEO_RENDERER_INDEX) .enableRenderer(DashTestRunner.VIDEO_RENDERER_INDEX)
// Ditto for the audio renderer. // Ditto for the audio renderer.
.delay(10000).disableRenderer(DashHostedTest.AUDIO_RENDERER_INDEX) .delay(10000).disableRenderer(DashTestRunner.AUDIO_RENDERER_INDEX)
.enableRenderer(DashHostedTest.AUDIO_RENDERER_INDEX) .enableRenderer(DashTestRunner.AUDIO_RENDERER_INDEX)
.disableRenderer(DashHostedTest.AUDIO_RENDERER_INDEX) .disableRenderer(DashTestRunner.AUDIO_RENDERER_INDEX)
.enableRenderer(DashHostedTest.AUDIO_RENDERER_INDEX) .enableRenderer(DashTestRunner.AUDIO_RENDERER_INDEX)
.disableRenderer(DashHostedTest.AUDIO_RENDERER_INDEX) .disableRenderer(DashTestRunner.AUDIO_RENDERER_INDEX)
.enableRenderer(DashHostedTest.AUDIO_RENDERER_INDEX) .enableRenderer(DashTestRunner.AUDIO_RENDERER_INDEX)
.disableRenderer(DashHostedTest.AUDIO_RENDERER_INDEX) .disableRenderer(DashTestRunner.AUDIO_RENDERER_INDEX)
.enableRenderer(DashHostedTest.AUDIO_RENDERER_INDEX) .enableRenderer(DashTestRunner.AUDIO_RENDERER_INDEX)
.disableRenderer(DashHostedTest.AUDIO_RENDERER_INDEX) .disableRenderer(DashTestRunner.AUDIO_RENDERER_INDEX)
.enableRenderer(DashHostedTest.AUDIO_RENDERER_INDEX) .enableRenderer(DashTestRunner.AUDIO_RENDERER_INDEX)
.delay(10000).seek(120000) .delay(10000).seek(120000)
.build(); .build();
private DashTestRunner testRunner;
public DashTest() { public DashTest() {
super(HostActivity.class); super(HostActivity.class);
} }
@Override
protected void setUp() throws Exception {
super.setUp();
testRunner = new DashTestRunner(TAG, getActivity(), getInstrumentation());
}
@Override
protected void tearDown() throws Exception {
testRunner = null;
super.tearDown();
}
// H264 CDD. // H264 CDD.
public void testH264Fixed() { public void testH264Fixed() {
...@@ -81,13 +95,13 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -81,13 +95,13 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_h264_fixed") .setStreamName("test_h264_fixed")
.setManifestUrl(DashTestData.H264_MANIFEST) .setManifestUrl(DashTestData.H264_MANIFEST)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, DashTestData.H264_CDD_FIXED) .setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, DashTestData.H264_CDD_FIXED)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testH264Adaptive() throws DecoderQueryException { public void testH264Adaptive() throws DecoderQueryException {
...@@ -95,14 +109,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -95,14 +109,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_h264_adaptive") .setStreamName("test_h264_adaptive")
.setManifestUrl(DashTestData.H264_MANIFEST) .setManifestUrl(DashTestData.H264_MANIFEST)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID,
DashTestData.H264_CDD_ADAPTIVE) DashTestData.H264_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testH264AdaptiveWithSeeking() throws DecoderQueryException { public void testH264AdaptiveWithSeeking() throws DecoderQueryException {
...@@ -111,7 +125,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -111,7 +125,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
return; return;
} }
final String streamName = "test_h264_adaptive_with_seeking"; final String streamName = "test_h264_adaptive_with_seeking";
new DashHostedTest.Builder(TAG) testRunner
.setStreamName(streamName) .setStreamName(streamName)
.setManifestUrl(DashTestData.H264_MANIFEST) .setManifestUrl(DashTestData.H264_MANIFEST)
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
...@@ -119,7 +133,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -119,7 +133,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setActionSchedule(SEEKING_SCHEDULE) .setActionSchedule(SEEKING_SCHEDULE)
.setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID,
DashTestData.H264_CDD_ADAPTIVE) DashTestData.H264_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testH264AdaptiveWithRendererDisabling() throws DecoderQueryException { public void testH264AdaptiveWithRendererDisabling() throws DecoderQueryException {
...@@ -128,7 +142,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -128,7 +142,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
return; return;
} }
final String streamName = "test_h264_adaptive_with_renderer_disabling"; final String streamName = "test_h264_adaptive_with_renderer_disabling";
new DashHostedTest.Builder(TAG) testRunner
.setStreamName(streamName) .setStreamName(streamName)
.setManifestUrl(DashTestData.H264_MANIFEST) .setManifestUrl(DashTestData.H264_MANIFEST)
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
...@@ -136,7 +150,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -136,7 +150,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setActionSchedule(RENDERER_DISABLING_SCHEDULE) .setActionSchedule(RENDERER_DISABLING_SCHEDULE)
.setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID,
DashTestData.H264_CDD_ADAPTIVE) DashTestData.H264_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
// H265 CDD. // H265 CDD.
...@@ -146,13 +160,13 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -146,13 +160,13 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_h265_fixed") .setStreamName("test_h265_fixed")
.setManifestUrl(DashTestData.H265_MANIFEST) .setManifestUrl(DashTestData.H265_MANIFEST)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, DashTestData.H265_CDD_FIXED) .setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, DashTestData.H265_CDD_FIXED)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testH265Adaptive() throws DecoderQueryException { public void testH265Adaptive() throws DecoderQueryException {
...@@ -160,14 +174,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -160,14 +174,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_h265_adaptive") .setStreamName("test_h265_adaptive")
.setManifestUrl(DashTestData.H265_MANIFEST) .setManifestUrl(DashTestData.H265_MANIFEST)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID,
DashTestData.H265_CDD_ADAPTIVE) DashTestData.H265_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testH265AdaptiveWithSeeking() throws DecoderQueryException { public void testH265AdaptiveWithSeeking() throws DecoderQueryException {
...@@ -175,7 +189,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -175,7 +189,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_h265_adaptive_with_seeking") .setStreamName("test_h265_adaptive_with_seeking")
.setManifestUrl(DashTestData.H265_MANIFEST) .setManifestUrl(DashTestData.H265_MANIFEST)
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
...@@ -183,7 +197,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -183,7 +197,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setActionSchedule(SEEKING_SCHEDULE) .setActionSchedule(SEEKING_SCHEDULE)
.setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID,
DashTestData.H265_CDD_ADAPTIVE) DashTestData.H265_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testH265AdaptiveWithRendererDisabling() throws DecoderQueryException { public void testH265AdaptiveWithRendererDisabling() throws DecoderQueryException {
...@@ -191,7 +205,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -191,7 +205,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_h265_adaptive_with_renderer_disabling") .setStreamName("test_h265_adaptive_with_renderer_disabling")
.setManifestUrl(DashTestData.H265_MANIFEST) .setManifestUrl(DashTestData.H265_MANIFEST)
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
...@@ -199,7 +213,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -199,7 +213,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setActionSchedule(RENDERER_DISABLING_SCHEDULE) .setActionSchedule(RENDERER_DISABLING_SCHEDULE)
.setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID,
DashTestData.H265_CDD_ADAPTIVE) DashTestData.H265_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
// VP9 (CDD). // VP9 (CDD).
...@@ -209,14 +223,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -209,14 +223,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_vp9_fixed_360p") .setStreamName("test_vp9_fixed_360p")
.setManifestUrl(DashTestData.VP9_MANIFEST) .setManifestUrl(DashTestData.VP9_MANIFEST)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.VP9_VORBIS_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.VP9_VORBIS_AUDIO_REPRESENTATION_ID,
DashTestData.VP9_CDD_FIXED) DashTestData.VP9_CDD_FIXED)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testVp9Adaptive() throws DecoderQueryException { public void testVp9Adaptive() throws DecoderQueryException {
...@@ -224,14 +238,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -224,14 +238,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_vp9_adaptive") .setStreamName("test_vp9_adaptive")
.setManifestUrl(DashTestData.VP9_MANIFEST) .setManifestUrl(DashTestData.VP9_MANIFEST)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setAudioVideoFormats(DashTestData.VP9_VORBIS_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.VP9_VORBIS_AUDIO_REPRESENTATION_ID,
DashTestData.VP9_CDD_ADAPTIVE) DashTestData.VP9_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testVp9AdaptiveWithSeeking() throws DecoderQueryException { public void testVp9AdaptiveWithSeeking() throws DecoderQueryException {
...@@ -239,7 +253,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -239,7 +253,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_vp9_adaptive_with_seeking") .setStreamName("test_vp9_adaptive_with_seeking")
.setManifestUrl(DashTestData.VP9_MANIFEST) .setManifestUrl(DashTestData.VP9_MANIFEST)
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
...@@ -247,7 +261,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -247,7 +261,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setActionSchedule(SEEKING_SCHEDULE) .setActionSchedule(SEEKING_SCHEDULE)
.setAudioVideoFormats(DashTestData.VP9_VORBIS_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.VP9_VORBIS_AUDIO_REPRESENTATION_ID,
DashTestData.VP9_CDD_ADAPTIVE) DashTestData.VP9_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testVp9AdaptiveWithRendererDisabling() throws DecoderQueryException { public void testVp9AdaptiveWithRendererDisabling() throws DecoderQueryException {
...@@ -255,7 +269,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -255,7 +269,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_vp9_adaptive_with_renderer_disabling") .setStreamName("test_vp9_adaptive_with_renderer_disabling")
.setManifestUrl(DashTestData.VP9_MANIFEST) .setManifestUrl(DashTestData.VP9_MANIFEST)
.setFullPlaybackNoSeeking(false) .setFullPlaybackNoSeeking(false)
...@@ -263,7 +277,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -263,7 +277,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setActionSchedule(RENDERER_DISABLING_SCHEDULE) .setActionSchedule(RENDERER_DISABLING_SCHEDULE)
.setAudioVideoFormats(DashTestData.VP9_VORBIS_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.VP9_VORBIS_AUDIO_REPRESENTATION_ID,
DashTestData.VP9_CDD_ADAPTIVE) DashTestData.VP9_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
// H264: Other frame-rates for output buffer count assertions. // H264: Other frame-rates for output buffer count assertions.
...@@ -274,14 +288,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -274,14 +288,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_23fps_h264_fixed") .setStreamName("test_23fps_h264_fixed")
.setManifestUrl(DashTestData.H264_23_MANIFEST) .setManifestUrl(DashTestData.H264_23_MANIFEST)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID,
DashTestData.H264_BASELINE_480P_23FPS_VIDEO_REPRESENTATION_ID) DashTestData.H264_BASELINE_480P_23FPS_VIDEO_REPRESENTATION_ID)
.runTest(getActivity(), getInstrumentation()); .run();
} }
// 24 fps. // 24 fps.
...@@ -290,14 +304,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -290,14 +304,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_24fps_h264_fixed") .setStreamName("test_24fps_h264_fixed")
.setManifestUrl(DashTestData.H264_24_MANIFEST) .setManifestUrl(DashTestData.H264_24_MANIFEST)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID,
DashTestData.H264_BASELINE_480P_24FPS_VIDEO_REPRESENTATION_ID) DashTestData.H264_BASELINE_480P_24FPS_VIDEO_REPRESENTATION_ID)
.runTest(getActivity(), getInstrumentation()); .run();
} }
// 29.97 fps. // 29.97 fps.
...@@ -306,14 +320,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -306,14 +320,14 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_29fps_h264_fixed") .setStreamName("test_29fps_h264_fixed")
.setManifestUrl(DashTestData.H264_29_MANIFEST) .setManifestUrl(DashTestData.H264_29_MANIFEST)
.setFullPlaybackNoSeeking(true) .setFullPlaybackNoSeeking(true)
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.AAC_AUDIO_REPRESENTATION_ID,
DashTestData.H264_BASELINE_480P_29FPS_VIDEO_REPRESENTATION_ID) DashTestData.H264_BASELINE_480P_29FPS_VIDEO_REPRESENTATION_ID)
.runTest(getActivity(), getInstrumentation()); .run();
} }
// Widevine encrypted media tests. // Widevine encrypted media tests.
...@@ -324,7 +338,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -324,7 +338,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_h264_fixed") .setStreamName("test_widevine_h264_fixed")
.setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
...@@ -332,7 +346,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -332,7 +346,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H264_CDD_FIXED) DashTestData.WIDEVINE_H264_CDD_FIXED)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testWidevineH264Adaptive() throws DecoderQueryException { public void testWidevineH264Adaptive() throws DecoderQueryException {
...@@ -340,7 +354,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -340,7 +354,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_h264_adaptive") .setStreamName("test_widevine_h264_adaptive")
.setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
...@@ -348,7 +362,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -348,7 +362,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H264_CDD_ADAPTIVE) DashTestData.WIDEVINE_H264_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testWidevineH264AdaptiveWithSeeking() throws DecoderQueryException { public void testWidevineH264AdaptiveWithSeeking() throws DecoderQueryException {
...@@ -356,7 +370,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -356,7 +370,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_h264_adaptive_with_seeking") .setStreamName("test_widevine_h264_adaptive_with_seeking")
.setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
...@@ -365,7 +379,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -365,7 +379,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setActionSchedule(SEEKING_SCHEDULE) .setActionSchedule(SEEKING_SCHEDULE)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H264_CDD_ADAPTIVE) DashTestData.WIDEVINE_H264_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testWidevineH264AdaptiveWithRendererDisabling() throws DecoderQueryException { public void testWidevineH264AdaptiveWithRendererDisabling() throws DecoderQueryException {
...@@ -373,7 +387,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -373,7 +387,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_h264_adaptive_with_renderer_disabling") .setStreamName("test_widevine_h264_adaptive_with_renderer_disabling")
.setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
...@@ -382,7 +396,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -382,7 +396,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setActionSchedule(RENDERER_DISABLING_SCHEDULE) .setActionSchedule(RENDERER_DISABLING_SCHEDULE)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H264_CDD_ADAPTIVE) DashTestData.WIDEVINE_H264_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
// H265 CDD. // H265 CDD.
...@@ -392,7 +406,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -392,7 +406,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_h265_fixed") .setStreamName("test_widevine_h265_fixed")
.setManifestUrl(DashTestData.WIDEVINE_H265_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_H265_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H265) .setWidevineMimeType(MimeTypes.VIDEO_H265)
...@@ -400,7 +414,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -400,7 +414,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H265_CDD_FIXED) DashTestData.WIDEVINE_H265_CDD_FIXED)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testWidevineH265Adaptive() throws DecoderQueryException { public void testWidevineH265Adaptive() throws DecoderQueryException {
...@@ -408,7 +422,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -408,7 +422,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_h265_adaptive") .setStreamName("test_widevine_h265_adaptive")
.setManifestUrl(DashTestData.WIDEVINE_H265_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_H265_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H265) .setWidevineMimeType(MimeTypes.VIDEO_H265)
...@@ -416,7 +430,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -416,7 +430,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H265_CDD_ADAPTIVE) DashTestData.WIDEVINE_H265_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testWidevineH265AdaptiveWithSeeking() throws DecoderQueryException { public void testWidevineH265AdaptiveWithSeeking() throws DecoderQueryException {
...@@ -424,7 +438,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -424,7 +438,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_h265_adaptive_with_seeking") .setStreamName("test_widevine_h265_adaptive_with_seeking")
.setManifestUrl(DashTestData.WIDEVINE_H265_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_H265_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H265) .setWidevineMimeType(MimeTypes.VIDEO_H265)
...@@ -433,7 +447,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -433,7 +447,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setActionSchedule(SEEKING_SCHEDULE) .setActionSchedule(SEEKING_SCHEDULE)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H265_CDD_ADAPTIVE) DashTestData.WIDEVINE_H265_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testWidevineH265AdaptiveWithRendererDisabling() throws DecoderQueryException { public void testWidevineH265AdaptiveWithRendererDisabling() throws DecoderQueryException {
...@@ -441,7 +455,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -441,7 +455,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_h265_adaptive_with_renderer_disabling") .setStreamName("test_widevine_h265_adaptive_with_renderer_disabling")
.setManifestUrl(DashTestData.WIDEVINE_H265_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_H265_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H265) .setWidevineMimeType(MimeTypes.VIDEO_H265)
...@@ -450,7 +464,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -450,7 +464,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setActionSchedule(RENDERER_DISABLING_SCHEDULE) .setActionSchedule(RENDERER_DISABLING_SCHEDULE)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H265_CDD_ADAPTIVE) DashTestData.WIDEVINE_H265_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
// VP9 (CDD). // VP9 (CDD).
...@@ -460,7 +474,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -460,7 +474,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_vp9_fixed_360p") .setStreamName("test_widevine_vp9_fixed_360p")
.setManifestUrl(DashTestData.WIDEVINE_VP9_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_VP9_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_VP9) .setWidevineMimeType(MimeTypes.VIDEO_VP9)
...@@ -468,7 +482,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -468,7 +482,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_VP9_CDD_FIXED) DashTestData.WIDEVINE_VP9_CDD_FIXED)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testWidevineVp9Adaptive() throws DecoderQueryException { public void testWidevineVp9Adaptive() throws DecoderQueryException {
...@@ -476,7 +490,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -476,7 +490,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_vp9_adaptive") .setStreamName("test_widevine_vp9_adaptive")
.setManifestUrl(DashTestData.WIDEVINE_VP9_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_VP9_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_VP9) .setWidevineMimeType(MimeTypes.VIDEO_VP9)
...@@ -484,7 +498,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -484,7 +498,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setCanIncludeAdditionalVideoFormats(true) .setCanIncludeAdditionalVideoFormats(true)
.setAudioVideoFormats(DashTestData.WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_VP9_CDD_ADAPTIVE) DashTestData.WIDEVINE_VP9_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testWidevineVp9AdaptiveWithSeeking() throws DecoderQueryException { public void testWidevineVp9AdaptiveWithSeeking() throws DecoderQueryException {
...@@ -492,7 +506,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -492,7 +506,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_vp9_adaptive_with_seeking") .setStreamName("test_widevine_vp9_adaptive_with_seeking")
.setManifestUrl(DashTestData.WIDEVINE_VP9_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_VP9_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_VP9) .setWidevineMimeType(MimeTypes.VIDEO_VP9)
...@@ -501,7 +515,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -501,7 +515,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setActionSchedule(SEEKING_SCHEDULE) .setActionSchedule(SEEKING_SCHEDULE)
.setAudioVideoFormats(DashTestData.WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_VP9_CDD_ADAPTIVE) DashTestData.WIDEVINE_VP9_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
public void testWidevineVp9AdaptiveWithRendererDisabling() throws DecoderQueryException { public void testWidevineVp9AdaptiveWithRendererDisabling() throws DecoderQueryException {
...@@ -509,7 +523,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -509,7 +523,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_vp9_adaptive_with_renderer_disabling") .setStreamName("test_widevine_vp9_adaptive_with_renderer_disabling")
.setManifestUrl(DashTestData.WIDEVINE_VP9_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_VP9_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_VP9) .setWidevineMimeType(MimeTypes.VIDEO_VP9)
...@@ -518,7 +532,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -518,7 +532,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setActionSchedule(RENDERER_DISABLING_SCHEDULE) .setActionSchedule(RENDERER_DISABLING_SCHEDULE)
.setAudioVideoFormats(DashTestData.WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_VP9_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_VP9_CDD_ADAPTIVE) DashTestData.WIDEVINE_VP9_CDD_ADAPTIVE)
.runTest(getActivity(), getInstrumentation()); .run();
} }
// H264: Other frame-rates for output buffer count assertions. // H264: Other frame-rates for output buffer count assertions.
...@@ -529,7 +543,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -529,7 +543,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_23fps_h264_fixed") .setStreamName("test_widevine_23fps_h264_fixed")
.setManifestUrl(DashTestData.WIDEVINE_H264_23_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_H264_23_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
...@@ -537,7 +551,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -537,7 +551,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H264_BASELINE_480P_23FPS_VIDEO_REPRESENTATION_ID) DashTestData.WIDEVINE_H264_BASELINE_480P_23FPS_VIDEO_REPRESENTATION_ID)
.runTest(getActivity(), getInstrumentation()); .run();
} }
// 24 fps. // 24 fps.
...@@ -546,7 +560,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -546,7 +560,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_24fps_h264_fixed") .setStreamName("test_widevine_24fps_h264_fixed")
.setManifestUrl(DashTestData.WIDEVINE_H264_24_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_H264_24_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
...@@ -554,7 +568,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -554,7 +568,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H264_BASELINE_480P_24FPS_VIDEO_REPRESENTATION_ID) DashTestData.WIDEVINE_H264_BASELINE_480P_24FPS_VIDEO_REPRESENTATION_ID)
.runTest(getActivity(), getInstrumentation()); .run();
} }
// 29.97 fps. // 29.97 fps.
...@@ -563,7 +577,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -563,7 +577,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
// Pass. // Pass.
return; return;
} }
new DashHostedTest.Builder(TAG) testRunner
.setStreamName("test_widevine_29fps_h264_fixed") .setStreamName("test_widevine_29fps_h264_fixed")
.setManifestUrl(DashTestData.WIDEVINE_H264_29_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_H264_29_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
...@@ -571,7 +585,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit ...@@ -571,7 +585,7 @@ public final class DashTest extends ActivityInstrumentationTestCase2<HostActivit
.setCanIncludeAdditionalVideoFormats(false) .setCanIncludeAdditionalVideoFormats(false)
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H264_BASELINE_480P_29FPS_VIDEO_REPRESENTATION_ID) DashTestData.WIDEVINE_H264_BASELINE_480P_29FPS_VIDEO_REPRESENTATION_ID)
.runTest(getActivity(), getInstrumentation()); .run();
} }
// Internal. // Internal.
......
...@@ -137,6 +137,16 @@ public final class DashTestData { ...@@ -137,6 +137,16 @@ public final class DashTestData {
WIDEVINE_VP9_180P_VIDEO_REPRESENTATION_ID, WIDEVINE_VP9_180P_VIDEO_REPRESENTATION_ID,
WIDEVINE_VP9_360P_VIDEO_REPRESENTATION_ID}; WIDEVINE_VP9_360P_VIDEO_REPRESENTATION_ID};
private static final String WIDEVINE_LICENSE_URL =
"https://proxy.uat.widevine.com/proxy?provider=widevine_test&video_id=";
private static final String WIDEVINE_SW_CRYPTO_CONTENT_ID = "exoplayer_test_1";
private static final String WIDEVINE_HW_SECURE_DECODE_CONTENT_ID = "exoplayer_test_2";
public static String getWidevineLicenseUrl(boolean useL1Widevine) {
return WIDEVINE_LICENSE_URL
+ (useL1Widevine ? WIDEVINE_HW_SECURE_DECODE_CONTENT_ID : WIDEVINE_SW_CRYPTO_CONTENT_ID);
}
private DashTestData() { private DashTestData() {
} }
......
...@@ -66,14 +66,11 @@ import java.util.Arrays; ...@@ -66,14 +66,11 @@ import java.util.Arrays;
import java.util.List; import java.util.List;
import junit.framework.AssertionFailedError; import junit.framework.AssertionFailedError;
/** /** {@link DashHostedTest} builder. */
* A {@link HostedTest} for DASH playback tests. public final class DashTestRunner {
*/
@TargetApi(16)
public final class DashHostedTest extends ExoHostedTest {
/** {@link DashHostedTest} builder. */ static final int VIDEO_RENDERER_INDEX = 0;
public static final class Builder { static final int AUDIO_RENDERER_INDEX = 1;
private static final long TEST_TIMEOUT_MS = 5 * 60 * 1000; private static final long TEST_TIMEOUT_MS = 5 * 60 * 1000;
...@@ -84,7 +81,20 @@ public final class DashHostedTest extends ExoHostedTest { ...@@ -84,7 +81,20 @@ public final class DashHostedTest extends ExoHostedTest {
// if the device advertises support for them. // if the device advertises support for them.
private static final boolean ALLOW_ADDITIONAL_VIDEO_FORMATS = Util.SDK_INT >= 24; private static final boolean ALLOW_ADDITIONAL_VIDEO_FORMATS = Util.SDK_INT >= 24;
private static final String AUDIO_TAG_SUFFIX = ":Audio";
private static final String VIDEO_TAG_SUFFIX = ":Video";
private static final int MIN_LOADABLE_RETRY_COUNT = 10;
private static final int MAX_CONSECUTIVE_DROPPED_VIDEO_FRAMES = 10;
private static final float MAX_DROPPED_VIDEO_FRAME_FRACTION = 0.01f;
private static final String WIDEVINE_SECURITY_LEVEL_1 = "L1";
private static final String WIDEVINE_SECURITY_LEVEL_3 = "L3";
private static final String SECURITY_LEVEL_PROPERTY = "securityLevel";
private final String tag; private final String tag;
private final HostActivity activity;
private final Instrumentation instrumentation;
private String streamName; private String streamName;
private boolean fullPlaybackNoSeeking; private boolean fullPlaybackNoSeeking;
...@@ -96,65 +106,81 @@ public final class DashHostedTest extends ExoHostedTest { ...@@ -96,65 +106,81 @@ public final class DashHostedTest extends ExoHostedTest {
private String manifestUrl; private String manifestUrl;
private boolean useL1Widevine; private boolean useL1Widevine;
private String widevineLicenseUrl; private String widevineLicenseUrl;
private DataSource.Factory dataSourceFactory;
public Builder(String tag) { @TargetApi(18)
@SuppressWarnings("ResourceType")
public static boolean isL1WidevineAvailable(String mimeType) {
try {
// Force L3 if secure decoder is not available.
if (MediaCodecUtil.getDecoderInfo(mimeType, true) == null) {
return false;
}
MediaDrm mediaDrm = new MediaDrm(WIDEVINE_UUID);
String securityProperty = mediaDrm.getPropertyString(SECURITY_LEVEL_PROPERTY);
mediaDrm.release();
return WIDEVINE_SECURITY_LEVEL_1.equals(securityProperty);
} catch (MediaCodecUtil.DecoderQueryException | UnsupportedSchemeException e) {
throw new IllegalStateException(e);
}
}
public DashTestRunner(String tag, HostActivity activity, Instrumentation instrumentation) {
this.tag = tag; this.tag = tag;
this.activity = activity;
this.instrumentation = instrumentation;
} }
public Builder setStreamName(String streamName) { public DashTestRunner setStreamName(String streamName) {
this.streamName = streamName; this.streamName = streamName;
return this; return this;
} }
public Builder setFullPlaybackNoSeeking(boolean fullPlaybackNoSeeking) { public DashTestRunner setFullPlaybackNoSeeking(boolean fullPlaybackNoSeeking) {
this.fullPlaybackNoSeeking = fullPlaybackNoSeeking; this.fullPlaybackNoSeeking = fullPlaybackNoSeeking;
return this; return this;
} }
public Builder setCanIncludeAdditionalVideoFormats( public DashTestRunner setCanIncludeAdditionalVideoFormats(
boolean canIncludeAdditionalVideoFormats) { boolean canIncludeAdditionalVideoFormats) {
this.canIncludeAdditionalVideoFormats = canIncludeAdditionalVideoFormats this.canIncludeAdditionalVideoFormats = canIncludeAdditionalVideoFormats
&& ALLOW_ADDITIONAL_VIDEO_FORMATS; && ALLOW_ADDITIONAL_VIDEO_FORMATS;
return this; return this;
} }
public Builder setActionSchedule(ActionSchedule actionSchedule) { public DashTestRunner setActionSchedule(ActionSchedule actionSchedule) {
this.actionSchedule = actionSchedule; this.actionSchedule = actionSchedule;
return this; return this;
} }
public Builder setOfflineLicenseKeySetId(byte[] offlineLicenseKeySetId) { public DashTestRunner setOfflineLicenseKeySetId(byte[] offlineLicenseKeySetId) {
this.offlineLicenseKeySetId = offlineLicenseKeySetId; this.offlineLicenseKeySetId = offlineLicenseKeySetId;
return this; return this;
} }
public Builder setAudioVideoFormats(String audioFormat, String... videoFormats) { public DashTestRunner setAudioVideoFormats(String audioFormat, String... videoFormats) {
this.audioFormat = audioFormat; this.audioFormat = audioFormat;
this.videoFormats = videoFormats; this.videoFormats = videoFormats;
return this; return this;
} }
public Builder setManifestUrl(String manifestUrl) { public DashTestRunner setManifestUrl(String manifestUrl) {
this.manifestUrl = manifestUrl; this.manifestUrl = manifestUrl;
return this; return this;
} }
public Builder setWidevineMimeType(String mimeType) { public DashTestRunner setWidevineMimeType(String mimeType) {
this.useL1Widevine = isL1WidevineAvailable(mimeType); this.useL1Widevine = isL1WidevineAvailable(mimeType);
this.widevineLicenseUrl = getWidevineLicenseUrl(useL1Widevine); this.widevineLicenseUrl = DashTestData.getWidevineLicenseUrl(useL1Widevine);
return this; return this;
} }
private DashHostedTest createDashHostedTest(boolean canIncludeAdditionalVideoFormats, public DashTestRunner setDataSourceFactory(DataSource.Factory dataSourceFactory) {
boolean isCddLimitedRetry, Instrumentation instrumentation) { this.dataSourceFactory = dataSourceFactory;
MetricsLogger metricsLogger = MetricsLogger.Factory.createDefault(instrumentation, tag, return this;
REPORT_NAME, REPORT_OBJECT_NAME);
return new DashHostedTest(tag, streamName, manifestUrl, metricsLogger, fullPlaybackNoSeeking,
audioFormat, canIncludeAdditionalVideoFormats, isCddLimitedRetry, actionSchedule,
offlineLicenseKeySetId, widevineLicenseUrl, useL1Widevine, videoFormats);
} }
public void runTest(HostActivity activity, Instrumentation instrumentation) { public void run() {
DashHostedTest test = createDashHostedTest(canIncludeAdditionalVideoFormats, false, DashHostedTest test = createDashHostedTest(canIncludeAdditionalVideoFormats, false,
instrumentation); instrumentation);
activity.runTest(test, TEST_TIMEOUT_MS); activity.runTest(test, TEST_TIMEOUT_MS);
...@@ -165,24 +191,21 @@ public final class DashHostedTest extends ExoHostedTest { ...@@ -165,24 +191,21 @@ public final class DashHostedTest extends ExoHostedTest {
} }
} }
private DashHostedTest createDashHostedTest(boolean canIncludeAdditionalVideoFormats,
boolean isCddLimitedRetry, Instrumentation instrumentation) {
MetricsLogger metricsLogger = MetricsLogger.Factory.createDefault(instrumentation, tag,
REPORT_NAME, REPORT_OBJECT_NAME);
return new DashHostedTest(tag, streamName, manifestUrl, metricsLogger, fullPlaybackNoSeeking,
audioFormat, canIncludeAdditionalVideoFormats, isCddLimitedRetry, actionSchedule,
offlineLicenseKeySetId, widevineLicenseUrl, useL1Widevine, dataSourceFactory,
videoFormats);
} }
private static final String AUDIO_TAG_SUFFIX = ":Audio"; /**
private static final String VIDEO_TAG_SUFFIX = ":Video"; * A {@link HostedTest} for DASH playback tests.
static final int VIDEO_RENDERER_INDEX = 0; */
static final int AUDIO_RENDERER_INDEX = 1; @TargetApi(16)
private static final class DashHostedTest extends ExoHostedTest {
private static final int MIN_LOADABLE_RETRY_COUNT = 10;
private static final int MAX_CONSECUTIVE_DROPPED_VIDEO_FRAMES = 10;
private static final float MAX_DROPPED_VIDEO_FRAME_FRACTION = 0.01f;
private static final String WIDEVINE_LICENSE_URL =
"https://proxy.uat.widevine.com/proxy?provider=widevine_test&video_id=";
private static final String WIDEVINE_SW_CRYPTO_CONTENT_ID = "exoplayer_test_1";
private static final String WIDEVINE_HW_SECURE_DECODE_CONTENT_ID = "exoplayer_test_2";
private static final String WIDEVINE_SECURITY_LEVEL_1 = "L1";
private static final String WIDEVINE_SECURITY_LEVEL_3 = "L3";
private static final String SECURITY_LEVEL_PROPERTY = "securityLevel";
private final String streamName; private final String streamName;
private final String manifestUrl; private final String manifestUrl;
...@@ -193,30 +216,9 @@ public final class DashHostedTest extends ExoHostedTest { ...@@ -193,30 +216,9 @@ public final class DashHostedTest extends ExoHostedTest {
private final byte[] offlineLicenseKeySetId; private final byte[] offlineLicenseKeySetId;
private final String widevineLicenseUrl; private final String widevineLicenseUrl;
private final boolean useL1Widevine; private final boolean useL1Widevine;
private final DataSource.Factory dataSourceFactory;
boolean needsCddLimitedRetry; private boolean needsCddLimitedRetry;
public static String getWidevineLicenseUrl(boolean useL1Widevine) {
return WIDEVINE_LICENSE_URL
+ (useL1Widevine ? WIDEVINE_HW_SECURE_DECODE_CONTENT_ID : WIDEVINE_SW_CRYPTO_CONTENT_ID);
}
@TargetApi(18)
@SuppressWarnings("ResourceType")
public static boolean isL1WidevineAvailable(String mimeType) {
try {
// Force L3 if secure decoder is not available.
if (MediaCodecUtil.getDecoderInfo(mimeType, true) == null) {
return false;
}
MediaDrm mediaDrm = new MediaDrm(WIDEVINE_UUID);
String securityProperty = mediaDrm.getPropertyString(SECURITY_LEVEL_PROPERTY);
mediaDrm.release();
return WIDEVINE_SECURITY_LEVEL_1.equals(securityProperty);
} catch (MediaCodecUtil.DecoderQueryException | UnsupportedSchemeException e) {
throw new IllegalStateException(e);
}
}
/** /**
* @param tag A tag to use for logging. * @param tag A tag to use for logging.
...@@ -233,13 +235,14 @@ public final class DashHostedTest extends ExoHostedTest { ...@@ -233,13 +235,14 @@ public final class DashHostedTest extends ExoHostedTest {
* @param widevineLicenseUrl If the video is Widevine encrypted, this is the license url * @param widevineLicenseUrl If the video is Widevine encrypted, this is the license url
* otherwise null. * otherwise null.
* @param useL1Widevine Whether to use L1 Widevine. * @param useL1Widevine Whether to use L1 Widevine.
* @param dataSourceFactory If not null, used to load manifest and media.
* @param videoFormats The video formats. * @param videoFormats The video formats.
*/ */
private DashHostedTest(String tag, String streamName, String manifestUrl, private DashHostedTest(String tag, String streamName, String manifestUrl,
MetricsLogger metricsLogger, boolean fullPlaybackNoSeeking, String audioFormat, MetricsLogger metricsLogger, boolean fullPlaybackNoSeeking, String audioFormat,
boolean canIncludeAdditionalVideoFormats, boolean isCddLimitedRetry, boolean canIncludeAdditionalVideoFormats, boolean isCddLimitedRetry,
ActionSchedule actionSchedule, byte[] offlineLicenseKeySetId, String widevineLicenseUrl, ActionSchedule actionSchedule, byte[] offlineLicenseKeySetId, String widevineLicenseUrl,
boolean useL1Widevine, String... videoFormats) { boolean useL1Widevine, DataSource.Factory dataSourceFactory, String... videoFormats) {
super(tag, fullPlaybackNoSeeking); super(tag, fullPlaybackNoSeeking);
Assertions.checkArgument(!(isCddLimitedRetry && canIncludeAdditionalVideoFormats)); Assertions.checkArgument(!(isCddLimitedRetry && canIncludeAdditionalVideoFormats));
this.streamName = streamName; this.streamName = streamName;
...@@ -250,6 +253,7 @@ public final class DashHostedTest extends ExoHostedTest { ...@@ -250,6 +253,7 @@ public final class DashHostedTest extends ExoHostedTest {
this.offlineLicenseKeySetId = offlineLicenseKeySetId; this.offlineLicenseKeySetId = offlineLicenseKeySetId;
this.widevineLicenseUrl = widevineLicenseUrl; this.widevineLicenseUrl = widevineLicenseUrl;
this.useL1Widevine = useL1Widevine; this.useL1Widevine = useL1Widevine;
this.dataSourceFactory = dataSourceFactory;
trackSelector = new DashTestTrackSelector(tag, audioFormat, videoFormats, trackSelector = new DashTestTrackSelector(tag, audioFormat, videoFormats,
canIncludeAdditionalVideoFormats); canIncludeAdditionalVideoFormats);
if (actionSchedule != null) { if (actionSchedule != null) {
...@@ -301,9 +305,11 @@ public final class DashHostedTest extends ExoHostedTest { ...@@ -301,9 +305,11 @@ public final class DashHostedTest extends ExoHostedTest {
@Override @Override
protected MediaSource buildSource(HostActivity host, String userAgent, protected MediaSource buildSource(HostActivity host, String userAgent,
TransferListener<? super DataSource> mediaTransferListener) { TransferListener<? super DataSource> mediaTransferListener) {
DataSource.Factory manifestDataSourceFactory = new DefaultDataSourceFactory(host, userAgent); DataSource.Factory manifestDataSourceFactory = dataSourceFactory != null
DataSource.Factory mediaDataSourceFactory = new DefaultDataSourceFactory(host, userAgent, ? dataSourceFactory : new DefaultDataSourceFactory(host, userAgent);
mediaTransferListener); DataSource.Factory mediaDataSourceFactory = dataSourceFactory != null
? dataSourceFactory
: new DefaultDataSourceFactory(host, userAgent, mediaTransferListener);
Uri manifestUri = Uri.parse(manifestUrl); Uri manifestUri = Uri.parse(manifestUrl);
DefaultDashChunkSource.Factory chunkSourceFactory = new DefaultDashChunkSource.Factory( DefaultDashChunkSource.Factory chunkSourceFactory = new DefaultDashChunkSource.Factory(
mediaDataSourceFactory); mediaDataSourceFactory);
...@@ -330,8 +336,10 @@ public final class DashHostedTest extends ExoHostedTest { ...@@ -330,8 +336,10 @@ public final class DashHostedTest extends ExoHostedTest {
protected void assertPassed(DecoderCounters audioCounters, DecoderCounters videoCounters) { protected void assertPassed(DecoderCounters audioCounters, DecoderCounters videoCounters) {
if (fullPlaybackNoSeeking) { if (fullPlaybackNoSeeking) {
// We shouldn't have skipped any output buffers. // We shouldn't have skipped any output buffers.
DecoderCountersUtil.assertSkippedOutputBufferCount(tag + AUDIO_TAG_SUFFIX, audioCounters, 0); DecoderCountersUtil
DecoderCountersUtil.assertSkippedOutputBufferCount(tag + VIDEO_TAG_SUFFIX, videoCounters, 0); .assertSkippedOutputBufferCount(tag + AUDIO_TAG_SUFFIX, audioCounters, 0);
DecoderCountersUtil
.assertSkippedOutputBufferCount(tag + VIDEO_TAG_SUFFIX, videoCounters, 0);
// We allow one fewer output buffer due to the way that MediaCodecRenderer and the // We allow one fewer output buffer due to the way that MediaCodecRenderer and the
// underlying decoders handle the end of stream. This should be tightened up in the future. // underlying decoders handle the end of stream. This should be tightened up in the future.
DecoderCountersUtil.assertTotalOutputBufferCount(tag + AUDIO_TAG_SUFFIX, audioCounters, DecoderCountersUtil.assertTotalOutputBufferCount(tag + AUDIO_TAG_SUFFIX, audioCounters,
...@@ -360,6 +368,8 @@ public final class DashHostedTest extends ExoHostedTest { ...@@ -360,6 +368,8 @@ public final class DashHostedTest extends ExoHostedTest {
} }
} }
}
private static final class DashTestTrackSelector extends MappingTrackSelector { private static final class DashTestTrackSelector extends MappingTrackSelector {
private final String tag; private final String tag;
......
...@@ -37,7 +37,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa ...@@ -37,7 +37,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa
private static final String TAG = "DashWidevineOfflineTest"; private static final String TAG = "DashWidevineOfflineTest";
private static final String USER_AGENT = "ExoPlayerPlaybackTests"; private static final String USER_AGENT = "ExoPlayerPlaybackTests";
private DashHostedTest.Builder builder; private DashTestRunner testRunner;
private DefaultHttpDataSourceFactory httpDataSourceFactory; private DefaultHttpDataSourceFactory httpDataSourceFactory;
private OfflineLicenseHelper<FrameworkMediaCrypto> offlineLicenseHelper; private OfflineLicenseHelper<FrameworkMediaCrypto> offlineLicenseHelper;
private byte[] offlineLicenseKeySetId; private byte[] offlineLicenseKeySetId;
...@@ -49,7 +49,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa ...@@ -49,7 +49,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp(); super.setUp();
builder = new DashHostedTest.Builder(TAG) testRunner = new DashTestRunner(TAG, getActivity(), getInstrumentation())
.setStreamName("test_widevine_h264_fixed_offline") .setStreamName("test_widevine_h264_fixed_offline")
.setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST) .setManifestUrl(DashTestData.WIDEVINE_H264_MANIFEST)
.setWidevineMimeType(MimeTypes.VIDEO_H264) .setWidevineMimeType(MimeTypes.VIDEO_H264)
...@@ -58,8 +58,8 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa ...@@ -58,8 +58,8 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa
.setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID, .setAudioVideoFormats(DashTestData.WIDEVINE_AAC_AUDIO_REPRESENTATION_ID,
DashTestData.WIDEVINE_H264_CDD_FIXED); DashTestData.WIDEVINE_H264_CDD_FIXED);
boolean useL1Widevine = DashHostedTest.isL1WidevineAvailable(MimeTypes.VIDEO_H264); boolean useL1Widevine = DashTestRunner.isL1WidevineAvailable(MimeTypes.VIDEO_H264);
String widevineLicenseUrl = DashHostedTest.getWidevineLicenseUrl(useL1Widevine); String widevineLicenseUrl = DashTestData.getWidevineLicenseUrl(useL1Widevine);
httpDataSourceFactory = new DefaultHttpDataSourceFactory(USER_AGENT); httpDataSourceFactory = new DefaultHttpDataSourceFactory(USER_AGENT);
offlineLicenseHelper = OfflineLicenseHelper.newWidevineInstance(widevineLicenseUrl, offlineLicenseHelper = OfflineLicenseHelper.newWidevineInstance(widevineLicenseUrl,
httpDataSourceFactory); httpDataSourceFactory);
...@@ -67,12 +67,15 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa ...@@ -67,12 +67,15 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa
@Override @Override
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
testRunner = null;
if (offlineLicenseKeySetId != null) { if (offlineLicenseKeySetId != null) {
releaseLicense(); releaseLicense();
} }
if (offlineLicenseHelper != null) { if (offlineLicenseHelper != null) {
offlineLicenseHelper.releaseResources(); offlineLicenseHelper.releaseResources();
} }
offlineLicenseHelper = null;
httpDataSourceFactory = null;
super.tearDown(); super.tearDown();
} }
...@@ -83,7 +86,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa ...@@ -83,7 +86,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa
return; // Pass. return; // Pass.
} }
downloadLicense(); downloadLicense();
builder.runTest(getActivity(), getInstrumentation()); testRunner.run();
// Renew license after playback should still work // Renew license after playback should still work
offlineLicenseKeySetId = offlineLicenseHelper.renew(offlineLicenseKeySetId); offlineLicenseKeySetId = offlineLicenseHelper.renew(offlineLicenseKeySetId);
...@@ -98,7 +101,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa ...@@ -98,7 +101,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa
releaseLicense(); // keySetId no longer valid. releaseLicense(); // keySetId no longer valid.
try { try {
builder.runTest(getActivity(), getInstrumentation()); testRunner.run();
fail("Playback should fail because the license has been released."); fail("Playback should fail because the license has been released.");
} catch (Throwable e) { } catch (Throwable e) {
// Get the root cause // Get the root cause
...@@ -138,7 +141,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa ...@@ -138,7 +141,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa
} }
// DefaultDrmSessionManager should renew the license and stream play fine // DefaultDrmSessionManager should renew the license and stream play fine
builder.runTest(getActivity(), getInstrumentation()); testRunner.run();
} }
public void testWidevineOfflineLicenseExpiresOnPause() throws Exception { public void testWidevineOfflineLicenseExpiresOnPause() throws Exception {
...@@ -157,9 +160,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa ...@@ -157,9 +160,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa
.delay(3000).pause().delay(licenseDuration * 1000 + 2000).play().build(); .delay(3000).pause().delay(licenseDuration * 1000 + 2000).play().build();
// DefaultDrmSessionManager should renew the license and stream play fine // DefaultDrmSessionManager should renew the license and stream play fine
builder testRunner.setActionSchedule(schedule).run();
.setActionSchedule(schedule)
.runTest(getActivity(), getInstrumentation());
} }
private void downloadLicense() throws InterruptedException, DrmSessionException, IOException { private void downloadLicense() throws InterruptedException, DrmSessionException, IOException {
...@@ -167,7 +168,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa ...@@ -167,7 +168,7 @@ public final class DashWidevineOfflineTest extends ActivityInstrumentationTestCa
httpDataSourceFactory.createDataSource(), DashTestData.WIDEVINE_H264_MANIFEST); httpDataSourceFactory.createDataSource(), DashTestData.WIDEVINE_H264_MANIFEST);
Assert.assertNotNull(offlineLicenseKeySetId); Assert.assertNotNull(offlineLicenseKeySetId);
Assert.assertTrue(offlineLicenseKeySetId.length > 0); Assert.assertTrue(offlineLicenseKeySetId.length > 0);
builder.setOfflineLicenseKeySetId(offlineLicenseKeySetId); testRunner.setOfflineLicenseKeySetId(offlineLicenseKeySetId);
} }
private void releaseLicense() throws DrmSessionException { private void releaseLicense() throws DrmSessionException {
......
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