From 8a606fd88407b55a62347944926d0ac073043f92 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABtan=20Muller?= Date: Fri, 8 Mar 2024 09:16:55 +0100 Subject: [PATCH] Remove `TestPillarboxRunHelper.runUntilStartOfMediaItem` in favor of `TestPillarboxRunHelper.playUntilStartOfMediaItem` --- pillarbox-core-business/build.gradle.kts | 2 - .../CommandersActTrackerIntegrationTest.kt | 25 +++++----- .../test/utils/TestPillarboxRunHelper.kt | 49 ------------------- 3 files changed, 12 insertions(+), 64 deletions(-) diff --git a/pillarbox-core-business/build.gradle.kts b/pillarbox-core-business/build.gradle.kts index 2f03aad46..c306ae3ee 100644 --- a/pillarbox-core-business/build.gradle.kts +++ b/pillarbox-core-business/build.gradle.kts @@ -85,8 +85,6 @@ dependencies { implementation(libs.okhttp.logging.interceptor) api(libs.tagcommander.core) - testImplementation(project(":pillarbox-player-testutils")) - testImplementation(libs.androidx.media3.test.utils) testImplementation(libs.androidx.media3.test.utils.robolectric) testImplementation(libs.androidx.test.core) diff --git a/pillarbox-core-business/src/test/java/ch/srgssr/pillarbox/core/business/tracker/commandersact/CommandersActTrackerIntegrationTest.kt b/pillarbox-core-business/src/test/java/ch/srgssr/pillarbox/core/business/tracker/commandersact/CommandersActTrackerIntegrationTest.kt index cc7331d2c..9bcbbf099 100644 --- a/pillarbox-core-business/src/test/java/ch/srgssr/pillarbox/core/business/tracker/commandersact/CommandersActTrackerIntegrationTest.kt +++ b/pillarbox-core-business/src/test/java/ch/srgssr/pillarbox/core/business/tracker/commandersact/CommandersActTrackerIntegrationTest.kt @@ -33,7 +33,6 @@ import ch.srgssr.pillarbox.core.business.integrationlayer.service.MediaCompositi import ch.srgssr.pillarbox.core.business.tracker.DefaultMediaItemTrackerRepository import ch.srgssr.pillarbox.core.business.tracker.comscore.ComScoreTracker import ch.srgssr.pillarbox.player.data.MediaItemSource -import ch.srgssr.pillarbox.player.test.utils.TestPillarboxRunHelper import ch.srgssr.pillarbox.player.tracker.MediaItemTrackerRepository import io.mockk.Called import io.mockk.confirmVerified @@ -136,7 +135,7 @@ class CommandersActTrackerIntegrationTest { player.playWhenReady = true TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY) - TestPillarboxRunHelper.runUntilStartOfMediaItem(player, 0) + TestPlayerRunHelper.playUntilStartOfMediaItem(player, 0) player.setMediaItem(MediaItemUrn(URN_NOT_LIVE_VIDEO)) player.playWhenReady = true @@ -177,7 +176,7 @@ class CommandersActTrackerIntegrationTest { player.playWhenReady = true TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY) - TestPillarboxRunHelper.runUntilStartOfMediaItem(player, 0) + TestPlayerRunHelper.playUntilStartOfMediaItem(player, 0) verifyOrder { commandersAct.enableRunningInBackground() @@ -227,7 +226,7 @@ class CommandersActTrackerIntegrationTest { player.playWhenReady = true TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY) - TestPillarboxRunHelper.runUntilStartOfMediaItem(player, 0) + TestPlayerRunHelper.playUntilStartOfMediaItem(player, 0) verifyOrder { commandersAct.enableRunningInBackground() @@ -252,7 +251,7 @@ class CommandersActTrackerIntegrationTest { player.setPlaybackSpeed(2f) TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY) - TestPillarboxRunHelper.runUntilStartOfMediaItem(player, 0) + TestPlayerRunHelper.playUntilStartOfMediaItem(player, 0) verifyOrder { commandersAct.enableRunningInBackground() @@ -276,7 +275,7 @@ class CommandersActTrackerIntegrationTest { player.playWhenReady = true TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY) - TestPillarboxRunHelper.runUntilStartOfMediaItem(player, 0) + TestPlayerRunHelper.playUntilStartOfMediaItem(player, 0) clock.advanceTime(5.minutes.inWholeMilliseconds) player.setPlaybackSpeed(2f) @@ -305,7 +304,7 @@ class CommandersActTrackerIntegrationTest { player.playWhenReady = true TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY) - TestPillarboxRunHelper.runUntilStartOfMediaItem(player, 0) + TestPlayerRunHelper.playUntilStartOfMediaItem(player, 0) clock.advanceTime(2.minutes.inWholeMilliseconds) player.playWhenReady = false @@ -340,7 +339,7 @@ class CommandersActTrackerIntegrationTest { player.playWhenReady = true TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY) - TestPillarboxRunHelper.runUntilStartOfMediaItem(player, 0) + TestPlayerRunHelper.playUntilStartOfMediaItem(player, 0) clock.advanceTime(2.minutes.inWholeMilliseconds) player.playWhenReady = false @@ -386,7 +385,7 @@ class CommandersActTrackerIntegrationTest { player.playWhenReady = true TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY) - TestPillarboxRunHelper.runUntilStartOfMediaItem(player, 0) + TestPlayerRunHelper.playUntilStartOfMediaItem(player, 0) clock.advanceTime(2.minutes.inWholeMilliseconds) player.stop() @@ -420,7 +419,7 @@ class CommandersActTrackerIntegrationTest { player.playWhenReady = true TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY) - TestPillarboxRunHelper.runUntilStartOfMediaItem(player, 0) + TestPlayerRunHelper.playUntilStartOfMediaItem(player, 0) clock.advanceTime(2.minutes.inWholeMilliseconds) player.seekTo(30.seconds.inWholeMilliseconds) @@ -489,7 +488,7 @@ class CommandersActTrackerIntegrationTest { player.playWhenReady = true TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY) - TestPillarboxRunHelper.runUntilStartOfMediaItem(player, 0) + TestPlayerRunHelper.playUntilStartOfMediaItem(player, 0) clock.advanceTime(2.seconds.inWholeMilliseconds) advanceTimeBy(2.seconds) @@ -599,7 +598,7 @@ class CommandersActTrackerIntegrationTest { player.playWhenReady = true TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY) - TestPillarboxRunHelper.runUntilStartOfMediaItem(player, 0) + TestPlayerRunHelper.playUntilStartOfMediaItem(player, 0) clock.advanceTime(playTime.inWholeMilliseconds) advanceTimeBy(playTime) @@ -712,7 +711,7 @@ class CommandersActTrackerIntegrationTest { player.playWhenReady = true TestPlayerRunHelper.runUntilPlaybackState(player, Player.STATE_READY) - TestPillarboxRunHelper.runUntilStartOfMediaItem(player, 0) + TestPlayerRunHelper.playUntilStartOfMediaItem(player, 0) clock.advanceTime(playTime.inWholeMilliseconds) advanceTimeBy(playTime) diff --git a/pillarbox-player-testutils/src/main/java/ch/srgssr/pillarbox/player/test/utils/TestPillarboxRunHelper.kt b/pillarbox-player-testutils/src/main/java/ch/srgssr/pillarbox/player/test/utils/TestPillarboxRunHelper.kt index e74221496..9abe27e4a 100644 --- a/pillarbox-player-testutils/src/main/java/ch/srgssr/pillarbox/player/test/utils/TestPillarboxRunHelper.kt +++ b/pillarbox-player-testutils/src/main/java/ch/srgssr/pillarbox/player/test/utils/TestPillarboxRunHelper.kt @@ -9,11 +9,8 @@ import androidx.media3.common.PlaybackParameters import androidx.media3.common.Player import androidx.media3.common.util.Assertions import androidx.media3.common.util.Clock -import androidx.media3.common.util.ConditionVariable -import androidx.media3.common.util.Util import androidx.media3.exoplayer.ExoPlayer import androidx.media3.test.utils.robolectric.RobolectricUtil -import androidx.media3.test.utils.robolectric.TestPlayerRunHelper import java.util.concurrent.TimeoutException import java.util.concurrent.atomic.AtomicBoolean @@ -85,50 +82,4 @@ object TestPillarboxRunHelper { throw IllegalStateException(player.playerError) } } - - /** - * Same as [TestPlayerRunHelper.playUntilStartOfMediaItem], but doesn't pause the player afterwards. - * - * @param player The [Player]. - * @param mediaItemIndex The index of the media item. - * - * @throws TimeoutException If the [default timeout][RobolectricUtil.DEFAULT_TIMEOUT_MS] is exceeded. - * - * @see TestPlayerRunHelper.playUntilStartOfMediaItem - */ - @Throws(TimeoutException::class) - fun runUntilStartOfMediaItem(player: ExoPlayer, mediaItemIndex: Int) { - verifyMainTestThread(player) - verifyPlaybackThreadIsAlive(player) - - val applicationLooper = Util.getCurrentOrMainLooper() - val messageHandled = AtomicBoolean(false) - - player - .createMessage { _, _ -> - // Block playback thread until pause command has been sent from test thread. - val blockPlaybackThreadCondition = ConditionVariable() - - player.clock - .createHandler(applicationLooper, null) - .post { - messageHandled.set(true) - blockPlaybackThreadCondition.open() - } - - try { - player.clock.onThreadBlocked() - blockPlaybackThreadCondition.block() - } catch (e: InterruptedException) { - // Ignore. - } - } - .setPosition(mediaItemIndex, 0L) - .send() - player.play() - RobolectricUtil.runMainLooperUntil { messageHandled.get() || player.playerError != null } - if (player.playerError != null) { - throw IllegalStateException(player.playerError) - } - } }