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

Commit e03a7c61 authored by Beverly's avatar Beverly
Browse files

[flexiglass] Update scene transition in AltBouncerToGone test

Setup the correct scene transition so the KTF transition
steps get sent to the consumer.

Test: atest AlternateBouncerToGoneTransitionViewModelTest
Bug: 409851925
Flag: EXEMPT test change
Change-Id: Ibff29a1729d0e61dde23be3a0d720dfadd5a30e1
parent 11fd63e4
Loading
Loading
Loading
Loading
+14 −48
Original line number Diff line number Diff line
@@ -18,46 +18,31 @@ package com.android.systemui.keyguard.ui.viewmodel

import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.SmallTest
import com.android.compose.animation.scene.ContentKey
import com.android.compose.animation.scene.ObservableTransitionState
import com.android.compose.animation.scene.OverlayKey
import com.android.compose.animation.scene.SceneKey
import com.android.systemui.SysuiTestCase
import com.android.systemui.coroutines.collectLastValue
import com.android.systemui.coroutines.collectValues
import com.android.systemui.deviceentry.domain.interactor.deviceUnlockedInteractor
import com.android.systemui.flags.DisableSceneContainer
import com.android.systemui.flags.EnableSceneContainer
import com.android.systemui.flags.Flags
import com.android.systemui.flags.fakeFeatureFlagsClassic
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.KeyguardState.GONE
import com.android.systemui.keyguard.shared.model.SuccessFingerprintAuthenticationStatus
import com.android.systemui.keyguard.shared.model.TransitionState
import com.android.systemui.keyguard.shared.model.TransitionState.RUNNING
import com.android.systemui.keyguard.shared.model.TransitionStep
import com.android.systemui.kosmos.currentValue
import com.android.systemui.kosmos.testScope
import com.android.systemui.scene.data.repository.Transition
import com.android.systemui.scene.data.repository.setSceneTransition
import com.android.systemui.scene.shared.flag.SceneContainerFlag
import com.android.systemui.scene.domain.interactor.sceneInteractor
import com.android.systemui.scene.shared.model.Overlays
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.statusbar.sysuiStatusBarStateController
import com.android.systemui.testKosmos
import com.android.systemui.user.domain.interactor.selectedUserInteractor
import com.google.common.truth.Truth.assertThat
import com.google.common.truth.Truth.assertWithMessage
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import kotlinx.coroutines.flow.emptyFlow
import com.android.systemui.scene.data.repository.sceneContainerRepository

@SmallTest
@RunWith(AndroidJUnit4::class)
@@ -72,36 +57,22 @@ class AlternateBouncerToGoneTransitionViewModelTest : SysuiTestCase() {
    private val sysuiStatusBarStateController = kosmos.sysuiStatusBarStateController
    private val underTest by lazy { kosmos.alternateBouncerToGoneTransitionViewModel }

    @Before
    fun setup() {
        kosmos.setSceneTransition(
            Transition(from = Scenes.Lockscreen, to = Scenes.Gone, progress = flowOf(.5f))
        )
    }

    @Test
    @EnableSceneContainer
    fun notificationAlpha() =
        testScope.runTest {
            val transitionState =
                MutableStateFlow<ObservableTransitionState>(
                    ObservableTransitionState.Idle(Scenes.Lockscreen)
                )
            kosmos.sceneContainerRepository.setTransitionState(transitionState)
            transitionState.value =
                ObservableTransitionState.Transition(
                    fromScene = Scenes.Lockscreen,
                    toScene = Scenes.Gone,
                    emptyFlow(),
                    emptyFlow(),
                    false,
                    emptyFlow()
                )
            val viewState = ViewStateAccessor(alpha = { 1f })
            val values by collectValues(underTest.notificationAlpha(ViewStateAccessor()))
            runCurrent()

            sysuiStatusBarStateController.setLeaveOpenOnKeyguardHide(false)
            keyguardTransitionRepository.sendTransitionSteps(
                listOf(
                    step(0f, TransitionState.STARTED),
                    step(0f),
                    step(0.3f),
                    step(1f),
                ),
                listOf(step(0f, TransitionState.STARTED), step(0f), step(0.3f), step(1f)),
                testScope,
            )
            runCurrent()
@@ -112,7 +83,6 @@ class AlternateBouncerToGoneTransitionViewModelTest : SysuiTestCase() {
        }

    @Test
    @DisableSceneContainer
    fun deviceEntryParentViewDisappear() =
        testScope.runTest {
            val values by collectValues(underTest.deviceEntryParentViewAlpha)
@@ -133,7 +103,6 @@ class AlternateBouncerToGoneTransitionViewModelTest : SysuiTestCase() {
        }

    @Test
    @DisableSceneContainer
    fun lockscreenAlpha() =
        testScope.runTest {
            val startAlpha = 0.6f
@@ -172,7 +141,6 @@ class AlternateBouncerToGoneTransitionViewModelTest : SysuiTestCase() {
        }

    @Test
    @DisableSceneContainer
    fun notificationAlpha_leaveShadeOpen() =
        testScope.runTest {
            val values by collectValues(underTest.notificationAlpha(ViewStateAccessor()))
@@ -188,7 +156,6 @@ class AlternateBouncerToGoneTransitionViewModelTest : SysuiTestCase() {
        }

    @Test
    @DisableSceneContainer
    fun lockscreenAlpha_zeroInitialAlpha() =
        testScope.runTest {
            // ViewState starts at 0 alpha.
@@ -198,7 +165,7 @@ class AlternateBouncerToGoneTransitionViewModelTest : SysuiTestCase() {
            keyguardTransitionRepository.sendTransitionSteps(
                from = KeyguardState.ALTERNATE_BOUNCER,
                to = GONE,
                testScope
                testScope,
            )

            // Alpha starts and ends at 0.
@@ -208,11 +175,10 @@ class AlternateBouncerToGoneTransitionViewModelTest : SysuiTestCase() {
    private fun step(value: Float, state: TransitionState = RUNNING): TransitionStep {
        return TransitionStep(
            from = KeyguardState.ALTERNATE_BOUNCER,
            to = if (SceneContainerFlag.isEnabled) KeyguardState.UNDEFINED
                else GONE,
            to = if (SceneContainerFlag.isEnabled) KeyguardState.UNDEFINED else GONE,
            value = value,
            transitionState = state,
            ownerName = "AlternateBouncerToGoneTransitionViewModelTest"
            ownerName = "AlternateBouncerToGoneTransitionViewModelTest",
        )
    }
}