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

Commit 3648b316 authored by Beverly Tai's avatar Beverly Tai Committed by Android (Google) Code Review
Browse files

Merge "Add tests for new logic introduced in ag/28573612" into main

parents 36a96a45 db8c7cd6
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 {