Loading packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt +26 −0 Original line number Diff line number Diff line Loading @@ -229,6 +229,32 @@ class SceneContainerStartableTest : SysuiTestCase() { assertThat(isVisible).isTrue() } @Test fun hydrateVisibility_basedOnAlternateBouncer() = testScope.runTest { val isVisible by collectLastValue(sceneInteractor.isVisible) prepareState( isDeviceUnlocked = false, initialSceneKey = Scenes.Lockscreen, ) underTest.start() assertThat(isVisible).isTrue() // WHEN the device is occluded, kosmos.keyguardOcclusionInteractor.setWmNotifiedShowWhenLockedActivityOnTop( true, mock() ) // THEN scenes are not visible assertThat(isVisible).isFalse() // WHEN the alternate bouncer is visible kosmos.fakeKeyguardBouncerRepository.setAlternateVisible(true) // THEN scenes visible assertThat(isVisible).isTrue() } @Test fun startsInLockscreenScene() = testScope.runTest { Loading packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerViewModelTest.kt +18 −2 Original line number Diff line number Diff line Loading @@ -19,10 +19,13 @@ package com.android.systemui.keyguard.ui.viewmodel import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.internal.policy.IKeyguardDismissCallback import com.android.systemui.SysuiTestCase import com.android.systemui.concurrency.fakeExecutor import com.android.systemui.coroutines.collectLastValue import com.android.systemui.coroutines.collectValues import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.dismissCallbackRegistry import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep Loading @@ -36,6 +39,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mockito.mock import org.mockito.Mockito.verify @ExperimentalCoroutinesApi Loading @@ -49,19 +53,31 @@ class AlternateBouncerViewModelTest : SysuiTestCase() { private val underTest = kosmos.alternateBouncerViewModel @Test fun showPrimaryBouncer() = fun onTapped() = testScope.runTest { underTest.onTapped() verify(statusBarKeyguardViewManager).showPrimaryBouncer(any()) } @Test fun hideAlternateBouncer() = fun onRemovedFromWindow() = testScope.runTest { underTest.onRemovedFromWindow() verify(statusBarKeyguardViewManager).hideAlternateBouncer(any()) } @Test fun onBackRequested() = testScope.runTest { val dismissCallback = mock(IKeyguardDismissCallback::class.java) kosmos.dismissCallbackRegistry.addCallback(dismissCallback) underTest.onBackRequested() kosmos.fakeExecutor.runAllReady() verify(statusBarKeyguardViewManager).hideAlternateBouncer(any()) verify(dismissCallback).onDismissCancelled() } @Test fun transitionToAlternateBouncer_scrimAlphaUpdate() = testScope.runTest { Loading Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt +26 −0 Original line number Diff line number Diff line Loading @@ -229,6 +229,32 @@ class SceneContainerStartableTest : SysuiTestCase() { assertThat(isVisible).isTrue() } @Test fun hydrateVisibility_basedOnAlternateBouncer() = testScope.runTest { val isVisible by collectLastValue(sceneInteractor.isVisible) prepareState( isDeviceUnlocked = false, initialSceneKey = Scenes.Lockscreen, ) underTest.start() assertThat(isVisible).isTrue() // WHEN the device is occluded, kosmos.keyguardOcclusionInteractor.setWmNotifiedShowWhenLockedActivityOnTop( true, mock() ) // THEN scenes are not visible assertThat(isVisible).isFalse() // WHEN the alternate bouncer is visible kosmos.fakeKeyguardBouncerRepository.setAlternateVisible(true) // THEN scenes visible assertThat(isVisible).isTrue() } @Test fun startsInLockscreenScene() = testScope.runTest { Loading
packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerViewModelTest.kt +18 −2 Original line number Diff line number Diff line Loading @@ -19,10 +19,13 @@ package com.android.systemui.keyguard.ui.viewmodel import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.internal.policy.IKeyguardDismissCallback import com.android.systemui.SysuiTestCase import com.android.systemui.concurrency.fakeExecutor import com.android.systemui.coroutines.collectLastValue import com.android.systemui.coroutines.collectValues import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.dismissCallbackRegistry import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep Loading @@ -36,6 +39,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.runTest import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mockito.mock import org.mockito.Mockito.verify @ExperimentalCoroutinesApi Loading @@ -49,19 +53,31 @@ class AlternateBouncerViewModelTest : SysuiTestCase() { private val underTest = kosmos.alternateBouncerViewModel @Test fun showPrimaryBouncer() = fun onTapped() = testScope.runTest { underTest.onTapped() verify(statusBarKeyguardViewManager).showPrimaryBouncer(any()) } @Test fun hideAlternateBouncer() = fun onRemovedFromWindow() = testScope.runTest { underTest.onRemovedFromWindow() verify(statusBarKeyguardViewManager).hideAlternateBouncer(any()) } @Test fun onBackRequested() = testScope.runTest { val dismissCallback = mock(IKeyguardDismissCallback::class.java) kosmos.dismissCallbackRegistry.addCallback(dismissCallback) underTest.onBackRequested() kosmos.fakeExecutor.runAllReady() verify(statusBarKeyguardViewManager).hideAlternateBouncer(any()) verify(dismissCallback).onDismissCancelled() } @Test fun transitionToAlternateBouncer_scrimAlphaUpdate() = testScope.runTest { Loading