Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 27b310ce authored by Danny Burakov's avatar Danny Burakov Committed by Android (Google) Code Review
Browse files

Merge "Remove redundant runCurrent() in VolumeDialogVisibilityInteractorTest." into main

parents 008dba6c 1186336d
Loading
Loading
Loading
Loading
+107 −141
Original line number Diff line number Diff line
@@ -23,10 +23,11 @@ import androidx.test.filters.SmallTest
import com.android.systemui.Flags.FLAG_QS_TILE_DETAILED_VIEW
import com.android.systemui.SysuiTestCase
import com.android.systemui.accessibility.data.repository.accessibilityRepository
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.flags.EnableSceneContainer
import com.android.systemui.kosmos.Kosmos
import com.android.systemui.kosmos.testScope
import com.android.systemui.kosmos.advanceTimeBy
import com.android.systemui.kosmos.collectLastValue
import com.android.systemui.kosmos.runTest
import com.android.systemui.kosmos.useUnconfinedTestDispatcher
import com.android.systemui.plugins.fakeVolumeDialogController
import com.android.systemui.res.R
@@ -38,9 +39,6 @@ import com.android.systemui.volume.dialog.shared.model.VolumeDialogVisibilityMod
import com.google.common.truth.Truth.assertThat
import kotlin.time.Duration.Companion.days
import kotlin.time.Duration.Companion.seconds
import kotlinx.coroutines.test.advanceTimeBy
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Test
import org.junit.runner.RunWith

@@ -64,16 +62,13 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() {

    @Test
    fun testShowRequest_visible() =
        with(kosmos) {
            testScope.runTest {
        kosmos.runTest {
            val visibilityModel by collectLastValue(underTest.dialogVisibility)
                runCurrent()
            fakeVolumeDialogController.onShowRequested(
                Events.SHOW_REASON_VOLUME_CHANGED,
                false,
                ActivityManager.LOCK_TASK_MODE_LOCKED,
            )
                runCurrent()

            assertThat(visibilityModel!!)
                .isEqualTo(
@@ -84,63 +79,48 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() {
                    )
                )
        }
        }

    @Test
    fun testDismissRequest_dismissed() =
        with(kosmos) {
            testScope.runTest {
        kosmos.runTest {
            val visibilityModel by collectLastValue(underTest.dialogVisibility)
                runCurrent()
            fakeVolumeDialogController.onShowRequested(
                Events.SHOW_REASON_VOLUME_CHANGED,
                false,
                ActivityManager.LOCK_TASK_MODE_LOCKED,
            )
                runCurrent()

            fakeVolumeDialogController.onDismissRequested(Events.DISMISS_REASON_SCREEN_OFF)
                runCurrent()

            assertThat(visibilityModel!!)
                    .isEqualTo(
                        VolumeDialogVisibilityModel.Dismissed(Events.DISMISS_REASON_SCREEN_OFF)
                    )
            }
                .isEqualTo(VolumeDialogVisibilityModel.Dismissed(Events.DISMISS_REASON_SCREEN_OFF))
        }

    @Test
    fun testTimeout_dismissed() =
        with(kosmos) {
            testScope.runTest {
        kosmos.runTest {
            val visibilityModel by collectLastValue(underTest.dialogVisibility)
                runCurrent()
            fakeVolumeDialogController.onShowRequested(
                Events.SHOW_REASON_VOLUME_CHANGED,
                false,
                ActivityManager.LOCK_TASK_MODE_LOCKED,
            )
                runCurrent()

            advanceTimeBy(1.days)

            assertThat(visibilityModel!!)
                .isEqualTo(VolumeDialogVisibilityModel.Dismissed(Events.DISMISS_REASON_TIMEOUT))
        }
        }

    @Test
    fun testResetTimeoutInterruptsEvents() =
        with(kosmos) {
            testScope.runTest {
        kosmos.runTest {
            val visibilityModel by collectLastValue(underTest.dialogVisibility)
                runCurrent()
            fakeVolumeDialogController.onShowRequested(
                Events.SHOW_REASON_VOLUME_CHANGED,
                false,
                ActivityManager.LOCK_TASK_MODE_LOCKED,
            )
                runCurrent()

            advanceTimeBy(dialogTimeoutDuration / 2)
            underTest.resetDismissTimeout()
@@ -152,25 +132,21 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() {
                .isInstanceOf(VolumeDialogVisibilityModel.Visible::class.java)
            assertThat(fakeVolumeDialogController.hasUserActivity).isTrue()
        }
        }

    @Test
    @EnableSceneContainer
    @EnableFlags(FLAG_QS_TILE_DETAILED_VIEW)
    fun testShowRequest_whenQsSliderFeatureEnabledAndQsNotExpanded_dialogVisible() {
        with(kosmos) {
            testScope.runTest {
        kosmos.runTest {
            overrideResource(R.bool.config_enableDesktopAudioTileDetailsView, true)
            val visibilityModel by collectLastValue(underTest.dialogVisibility)
            shadeTestUtil.setQsExpansion(0f)
                runCurrent()

            fakeVolumeDialogController.onShowRequested(
                Events.SHOW_REASON_VOLUME_CHANGED,
                false,
                ActivityManager.LOCK_TASK_MODE_LOCKED,
            )
                runCurrent()

            assertThat(visibilityModel!!)
                .isEqualTo(
@@ -182,51 +158,42 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() {
                )
        }
    }
    }

    @Test
    @EnableSceneContainer
    @EnableFlags(FLAG_QS_TILE_DETAILED_VIEW)
    fun testShowRequest_whenQsSliderFeatureEnabledAndQsExpanded_dialogInvisible() {
        with(kosmos) {
            testScope.runTest {
        kosmos.runTest {
            overrideResource(R.bool.config_enableDesktopAudioTileDetailsView, true)
            val visibilityModel by collectLastValue(underTest.dialogVisibility)
            shadeTestUtil.setQsExpansion(1f)
                runCurrent()

            fakeVolumeDialogController.onShowRequested(
                Events.SHOW_REASON_VOLUME_CHANGED,
                false,
                ActivityManager.LOCK_TASK_MODE_LOCKED,
            )
                runCurrent()

            assertThat(visibilityModel!!).isEqualTo(VolumeDialogVisibilityModel.Invisible)
        }
    }
    }

    @Test
    @EnableSceneContainer
    @EnableFlags(FLAG_QS_TILE_DETAILED_VIEW)
    fun testShowRequest_whenQsSliderFeatureEnabledAndQsBecomesExpanded_dialogDismissed() {
        with(kosmos) {
            testScope.runTest {
        kosmos.runTest {
            overrideResource(R.bool.config_enableDesktopAudioTileDetailsView, true)
            val visibilityModel by collectLastValue(underTest.dialogVisibility)
            shadeTestUtil.setQsExpansion(0f)
                runCurrent()

            fakeVolumeDialogController.onShowRequested(
                Events.SHOW_REASON_VOLUME_CHANGED,
                false,
                ActivityManager.LOCK_TASK_MODE_LOCKED,
            )
                runCurrent()

            shadeTestUtil.setQsExpansion(1f)
                runCurrent()

            assertThat(visibilityModel!!)
                .isEqualTo(
@@ -237,4 +204,3 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() {
        }
    }
}
}