Loading packages/SystemUI/multivalentTests/src/com/android/systemui/volume/dialog/domain/interactor/VolumeDialogVisibilityInteractorTest.kt +107 −141 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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( Loading @@ -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() Loading @@ -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( Loading @@ -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( Loading @@ -237,4 +204,3 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() { } } } } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/volume/dialog/domain/interactor/VolumeDialogVisibilityInteractorTest.kt +107 −141 Original line number Diff line number Diff line Loading @@ -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 Loading @@ -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 Loading @@ -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( Loading @@ -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() Loading @@ -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( Loading @@ -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( Loading @@ -237,4 +204,3 @@ class VolumeDialogVisibilityInteractorTest : SysuiTestCase() { } } } }