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

Commit 0f13c078 authored by Alejandro Nijamkin's avatar Alejandro Nijamkin
Browse files

[flexiglass] Fixes SceneContainerStartableTest

The reason this was broken on head was because
Flags.SCENE_CONTAINER_ENABLED was false, failing the assumption in
SceneContainerStartableTest and skipping the test.

After setting Flags.SCENE_CONTAINER_ENABLED to true, two methods in the
test were failing, both having to do with the device wakefulness
model/state. I haven't looked into what caused this regression.

The CL fixes the issue by updating the test.

Fix: 305062590
Test: N/A this is a test fix
Flag: scene_container
Change-Id: I48acb03d281b0e78ac6c7decda6fb82eba019fa3
parent 43221a63
Loading
Loading
Loading
Loading
+19 −7
Original line number Original line Diff line number Diff line
@@ -42,6 +42,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.flow.map
import kotlinx.coroutines.test.TestScope
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import kotlinx.coroutines.test.runTest
import org.junit.Assume.assumeTrue
import org.junit.Assume.assumeTrue
@@ -294,6 +295,7 @@ class SceneContainerStartableTest : SysuiTestCase() {
                initialSceneKey = SceneKey.Lockscreen,
                initialSceneKey = SceneKey.Lockscreen,
                authenticationMethod = AuthenticationMethodModel.Pin,
                authenticationMethod = AuthenticationMethodModel.Pin,
                isDeviceUnlocked = false,
                isDeviceUnlocked = false,
                startsAwake = false
            )
            )
            assertThat(currentSceneKey).isEqualTo(SceneKey.Lockscreen)
            assertThat(currentSceneKey).isEqualTo(SceneKey.Lockscreen)
            underTest.start()
            underTest.start()
@@ -301,6 +303,7 @@ class SceneContainerStartableTest : SysuiTestCase() {
            utils.deviceEntryRepository.setUnlocked(true)
            utils.deviceEntryRepository.setUnlocked(true)
            runCurrent()
            runCurrent()
            powerInteractor.setAwakeForTest()
            powerInteractor.setAwakeForTest()
            runCurrent()


            assertThat(currentSceneKey).isEqualTo(SceneKey.Gone)
            assertThat(currentSceneKey).isEqualTo(SceneKey.Gone)
        }
        }
