Loading packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt +5 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ import com.android.systemui.power.domain.interactor.powerInteractor import com.android.systemui.scene.data.repository.Idle import com.android.systemui.scene.data.repository.Transition import com.android.systemui.scene.data.repository.setTransition import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.scene.shared.flag.SceneContainerFlag import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.settings.fakeUserTracker Loading Loading @@ -602,6 +603,7 @@ class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() { flowOf(ObservableTransitionState.Idle(CommunalScenes.Communal)) ) // Transitioned to Glanceable hub. kosmos.sceneInteractor.changeScene(Scenes.Communal, "") kosmos.setTransition( sceneTransition = Idle(Scenes.Communal), stateTransition = Loading Loading @@ -656,6 +658,7 @@ class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() { keyguardRepository.setKeyguardOccluded(true) // And on hub kosmos.sceneInteractor.changeScene(Scenes.Communal, "") kosmos.setTransition( sceneTransition = Idle(Scenes.Communal), stateTransition = Loading @@ -673,6 +676,7 @@ class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() { assertThat(isCommunalContentFlowFrozen).isEqualTo(true) // 3. When transitioned to OCCLUDED and activity shows kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "") kosmos.setTransition( sceneTransition = Idle(Scenes.Lockscreen), stateTransition = Loading Loading @@ -759,6 +763,7 @@ class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() { keyguardRepository.setKeyguardOccluded(true) // And transitioned to hub kosmos.sceneInteractor.changeScene(Scenes.Communal, "") kosmos.setTransition( sceneTransition = Idle(Scenes.Communal), stateTransition = Loading packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ResourceTrimmerTest.kt +11 −1 Original line number Diff line number Diff line Loading @@ -8,16 +8,19 @@ import com.android.systemui.SysuiTestCase import com.android.systemui.flags.DisableSceneContainer import com.android.systemui.flags.EnableSceneContainer import com.android.systemui.flags.fakeFeatureFlagsClassic import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAsleepForTest import com.android.systemui.power.domain.interactor.powerInteractor import com.android.systemui.scene.data.repository.Idle import com.android.systemui.scene.data.repository.setSceneTransition import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.testKosmos import com.android.systemui.utils.GlobalWindowManager Loading Loading @@ -130,7 +133,7 @@ class ResourceTrimmerTest : SysuiTestCase() { keyguardTransitionRepository.sendTransitionSteps( from = KeyguardState.LOCKSCREEN, to = KeyguardState.GONE, testScope testScope, ) verify(globalWindowManager, times(1)) .trimMemory(ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) Loading @@ -141,6 +144,13 @@ class ResourceTrimmerTest : SysuiTestCase() { @EnableSceneContainer fun keyguardTransitionsToGone_trimsFontCache_scene_container() = testScope.runTest { kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "reason") kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) runCurrent() kosmos.sceneInteractor.changeScene(Scenes.Gone, "") kosmos.setSceneTransition(Idle(Scenes.Gone)) verify(globalWindowManager, times(1)) Loading packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractorTest.kt +31 −13 Original line number Diff line number Diff line Loading @@ -24,9 +24,11 @@ import com.android.systemui.coroutines.collectValues import com.android.systemui.flags.DisableSceneContainer import com.android.systemui.flags.EnableSceneContainer import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepository import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.KeyguardSurfaceBehindModel import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.keyguard.util.mockTopActivityClassName Loading @@ -34,6 +36,7 @@ import com.android.systemui.kosmos.testScope import com.android.systemui.scene.data.repository.Idle import com.android.systemui.scene.data.repository.Transition import com.android.systemui.scene.data.repository.setSceneTransition import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.shared.system.ActivityManagerWrapper import com.android.systemui.shared.system.activityManagerWrapper Loading Loading @@ -84,7 +87,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { assertThat(values) .containsExactly( // We're initialized in LOCKSCREEN. KeyguardSurfaceBehindModel(alpha = 0f), KeyguardSurfaceBehindModel(alpha = 0f) ) transitionRepository.sendTransitionStep( Loading @@ -105,7 +108,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { it.alpha == 1f && it.animateFromTranslationY != 0f && it.translationY == 0f } }, ) transitionRepository.sendTransitionStep( Loading @@ -125,7 +128,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { it.alpha == 1f && it.animateFromTranslationY != 0f && it.translationY == 0f } }, ) transitionRepository.sendTransitionStep( Loading @@ -146,7 +149,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { it.translationY == 0f }, // Once the current state is GONE, we should default to alpha = 1f. { it == KeyguardSurfaceBehindModel(alpha = 1f) } { it == KeyguardSurfaceBehindModel(alpha = 1f) }, ) } Loading @@ -161,7 +164,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { assertThat(values) .containsExactly( // We're initialized in LOCKSCREEN. KeyguardSurfaceBehindModel(alpha = 0f), KeyguardSurfaceBehindModel(alpha = 0f) ) .inOrder() Loading Loading @@ -242,8 +245,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { values.assertValuesMatch( // We should be at alpha = 0f during the animation. { it == KeyguardSurfaceBehindModel(alpha = 0f) }, ) { it == KeyguardSurfaceBehindModel(alpha = 0f) }) } @Test Loading @@ -251,14 +253,19 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { fun testSurfaceBehindModel_toAppSurface_scene_container() = testScope.runTest { val values by collectValues(underTest.viewParams) kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "") kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) runCurrent() assertThat(values) .containsExactly( // We're initialized in LOCKSCREEN. KeyguardSurfaceBehindModel(alpha = 0f), KeyguardSurfaceBehindModel(alpha = 0f) ) kosmos.sceneInteractor.changeScene(Scenes.Gone, "") kosmos.setSceneTransition(Transition(Scenes.Lockscreen, Scenes.Gone)) values.assertValuesMatch( Loading @@ -270,7 +277,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { it.alpha == 1f && it.animateFromTranslationY != 0f && it.translationY == 0f } }, ) kosmos.setSceneTransition(Idle(Scenes.Gone)) Loading @@ -284,7 +291,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { it.translationY == 0f }, // Once the current state is GONE, we should default to alpha = 1f. { it == KeyguardSurfaceBehindModel(alpha = 1f) } { it == KeyguardSurfaceBehindModel(alpha = 1f) }, ) } Loading @@ -294,15 +301,20 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { testScope.runTest { val values by collectValues(underTest.viewParams) activityManagerWrapper.mockTopActivityClassName(LAUNCHER_ACTIVITY_NAME) kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "") kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) runCurrent() assertThat(values) .containsExactly( // We're initialized in LOCKSCREEN. KeyguardSurfaceBehindModel(alpha = 0f), KeyguardSurfaceBehindModel(alpha = 0f) ) .inOrder() kosmos.sceneInteractor.changeScene(Scenes.Gone, "") kosmos.setSceneTransition(Transition(Scenes.Lockscreen, Scenes.Gone)) assertThat(values) Loading Loading @@ -340,8 +352,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { values.assertValuesMatch( // We should be at alpha = 0f during the animation. { it == KeyguardSurfaceBehindModel(alpha = 0f) }, ) { it == KeyguardSurfaceBehindModel(alpha = 0f) }) } @Test Loading Loading @@ -435,6 +446,13 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { testScope.runTest { val isAnimatingSurface by collectLastValue(underTest.isAnimatingSurface) kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "") kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) runCurrent() kosmos.sceneInteractor.changeScene(Scenes.Gone, "") kosmos.setSceneTransition(Idle(Scenes.Gone)) kosmos.notificationLaunchAnimationInteractor.setIsLaunchAnimationRunning(true) runCurrent() Loading packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractorTest.kt +17 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import com.android.systemui.coroutines.collectValues import com.android.systemui.flags.DisableSceneContainer import com.android.systemui.flags.EnableSceneContainer import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepository import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.shared.model.Edge import com.android.systemui.keyguard.shared.model.KeyguardState Loading @@ -34,6 +35,7 @@ import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN import com.android.systemui.keyguard.shared.model.KeyguardState.OFF import com.android.systemui.keyguard.shared.model.KeyguardState.PRIMARY_BOUNCER import com.android.systemui.keyguard.shared.model.KeyguardState.UNDEFINED import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus import com.android.systemui.keyguard.shared.model.TransitionState.CANCELED import com.android.systemui.keyguard.shared.model.TransitionState.FINISHED import com.android.systemui.keyguard.shared.model.TransitionState.RUNNING Loading @@ -43,6 +45,7 @@ import com.android.systemui.kosmos.testScope import com.android.systemui.scene.data.repository.Idle import com.android.systemui.scene.data.repository.Transition import com.android.systemui.scene.data.repository.setSceneTransition import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.testKosmos import com.google.common.truth.Truth.assertThat Loading Loading @@ -713,6 +716,11 @@ class KeyguardTransitionInteractorTest : SysuiTestCase() { TransitionStep(AOD, DOZING, 1f, FINISHED), ) kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "reason") kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) assertThat(results) .isEqualTo( listOf( Loading @@ -724,6 +732,7 @@ class KeyguardTransitionInteractorTest : SysuiTestCase() { assertThat(results).isEqualTo(listOf(false)) kosmos.sceneInteractor.changeScene(Scenes.Gone, "reason") kosmos.setSceneTransition(Idle(Scenes.Gone)) assertThat(results).isEqualTo(listOf(false, true)) Loading @@ -732,6 +741,7 @@ class KeyguardTransitionInteractorTest : SysuiTestCase() { assertThat(results).isEqualTo(listOf(false, true)) kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "reason") kosmos.setSceneTransition(Idle(Scenes.Lockscreen)) assertThat(results).isEqualTo(listOf(false, true, false)) Loading @@ -740,6 +750,7 @@ class KeyguardTransitionInteractorTest : SysuiTestCase() { assertThat(results).isEqualTo(listOf(false, true, false)) kosmos.sceneInteractor.changeScene(Scenes.Gone, "reason") kosmos.setSceneTransition(Idle(Scenes.Gone)) assertThat(results).isEqualTo(listOf(false, true, false, true)) Loading Loading @@ -1152,8 +1163,14 @@ class KeyguardTransitionInteractorTest : SysuiTestCase() { val currentStatesMapped by collectValues(underTest.transition(Edge.create(LOCKSCREEN, Scenes.Gone))) kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "reason") kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) kosmos.setSceneTransition(Transition(Scenes.Gone, Scenes.Lockscreen)) val sendStep1 = TransitionStep(UNDEFINED, LOCKSCREEN, 0f, STARTED) kosmos.sceneInteractor.changeScene(Scenes.Gone, "reason") kosmos.setSceneTransition(Idle(Scenes.Gone)) val sendStep2 = TransitionStep(UNDEFINED, LOCKSCREEN, 0.6f, CANCELED) sendSteps(sendStep1, sendStep2) Loading packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt +84 −0 Original line number Diff line number Diff line Loading @@ -799,4 +799,88 @@ class SceneInteractorTest : SysuiTestCase() { verify(processor, never()).onSceneAboutToChange(any(), any()) assertThat(fakeSceneDataSource.freezeAndAnimateToCurrentStateCallCount).isEqualTo(0) } @Test fun topmostContent_sceneChange_noOverlays() = kosmos.runTest { val topmostContent by collectLastValue(underTest.topmostContent) kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) underTest.snapToScene(Scenes.Lockscreen, "reason") assertThat(topmostContent).isEqualTo(Scenes.Lockscreen) underTest.changeScene(Scenes.Gone, "reason") assertThat(topmostContent).isEqualTo(Scenes.Gone) } @Test fun topmostContent_sceneChange_withOverlay() = kosmos.runTest { kosmos.enableDualShade() runCurrent() val topmostContent by collectLastValue(underTest.topmostContent) kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) underTest.snapToScene(Scenes.Lockscreen, "reason") underTest.showOverlay(Overlays.NotificationsShade, "reason") assertThat(topmostContent).isEqualTo(Overlays.NotificationsShade) underTest.changeScene(Scenes.Gone, "reason") assertThat(topmostContent).isEqualTo(Overlays.NotificationsShade) } @Test fun topmostContent_overlayChange_higherZOrder() = kosmos.runTest { kosmos.enableDualShade() runCurrent() val topmostContent by collectLastValue(underTest.topmostContent) kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) underTest.snapToScene(Scenes.Lockscreen, "reason") underTest.showOverlay(Overlays.NotificationsShade, "reason") assertThat(topmostContent).isEqualTo(Overlays.NotificationsShade) underTest.showOverlay(Overlays.QuickSettingsShade, "reason") assertThat(topmostContent).isEqualTo(Overlays.QuickSettingsShade) } @Test fun topmostContent_overlayChange_lowerZOrder() = kosmos.runTest { kosmos.enableDualShade() runCurrent() val topmostContent by collectLastValue(underTest.topmostContent) kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) underTest.snapToScene(Scenes.Lockscreen, "reason") underTest.showOverlay(Overlays.QuickSettingsShade, "reason") assertThat(topmostContent).isEqualTo(Overlays.QuickSettingsShade) underTest.showOverlay(Overlays.NotificationsShade, "reason") assertThat(topmostContent).isEqualTo(Overlays.QuickSettingsShade) } } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/communal/view/viewmodel/CommunalViewModelTest.kt +5 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ import com.android.systemui.power.domain.interactor.powerInteractor import com.android.systemui.scene.data.repository.Idle import com.android.systemui.scene.data.repository.Transition import com.android.systemui.scene.data.repository.setTransition import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.scene.shared.flag.SceneContainerFlag import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.settings.fakeUserTracker Loading Loading @@ -602,6 +603,7 @@ class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() { flowOf(ObservableTransitionState.Idle(CommunalScenes.Communal)) ) // Transitioned to Glanceable hub. kosmos.sceneInteractor.changeScene(Scenes.Communal, "") kosmos.setTransition( sceneTransition = Idle(Scenes.Communal), stateTransition = Loading Loading @@ -656,6 +658,7 @@ class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() { keyguardRepository.setKeyguardOccluded(true) // And on hub kosmos.sceneInteractor.changeScene(Scenes.Communal, "") kosmos.setTransition( sceneTransition = Idle(Scenes.Communal), stateTransition = Loading @@ -673,6 +676,7 @@ class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() { assertThat(isCommunalContentFlowFrozen).isEqualTo(true) // 3. When transitioned to OCCLUDED and activity shows kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "") kosmos.setTransition( sceneTransition = Idle(Scenes.Lockscreen), stateTransition = Loading Loading @@ -759,6 +763,7 @@ class CommunalViewModelTest(flags: FlagsParameterization) : SysuiTestCase() { keyguardRepository.setKeyguardOccluded(true) // And transitioned to hub kosmos.sceneInteractor.changeScene(Scenes.Communal, "") kosmos.setTransition( sceneTransition = Idle(Scenes.Communal), stateTransition = Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/ResourceTrimmerTest.kt +11 −1 Original line number Diff line number Diff line Loading @@ -8,16 +8,19 @@ import com.android.systemui.SysuiTestCase import com.android.systemui.flags.DisableSceneContainer import com.android.systemui.flags.EnableSceneContainer import com.android.systemui.flags.fakeFeatureFlagsClassic import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAsleepForTest import com.android.systemui.power.domain.interactor.powerInteractor import com.android.systemui.scene.data.repository.Idle import com.android.systemui.scene.data.repository.setSceneTransition import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.testKosmos import com.android.systemui.utils.GlobalWindowManager Loading Loading @@ -130,7 +133,7 @@ class ResourceTrimmerTest : SysuiTestCase() { keyguardTransitionRepository.sendTransitionSteps( from = KeyguardState.LOCKSCREEN, to = KeyguardState.GONE, testScope testScope, ) verify(globalWindowManager, times(1)) .trimMemory(ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) Loading @@ -141,6 +144,13 @@ class ResourceTrimmerTest : SysuiTestCase() { @EnableSceneContainer fun keyguardTransitionsToGone_trimsFontCache_scene_container() = testScope.runTest { kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "reason") kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) runCurrent() kosmos.sceneInteractor.changeScene(Scenes.Gone, "") kosmos.setSceneTransition(Idle(Scenes.Gone)) verify(globalWindowManager, times(1)) Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractorTest.kt +31 −13 Original line number Diff line number Diff line Loading @@ -24,9 +24,11 @@ import com.android.systemui.coroutines.collectValues import com.android.systemui.flags.DisableSceneContainer import com.android.systemui.flags.EnableSceneContainer import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepository import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.KeyguardSurfaceBehindModel import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.keyguard.util.mockTopActivityClassName Loading @@ -34,6 +36,7 @@ import com.android.systemui.kosmos.testScope import com.android.systemui.scene.data.repository.Idle import com.android.systemui.scene.data.repository.Transition import com.android.systemui.scene.data.repository.setSceneTransition import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.shared.system.ActivityManagerWrapper import com.android.systemui.shared.system.activityManagerWrapper Loading Loading @@ -84,7 +87,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { assertThat(values) .containsExactly( // We're initialized in LOCKSCREEN. KeyguardSurfaceBehindModel(alpha = 0f), KeyguardSurfaceBehindModel(alpha = 0f) ) transitionRepository.sendTransitionStep( Loading @@ -105,7 +108,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { it.alpha == 1f && it.animateFromTranslationY != 0f && it.translationY == 0f } }, ) transitionRepository.sendTransitionStep( Loading @@ -125,7 +128,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { it.alpha == 1f && it.animateFromTranslationY != 0f && it.translationY == 0f } }, ) transitionRepository.sendTransitionStep( Loading @@ -146,7 +149,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { it.translationY == 0f }, // Once the current state is GONE, we should default to alpha = 1f. { it == KeyguardSurfaceBehindModel(alpha = 1f) } { it == KeyguardSurfaceBehindModel(alpha = 1f) }, ) } Loading @@ -161,7 +164,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { assertThat(values) .containsExactly( // We're initialized in LOCKSCREEN. KeyguardSurfaceBehindModel(alpha = 0f), KeyguardSurfaceBehindModel(alpha = 0f) ) .inOrder() Loading Loading @@ -242,8 +245,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { values.assertValuesMatch( // We should be at alpha = 0f during the animation. { it == KeyguardSurfaceBehindModel(alpha = 0f) }, ) { it == KeyguardSurfaceBehindModel(alpha = 0f) }) } @Test Loading @@ -251,14 +253,19 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { fun testSurfaceBehindModel_toAppSurface_scene_container() = testScope.runTest { val values by collectValues(underTest.viewParams) kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "") kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) runCurrent() assertThat(values) .containsExactly( // We're initialized in LOCKSCREEN. KeyguardSurfaceBehindModel(alpha = 0f), KeyguardSurfaceBehindModel(alpha = 0f) ) kosmos.sceneInteractor.changeScene(Scenes.Gone, "") kosmos.setSceneTransition(Transition(Scenes.Lockscreen, Scenes.Gone)) values.assertValuesMatch( Loading @@ -270,7 +277,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { it.alpha == 1f && it.animateFromTranslationY != 0f && it.translationY == 0f } }, ) kosmos.setSceneTransition(Idle(Scenes.Gone)) Loading @@ -284,7 +291,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { it.translationY == 0f }, // Once the current state is GONE, we should default to alpha = 1f. { it == KeyguardSurfaceBehindModel(alpha = 1f) } { it == KeyguardSurfaceBehindModel(alpha = 1f) }, ) } Loading @@ -294,15 +301,20 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { testScope.runTest { val values by collectValues(underTest.viewParams) activityManagerWrapper.mockTopActivityClassName(LAUNCHER_ACTIVITY_NAME) kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "") kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) runCurrent() assertThat(values) .containsExactly( // We're initialized in LOCKSCREEN. KeyguardSurfaceBehindModel(alpha = 0f), KeyguardSurfaceBehindModel(alpha = 0f) ) .inOrder() kosmos.sceneInteractor.changeScene(Scenes.Gone, "") kosmos.setSceneTransition(Transition(Scenes.Lockscreen, Scenes.Gone)) assertThat(values) Loading Loading @@ -340,8 +352,7 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { values.assertValuesMatch( // We should be at alpha = 0f during the animation. { it == KeyguardSurfaceBehindModel(alpha = 0f) }, ) { it == KeyguardSurfaceBehindModel(alpha = 0f) }) } @Test Loading Loading @@ -435,6 +446,13 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { testScope.runTest { val isAnimatingSurface by collectLastValue(underTest.isAnimatingSurface) kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "") kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) runCurrent() kosmos.sceneInteractor.changeScene(Scenes.Gone, "") kosmos.setSceneTransition(Idle(Scenes.Gone)) kosmos.notificationLaunchAnimationInteractor.setIsLaunchAnimationRunning(true) runCurrent() Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardTransitionInteractorTest.kt +17 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import com.android.systemui.coroutines.collectValues import com.android.systemui.flags.DisableSceneContainer import com.android.systemui.flags.EnableSceneContainer import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepository import com.android.systemui.keyguard.data.repository.fakeDeviceEntryFingerprintAuthRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.shared.model.Edge import com.android.systemui.keyguard.shared.model.KeyguardState Loading @@ -34,6 +35,7 @@ import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN import com.android.systemui.keyguard.shared.model.KeyguardState.OFF import com.android.systemui.keyguard.shared.model.KeyguardState.PRIMARY_BOUNCER import com.android.systemui.keyguard.shared.model.KeyguardState.UNDEFINED import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus import com.android.systemui.keyguard.shared.model.TransitionState.CANCELED import com.android.systemui.keyguard.shared.model.TransitionState.FINISHED import com.android.systemui.keyguard.shared.model.TransitionState.RUNNING Loading @@ -43,6 +45,7 @@ import com.android.systemui.kosmos.testScope import com.android.systemui.scene.data.repository.Idle import com.android.systemui.scene.data.repository.Transition import com.android.systemui.scene.data.repository.setSceneTransition import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.testKosmos import com.google.common.truth.Truth.assertThat Loading Loading @@ -713,6 +716,11 @@ class KeyguardTransitionInteractorTest : SysuiTestCase() { TransitionStep(AOD, DOZING, 1f, FINISHED), ) kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "reason") kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) assertThat(results) .isEqualTo( listOf( Loading @@ -724,6 +732,7 @@ class KeyguardTransitionInteractorTest : SysuiTestCase() { assertThat(results).isEqualTo(listOf(false)) kosmos.sceneInteractor.changeScene(Scenes.Gone, "reason") kosmos.setSceneTransition(Idle(Scenes.Gone)) assertThat(results).isEqualTo(listOf(false, true)) Loading @@ -732,6 +741,7 @@ class KeyguardTransitionInteractorTest : SysuiTestCase() { assertThat(results).isEqualTo(listOf(false, true)) kosmos.sceneInteractor.changeScene(Scenes.Lockscreen, "reason") kosmos.setSceneTransition(Idle(Scenes.Lockscreen)) assertThat(results).isEqualTo(listOf(false, true, false)) Loading @@ -740,6 +750,7 @@ class KeyguardTransitionInteractorTest : SysuiTestCase() { assertThat(results).isEqualTo(listOf(false, true, false)) kosmos.sceneInteractor.changeScene(Scenes.Gone, "reason") kosmos.setSceneTransition(Idle(Scenes.Gone)) assertThat(results).isEqualTo(listOf(false, true, false, true)) Loading Loading @@ -1152,8 +1163,14 @@ class KeyguardTransitionInteractorTest : SysuiTestCase() { val currentStatesMapped by collectValues(underTest.transition(Edge.create(LOCKSCREEN, Scenes.Gone))) kosmos.sceneInteractor.snapToScene(Scenes.Lockscreen, "reason") kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) kosmos.setSceneTransition(Transition(Scenes.Gone, Scenes.Lockscreen)) val sendStep1 = TransitionStep(UNDEFINED, LOCKSCREEN, 0f, STARTED) kosmos.sceneInteractor.changeScene(Scenes.Gone, "reason") kosmos.setSceneTransition(Idle(Scenes.Gone)) val sendStep2 = TransitionStep(UNDEFINED, LOCKSCREEN, 0.6f, CANCELED) sendSteps(sendStep1, sendStep2) Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/scene/domain/interactor/SceneInteractorTest.kt +84 −0 Original line number Diff line number Diff line Loading @@ -799,4 +799,88 @@ class SceneInteractorTest : SysuiTestCase() { verify(processor, never()).onSceneAboutToChange(any(), any()) assertThat(fakeSceneDataSource.freezeAndAnimateToCurrentStateCallCount).isEqualTo(0) } @Test fun topmostContent_sceneChange_noOverlays() = kosmos.runTest { val topmostContent by collectLastValue(underTest.topmostContent) kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) underTest.snapToScene(Scenes.Lockscreen, "reason") assertThat(topmostContent).isEqualTo(Scenes.Lockscreen) underTest.changeScene(Scenes.Gone, "reason") assertThat(topmostContent).isEqualTo(Scenes.Gone) } @Test fun topmostContent_sceneChange_withOverlay() = kosmos.runTest { kosmos.enableDualShade() runCurrent() val topmostContent by collectLastValue(underTest.topmostContent) kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) underTest.snapToScene(Scenes.Lockscreen, "reason") underTest.showOverlay(Overlays.NotificationsShade, "reason") assertThat(topmostContent).isEqualTo(Overlays.NotificationsShade) underTest.changeScene(Scenes.Gone, "reason") assertThat(topmostContent).isEqualTo(Overlays.NotificationsShade) } @Test fun topmostContent_overlayChange_higherZOrder() = kosmos.runTest { kosmos.enableDualShade() runCurrent() val topmostContent by collectLastValue(underTest.topmostContent) kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) underTest.snapToScene(Scenes.Lockscreen, "reason") underTest.showOverlay(Overlays.NotificationsShade, "reason") assertThat(topmostContent).isEqualTo(Overlays.NotificationsShade) underTest.showOverlay(Overlays.QuickSettingsShade, "reason") assertThat(topmostContent).isEqualTo(Overlays.QuickSettingsShade) } @Test fun topmostContent_overlayChange_lowerZOrder() = kosmos.runTest { kosmos.enableDualShade() runCurrent() val topmostContent by collectLastValue(underTest.topmostContent) kosmos.fakeDeviceEntryFingerprintAuthRepository.setAuthenticationStatus( SuccessFingerprintAuthenticationStatus(0, true) ) underTest.snapToScene(Scenes.Lockscreen, "reason") underTest.showOverlay(Overlays.QuickSettingsShade, "reason") assertThat(topmostContent).isEqualTo(Overlays.QuickSettingsShade) underTest.showOverlay(Overlays.NotificationsShade, "reason") assertThat(topmostContent).isEqualTo(Overlays.QuickSettingsShade) } }