diff --git a/library/core/build.gradle b/library/core/build.gradle index bb0adaa4c7..ad1c150fe7 100644 --- a/library/core/build.gradle +++ b/library/core/build.gradle @@ -22,6 +22,7 @@ android { targetSdkVersion project.ext.targetSdkVersion } + // Workaround to prevent circular dependency on project :testutils. sourceSets { androidTest { java.srcDirs += "../../testutils/src/main/java/" diff --git a/library/dash/build.gradle b/library/dash/build.gradle index ebad5a8603..36d3edfbae 100644 --- a/library/dash/build.gradle +++ b/library/dash/build.gradle @@ -22,12 +22,6 @@ android { targetSdkVersion project.ext.targetSdkVersion } - sourceSets { - androidTest { - java.srcDirs += "../../testutils/src/main/java/" - } - } - buildTypes { debug { testCoverageEnabled = true @@ -39,6 +33,7 @@ dependencies { compile project(':library-core') compile 'com.android.support:support-annotations:' + supportLibraryVersion compile 'com.android.support:support-core-utils:' + supportLibraryVersion + androidTestCompile project(':testutils') androidTestCompile 'com.google.dexmaker:dexmaker:' + dexmakerVersion androidTestCompile 'com.google.dexmaker:dexmaker-mockito:' + dexmakerVersion androidTestCompile 'org.mockito:mockito-core:' + mockitoVersion diff --git a/library/smoothstreaming/build.gradle b/library/smoothstreaming/build.gradle index 81f8234672..28ebd74758 100644 --- a/library/smoothstreaming/build.gradle +++ b/library/smoothstreaming/build.gradle @@ -22,12 +22,6 @@ android { targetSdkVersion project.ext.targetSdkVersion } - sourceSets { - androidTest { - java.srcDirs += "../../testutils/src/main/java/" - } - } - buildTypes { debug { testCoverageEnabled = true @@ -38,6 +32,7 @@ android { dependencies { compile project(':library-core') compile 'com.android.support:support-annotations:' + supportLibraryVersion + androidTestCompile project(':testutils') androidTestCompile 'com.google.dexmaker:dexmaker:' + dexmakerVersion androidTestCompile 'com.google.dexmaker:dexmaker-mockito:' + dexmakerVersion androidTestCompile 'org.mockito:mockito-core:' + mockitoVersion diff --git a/playbacktests/build.gradle b/playbacktests/build.gradle index 6a09eac49e..199077f2b2 100644 --- a/playbacktests/build.gradle +++ b/playbacktests/build.gradle @@ -24,7 +24,8 @@ android { } dependencies { - compile project(':library-core') + androidTestCompile project(':library-core') androidTestCompile project(':library-dash') androidTestCompile project(':library-hls') + androidTestCompile project(':testutils') } diff --git a/playbacktests/src/androidTest/AndroidManifest.xml b/playbacktests/src/androidTest/AndroidManifest.xml index 64b927655f..053fe4e61c 100644 --- a/playbacktests/src/androidTest/AndroidManifest.xml +++ b/playbacktests/src/androidTest/AndroidManifest.xml @@ -28,7 +28,7 @@ tools:ignore="MissingApplicationIcon,HardcodedDebugMode"> - diff --git a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashStreamingTest.java b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashStreamingTest.java index 24f73e9d08..669241e65c 100644 --- a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashStreamingTest.java +++ b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashStreamingTest.java @@ -20,8 +20,8 @@ import com.google.android.exoplayer2.ExoPlayer; import com.google.android.exoplayer2.mediacodec.MediaCodecInfo; import com.google.android.exoplayer2.mediacodec.MediaCodecUtil; import com.google.android.exoplayer2.mediacodec.MediaCodecUtil.DecoderQueryException; -import com.google.android.exoplayer2.playbacktests.util.ActionSchedule; -import com.google.android.exoplayer2.playbacktests.util.HostActivity; +import com.google.android.exoplayer2.testutil.ActionSchedule; +import com.google.android.exoplayer2.testutil.HostActivity; import com.google.android.exoplayer2.util.MimeTypes; import com.google.android.exoplayer2.util.Util; diff --git a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java index 381a873d94..7d80acd9e4 100644 --- a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java +++ b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashTestRunner.java @@ -38,18 +38,18 @@ import com.google.android.exoplayer2.drm.HttpMediaDrmCallback; import com.google.android.exoplayer2.drm.MediaDrmCallback; import com.google.android.exoplayer2.drm.UnsupportedDrmException; import com.google.android.exoplayer2.mediacodec.MediaCodecUtil; -import com.google.android.exoplayer2.playbacktests.util.ActionSchedule; -import com.google.android.exoplayer2.playbacktests.util.DebugRenderersFactory; -import com.google.android.exoplayer2.playbacktests.util.DecoderCountersUtil; -import com.google.android.exoplayer2.playbacktests.util.ExoHostedTest; -import com.google.android.exoplayer2.playbacktests.util.HostActivity; -import com.google.android.exoplayer2.playbacktests.util.HostActivity.HostedTest; -import com.google.android.exoplayer2.playbacktests.util.MetricsLogger; import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.TrackGroup; import com.google.android.exoplayer2.source.TrackGroupArray; import com.google.android.exoplayer2.source.dash.DashMediaSource; import com.google.android.exoplayer2.source.dash.DefaultDashChunkSource; +import com.google.android.exoplayer2.testutil.ActionSchedule; +import com.google.android.exoplayer2.testutil.DebugRenderersFactory; +import com.google.android.exoplayer2.testutil.DecoderCountersUtil; +import com.google.android.exoplayer2.testutil.ExoHostedTest; +import com.google.android.exoplayer2.testutil.HostActivity; +import com.google.android.exoplayer2.testutil.HostActivity.HostedTest; +import com.google.android.exoplayer2.testutil.MetricsLogger; import com.google.android.exoplayer2.trackselection.FixedTrackSelection; import com.google.android.exoplayer2.trackselection.MappingTrackSelector; import com.google.android.exoplayer2.trackselection.RandomTrackSelection; diff --git a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashWidevineOfflineTest.java b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashWidevineOfflineTest.java index 44f25b49d9..e43eab5dc3 100644 --- a/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashWidevineOfflineTest.java +++ b/playbacktests/src/androidTest/java/com/google/android/exoplayer2/playbacktests/gts/DashWidevineOfflineTest.java @@ -22,10 +22,10 @@ import com.google.android.exoplayer2.drm.DrmInitData; import com.google.android.exoplayer2.drm.DrmSession.DrmSessionException; import com.google.android.exoplayer2.drm.FrameworkMediaCrypto; import com.google.android.exoplayer2.drm.OfflineLicenseHelper; -import com.google.android.exoplayer2.playbacktests.util.ActionSchedule; -import com.google.android.exoplayer2.playbacktests.util.HostActivity; import com.google.android.exoplayer2.source.dash.DashUtil; import com.google.android.exoplayer2.source.dash.manifest.DashManifest; +import com.google.android.exoplayer2.testutil.ActionSchedule; +import com.google.android.exoplayer2.testutil.HostActivity; import com.google.android.exoplayer2.upstream.DataSource; import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory; import com.google.android.exoplayer2.util.MimeTypes; diff --git a/testutils/src/main/AndroidManifest.xml b/testutils/src/main/AndroidManifest.xml index 31db3e2f12..ef1411d737 100644 --- a/testutils/src/main/AndroidManifest.xml +++ b/testutils/src/main/AndroidManifest.xml @@ -14,4 +14,4 @@ limitations under the License. --> - + diff --git a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/Action.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/Action.java similarity index 98% rename from playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/Action.java rename to testutils/src/main/java/com/google/android/exoplayer2/testutil/Action.java index edb0fa59bf..b1c6f081cf 100644 --- a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/Action.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/Action.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.playbacktests.util; +package com.google.android.exoplayer2.testutil; import android.util.Log; import android.view.Surface; diff --git a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/ActionSchedule.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ActionSchedule.java similarity index 92% rename from playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/ActionSchedule.java rename to testutils/src/main/java/com/google/android/exoplayer2/testutil/ActionSchedule.java index 94204ca1b5..ede4dc5553 100644 --- a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/ActionSchedule.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ActionSchedule.java @@ -13,17 +13,17 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.playbacktests.util; +package com.google.android.exoplayer2.testutil; import android.os.Handler; import android.view.Surface; import com.google.android.exoplayer2.SimpleExoPlayer; -import com.google.android.exoplayer2.playbacktests.util.Action.ClearVideoSurface; -import com.google.android.exoplayer2.playbacktests.util.Action.Seek; -import com.google.android.exoplayer2.playbacktests.util.Action.SetPlayWhenReady; -import com.google.android.exoplayer2.playbacktests.util.Action.SetRendererDisabled; -import com.google.android.exoplayer2.playbacktests.util.Action.SetVideoSurface; -import com.google.android.exoplayer2.playbacktests.util.Action.Stop; +import com.google.android.exoplayer2.testutil.Action.ClearVideoSurface; +import com.google.android.exoplayer2.testutil.Action.Seek; +import com.google.android.exoplayer2.testutil.Action.SetPlayWhenReady; +import com.google.android.exoplayer2.testutil.Action.SetRendererDisabled; +import com.google.android.exoplayer2.testutil.Action.SetVideoSurface; +import com.google.android.exoplayer2.testutil.Action.Stop; import com.google.android.exoplayer2.trackselection.MappingTrackSelector; /** diff --git a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/DebugRenderersFactory.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/DebugRenderersFactory.java similarity index 98% rename from playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/DebugRenderersFactory.java rename to testutils/src/main/java/com/google/android/exoplayer2/testutil/DebugRenderersFactory.java index 6cb7673ebd..af7c1a3e2a 100644 --- a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/DebugRenderersFactory.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/DebugRenderersFactory.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.playbacktests.util; +package com.google.android.exoplayer2.testutil; import android.annotation.TargetApi; import android.content.Context; diff --git a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/DecoderCountersUtil.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/DecoderCountersUtil.java similarity index 97% rename from playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/DecoderCountersUtil.java rename to testutils/src/main/java/com/google/android/exoplayer2/testutil/DecoderCountersUtil.java index aafb828345..448ec79c2d 100644 --- a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/DecoderCountersUtil.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/DecoderCountersUtil.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.playbacktests.util; +package com.google.android.exoplayer2.testutil; import com.google.android.exoplayer2.decoder.DecoderCounters; import junit.framework.TestCase; diff --git a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/ExoHostedTest.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java similarity index 98% rename from playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/ExoHostedTest.java rename to testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java index 56f11d86e3..7af3e990af 100644 --- a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/ExoHostedTest.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/ExoHostedTest.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.playbacktests.util; +package com.google.android.exoplayer2.testutil; import android.os.Handler; import android.os.SystemClock; @@ -33,9 +33,9 @@ import com.google.android.exoplayer2.audio.AudioTrack; import com.google.android.exoplayer2.decoder.DecoderCounters; import com.google.android.exoplayer2.drm.DrmSessionManager; import com.google.android.exoplayer2.drm.FrameworkMediaCrypto; -import com.google.android.exoplayer2.playbacktests.util.HostActivity.HostedTest; import com.google.android.exoplayer2.source.MediaSource; import com.google.android.exoplayer2.source.TrackGroupArray; +import com.google.android.exoplayer2.testutil.HostActivity.HostedTest; import com.google.android.exoplayer2.trackselection.AdaptiveTrackSelection; import com.google.android.exoplayer2.trackselection.DefaultTrackSelector; import com.google.android.exoplayer2.trackselection.MappingTrackSelector; diff --git a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/HostActivity.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/HostActivity.java similarity index 96% rename from playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/HostActivity.java rename to testutils/src/main/java/com/google/android/exoplayer2/testutil/HostActivity.java index 9c2ced3a8a..ecbe00b487 100644 --- a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/HostActivity.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/HostActivity.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.playbacktests.util; +package com.google.android.exoplayer2.testutil; import static junit.framework.Assert.fail; @@ -32,7 +32,6 @@ import android.view.Surface; import android.view.SurfaceHolder; import android.view.SurfaceView; import android.view.Window; -import com.google.android.exoplayer2.playbacktests.R; import com.google.android.exoplayer2.util.Assertions; import com.google.android.exoplayer2.util.Util; @@ -142,8 +141,9 @@ public final class HostActivity extends Activity implements SurfaceHolder.Callba public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); - setContentView(R.layout.host_activity); - surfaceView = (SurfaceView) findViewById(R.id.surface_view); + setContentView(getResources().getIdentifier("host_activity", "layout", getPackageName())); + surfaceView = (SurfaceView) findViewById( + getResources().getIdentifier("surface_view", "id", getPackageName())); surfaceView.getHolder().addCallback(this); mainHandler = new Handler(); checkCanStopRunnable = new CheckCanStopRunnable(); diff --git a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/LogcatMetricsLogger.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/LogcatMetricsLogger.java similarity index 95% rename from playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/LogcatMetricsLogger.java rename to testutils/src/main/java/com/google/android/exoplayer2/testutil/LogcatMetricsLogger.java index 4c44f77143..fdff47dd2c 100644 --- a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/LogcatMetricsLogger.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/LogcatMetricsLogger.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.playbacktests.util; +package com.google.android.exoplayer2.testutil; import android.util.Log; diff --git a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/MetricsLogger.java b/testutils/src/main/java/com/google/android/exoplayer2/testutil/MetricsLogger.java similarity index 97% rename from playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/MetricsLogger.java rename to testutils/src/main/java/com/google/android/exoplayer2/testutil/MetricsLogger.java index 6e36ff728f..64d1944927 100644 --- a/playbacktests/src/main/java/com/google/android/exoplayer2/playbacktests/util/MetricsLogger.java +++ b/testutils/src/main/java/com/google/android/exoplayer2/testutil/MetricsLogger.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.google.android.exoplayer2.playbacktests.util; +package com.google.android.exoplayer2.testutil; import android.app.Instrumentation; diff --git a/playbacktests/src/main/res/layout/host_activity.xml b/testutils/src/main/res/layout/host_activity.xml similarity index 100% rename from playbacktests/src/main/res/layout/host_activity.xml rename to testutils/src/main/res/layout/host_activity.xml