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

Commit db8c7cd6 authored by Beverly's avatar Beverly
Browse files

Add tests for new logic introduced in ag/28573612

Flag: com.android.systemui.scene_container
Bug: 353955910
Test: atest SceneContainerStartableTest AlternateBouncerViewModelTest
Change-Id: I401b4364fe29cea582bcc0564f0817c3cd10ef61
parent cdd46583
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -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 {
+18 −2
Original line number Diff line number Diff line
@@ -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,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 {