@@ -405,42 +408,43 @@ class SceneContainerStartableTest : SysuiTestCase() {
                initialSceneKey = SceneKey.Lockscreen,
                initialSceneKey = SceneKey.Lockscreen,
                authenticationMethod = AuthenticationMethodModel.Pin,
                authenticationMethod = AuthenticationMethodModel.Pin,
                isDeviceUnlocked = false,
                isDeviceUnlocked = false,
                startsAwake = false,
            )
            )
            underTest.start()
            underTest.start()
            runCurrent()
            runCurrent()
            verify(falsingCollector, never()).onScreenTurningOn()
            verify(falsingCollector, never()).onScreenTurningOn()
            verify(falsingCollector, never()).onScreenOnFromTouch()
            verify(falsingCollector, never()).onScreenOnFromTouch()
            verify(falsingCollector, never()).onScreenOff()
            verify(falsingCollector, times(1)).onScreenOff()


            powerInteractor.setAwakeForTest(reason = PowerManager.WAKE_REASON_POWER_BUTTON)
            powerInteractor.setAwakeForTest(reason = PowerManager.WAKE_REASON_POWER_BUTTON)
            runCurrent()
            runCurrent()
            verify(falsingCollector, times(1)).onScreenTurningOn()
            verify(falsingCollector, times(1)).onScreenTurningOn()
            verify(falsingCollector, never()).onScreenOnFromTouch()
            verify(falsingCollector, never()).onScreenOnFromTouch()
            verify(falsingCollector, never()).onScreenOff()
            verify(falsingCollector, times(1)).onScreenOff()


            powerInteractor.setAsleepForTest()
            powerInteractor.setAsleepForTest()
            runCurrent()
            runCurrent()
            verify(falsingCollector, times(1)).onScreenTurningOn()
            verify(falsingCollector, times(1)).onScreenTurningOn()
            verify(falsingCollector, never()).onScreenOnFromTouch()
            verify(falsingCollector, never()).onScreenOnFromTouch()
            verify(falsingCollector, times(1)).onScreenOff()
            verify(falsingCollector, times(2)).onScreenOff()


            powerInteractor.setAwakeForTest(reason = PowerManager.WAKE_REASON_TAP)
            powerInteractor.setAwakeForTest(reason = PowerManager.WAKE_REASON_TAP)
            runCurrent()
            runCurrent()
            verify(falsingCollector, times(1)).onScreenTurningOn()
            verify(falsingCollector, times(1)).onScreenTurningOn()
            verify(falsingCollector, times(1)).onScreenOnFromTouch()
            verify(falsingCollector, times(1)).onScreenOnFromTouch()
            verify(falsingCollector, times(1)).onScreenOff()
            verify(falsingCollector, times(2)).onScreenOff()


            powerInteractor.setAsleepForTest()
            powerInteractor.setAsleepForTest()
            runCurrent()
            runCurrent()
            verify(falsingCollector, times(1)).onScreenTurningOn()
            verify(falsingCollector, times(1)).onScreenTurningOn()
            verify(falsingCollector, times(1)).onScreenOnFromTouch()
            verify(falsingCollector, times(1)).onScreenOnFromTouch()
            verify(falsingCollector, times(2)).onScreenOff()
            verify(falsingCollector, times(3)).onScreenOff()


            powerInteractor.setAwakeForTest(reason = PowerManager.WAKE_REASON_POWER_BUTTON)
            powerInteractor.setAwakeForTest(reason = PowerManager.WAKE_REASON_POWER_BUTTON)
            runCurrent()
            runCurrent()
            verify(falsingCollector, times(2)).onScreenTurningOn()
            verify(falsingCollector, times(2)).onScreenTurningOn()
            verify(falsingCollector, times(1)).onScreenOnFromTouch()
            verify(falsingCollector, times(1)).onScreenOnFromTouch()
            verify(falsingCollector, times(2)).onScreenOff()
            verify(falsingCollector, times(3)).onScreenOff()
        }
        }


    @Test
    @Test
@@ -511,11 +515,12 @@ class SceneContainerStartableTest : SysuiTestCase() {
            verify(falsingCollector, times(2)).onBouncerHidden()
            verify(falsingCollector, times(2)).onBouncerHidden()
        }
        }


    private fun prepareState(
    private fun TestScope.prepareState(
        isDeviceUnlocked: Boolean = false,
        isDeviceUnlocked: Boolean = false,
        isBypassEnabled: Boolean = false,
        isBypassEnabled: Boolean = false,
        initialSceneKey: SceneKey? = null,
        initialSceneKey: SceneKey? = null,
        authenticationMethod: AuthenticationMethodModel? = null,
        authenticationMethod: AuthenticationMethodModel? = null,
        startsAwake: Boolean = true,
    ): MutableStateFlow<ObservableTransitionState> {
    ): MutableStateFlow<ObservableTransitionState> {
        assumeTrue(Flags.SCENE_CONTAINER_ENABLED)
        assumeTrue(Flags.SCENE_CONTAINER_ENABLED)
        sceneContainerFlags.enabled = true
        sceneContainerFlags.enabled = true
@@ -539,6 +544,13 @@ class SceneContainerStartableTest : SysuiTestCase() {
                authenticationMethod != AuthenticationMethodModel.None
                authenticationMethod != AuthenticationMethodModel.None
            )
            )
        }
        }
        if (startsAwake) {
            powerInteractor.setAwakeForTest()
        } else {
            powerInteractor.setAsleepForTest()
        }
        runCurrent()

        return transitionStateFlow
        return transitionStateFlow
    }
    }
}
}