diff options
| author | 2024-08-12 16:27:31 +0000 | |
|---|---|---|
| committer | 2024-08-12 17:34:26 +0000 | |
| commit | db8c7cd67c0dd114132b65939bb42b62d4d0d22d (patch) | |
| tree | bc475fd3f6da381ccfb0f0528a23205b9869a25b | |
| parent | cdd4658347af127518a997d5259fe9071cad597f (diff) | |
Add tests for new logic introduced in ag/28573612
Flag: com.android.systemui.scene_container
Bug: 353955910
Test: atest SceneContainerStartableTest AlternateBouncerViewModelTest
Change-Id: I401b4364fe29cea582bcc0564f0817c3cd10ef61
2 files changed, 44 insertions, 2 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt index 2dfff3ffc72b..bbb467f4f33d 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/startable/SceneContainerStartableTest.kt @@ -230,6 +230,32 @@ class SceneContainerStartableTest : SysuiTestCase() { } @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 { val currentSceneKey by collectLastValue(sceneInteractor.currentScene) diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerViewModelTest.kt index d8e96bc23b25..664a0bdedec4 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerViewModelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/ui/viewmodel/AlternateBouncerViewModelTest.kt @@ -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 @@ -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 @@ -49,20 +53,32 @@ 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 { val scrimAlphas by collectValues(underTest.scrimAlpha) |