Loading packages/SystemUI/multivalentTests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt +2 −4 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor import com.android.systemui.flags.FakeFeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractorFactory import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.testScope import com.android.systemui.log.SessionTracker Loading Loading @@ -236,9 +236,7 @@ class KeyguardSecurityContainerControllerTest : SysuiTestCase() { kosmos = testKosmos() sceneInteractor = kosmos.sceneInteractor keyguardTransitionInteractor = KeyguardTransitionInteractorFactory.create(kosmos.testScope.backgroundScope) .keyguardTransitionInteractor keyguardTransitionInteractor = kosmos.keyguardTransitionInteractor sceneTransitionStateFlow = MutableStateFlow(ObservableTransitionState.Idle(SceneKey.Lockscreen)) sceneInteractor.setTransitionState(sceneTransitionStateFlow) Loading packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsKeyguardViewLegacyControllerWithCoroutinesTest.kt +16 −81 Original line number Diff line number Diff line Loading @@ -16,44 +16,27 @@ package com.android.systemui.biometrics import android.os.Handler import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.keyguard.KeyguardSecurityModel import com.android.systemui.biometrics.UdfpsKeyguardViewLegacy.ANIMATE_APPEAR_ON_SCREEN_OFF import com.android.systemui.biometrics.UdfpsKeyguardViewLegacy.ANIMATION_BETWEEN_AOD_AND_LOCKSCREEN import com.android.systemui.biometrics.data.repository.FakeFingerprintPropertyRepository import com.android.systemui.biometrics.domain.interactor.UdfpsOverlayInteractor import com.android.systemui.bouncer.data.repository.KeyguardBouncerRepository import com.android.systemui.bouncer.data.repository.KeyguardBouncerRepositoryImpl import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerCallbackInteractor import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor import com.android.systemui.biometrics.domain.interactor.udfpsOverlayInteractor import com.android.systemui.bouncer.data.repository.fakeKeyguardBouncerRepository import com.android.systemui.bouncer.domain.interactor.alternateBouncerInteractor import com.android.systemui.bouncer.domain.interactor.primaryBouncerInteractor import com.android.systemui.bouncer.shared.constants.KeyguardBouncerConstants import com.android.systemui.bouncer.ui.BouncerView import com.android.systemui.classifier.FalsingCollector import com.android.systemui.coroutines.collectLastValue import com.android.systemui.deviceentry.domain.interactor.DeviceEntryFaceAuthInteractor import com.android.systemui.keyguard.DismissCallbackRegistry import com.android.systemui.keyguard.data.repository.BiometricSettingsRepository import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepository import com.android.systemui.keyguard.data.repository.FakeTrustRepository import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractorFactory 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.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.log.table.TableLogBuffer import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.kosmos.testScope import com.android.systemui.statusbar.StatusBarState import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.user.domain.interactor.SelectedUserInteractor import com.android.systemui.testKosmos import com.android.systemui.util.mockito.whenever import com.android.systemui.util.time.FakeSystemClock import com.android.systemui.util.time.SystemClock import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.test.StandardTestDispatcher import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Assert.assertFalse Loading @@ -64,9 +47,7 @@ import org.junit.runner.RunWith import org.mockito.ArgumentMatchers.any import org.mockito.ArgumentMatchers.anyInt import org.mockito.ArgumentMatchers.eq import org.mockito.Mock import org.mockito.Mockito import org.mockito.Mockito.mock import org.mockito.Mockito.never import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations Loading @@ -77,70 +58,24 @@ import org.mockito.MockitoAnnotations @kotlinx.coroutines.ExperimentalCoroutinesApi class UdfpsKeyguardViewLegacyControllerWithCoroutinesTest : UdfpsKeyguardViewLegacyControllerBaseTest() { private val testDispatcher = StandardTestDispatcher() private val testScope = TestScope(testDispatcher) private val kosmos = testKosmos() private val testScope = kosmos.testScope private lateinit var keyguardBouncerRepository: KeyguardBouncerRepository private lateinit var transitionRepository: FakeKeyguardTransitionRepository @Mock private lateinit var bouncerLogger: TableLogBuffer private val keyguardBouncerRepository = kosmos.fakeKeyguardBouncerRepository private val transitionRepository = kosmos.fakeKeyguardTransitionRepository @Before override fun setUp() { allowTestableLooperAsMainThread() // repeatWhenAttached requires the main thread MockitoAnnotations.initMocks(this) keyguardBouncerRepository = KeyguardBouncerRepositoryImpl( FakeSystemClock(), testScope.backgroundScope, bouncerLogger, ) transitionRepository = FakeKeyguardTransitionRepository() super.setUp() } override fun createUdfpsKeyguardViewController(): UdfpsKeyguardViewControllerLegacy { mPrimaryBouncerInteractor = PrimaryBouncerInteractor( keyguardBouncerRepository, mock(BouncerView::class.java), mock(Handler::class.java), mKeyguardStateController, mock(KeyguardSecurityModel::class.java), mock(PrimaryBouncerCallbackInteractor::class.java), mock(FalsingCollector::class.java), mock(DismissCallbackRegistry::class.java), context, mKeyguardUpdateMonitor, FakeTrustRepository(), testScope.backgroundScope, mSelectedUserInteractor, mock(DeviceEntryFaceAuthInteractor::class.java), ) mAlternateBouncerInteractor = AlternateBouncerInteractor( mock(StatusBarStateController::class.java), mock(KeyguardStateController::class.java), keyguardBouncerRepository, FakeFingerprintPropertyRepository(), mock(BiometricSettingsRepository::class.java), mock(SystemClock::class.java), mKeyguardUpdateMonitor, testScope.backgroundScope, ) mKeyguardTransitionInteractor = KeyguardTransitionInteractorFactory.create( scope = testScope.backgroundScope, repository = transitionRepository, ) .keyguardTransitionInteractor mUdfpsOverlayInteractor = UdfpsOverlayInteractor( context, mock(AuthController::class.java), mock(SelectedUserInteractor::class.java), testScope.backgroundScope, ) mPrimaryBouncerInteractor = kosmos.primaryBouncerInteractor mAlternateBouncerInteractor = kosmos.alternateBouncerInteractor mKeyguardTransitionInteractor = kosmos.keyguardTransitionInteractor mUdfpsOverlayInteractor = kosmos.udfpsOverlayInteractor return createUdfpsKeyguardViewController(/* useModernBouncer */ true) } Loading packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepositoryTest.kt +36 −106 Original line number Diff line number Diff line Loading @@ -37,16 +37,11 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.internal.logging.InstanceId.fakeInstanceId import com.android.internal.logging.UiEventLogger import com.android.keyguard.KeyguardUpdateMonitor import com.android.systemui.Flags as AConfigFlags import com.android.systemui.SysuiTestCase import com.android.systemui.biometrics.data.repository.FakeDisplayStateRepository import com.android.systemui.biometrics.data.repository.FakeFacePropertyRepository import com.android.systemui.biometrics.data.repository.FakeFingerprintPropertyRepository import com.android.systemui.biometrics.domain.interactor.DisplayStateInteractor import com.android.systemui.biometrics.domain.interactor.DisplayStateInteractorImpl import com.android.systemui.bouncer.data.repository.FakeKeyguardBouncerRepository import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor import com.android.systemui.biometrics.domain.interactor.displayStateInteractor import com.android.systemui.bouncer.data.repository.fakeKeyguardBouncerRepository import com.android.systemui.bouncer.domain.interactor.alternateBouncerInteractor import com.android.systemui.coroutines.FlowValue import com.android.systemui.coroutines.collectLastValue import com.android.systemui.coroutines.collectValues Loading @@ -59,52 +54,46 @@ import com.android.systemui.deviceentry.shared.model.FaceAuthenticationStatus import com.android.systemui.deviceentry.shared.model.FaceDetectionStatus import com.android.systemui.deviceentry.shared.model.HelpFaceAuthenticationStatus import com.android.systemui.deviceentry.shared.model.SuccessFaceAuthenticationStatus import com.android.systemui.display.data.repository.FakeDisplayRepository import com.android.systemui.display.data.repository.display import com.android.systemui.display.data.repository.displayRepository import com.android.systemui.dump.DumpManager import com.android.systemui.flags.FakeFeatureFlags import com.android.systemui.keyguard.data.repository.BiometricType import com.android.systemui.keyguard.data.repository.FakeBiometricSettingsRepository import com.android.systemui.keyguard.data.repository.FakeCommandQueue 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.data.repository.FakeTrustRepository import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardInteractorFactory import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractorFactory import com.android.systemui.keyguard.data.repository.fakeBiometricSettingsRepository import com.android.systemui.keyguard.data.repository.fakeCommandQueue 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.data.repository.fakeTrustRepository import com.android.systemui.keyguard.domain.interactor.keyguardInteractor import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope import com.android.systemui.log.FaceAuthenticationLogger import com.android.systemui.log.SessionTracker import com.android.systemui.log.logcatLogBuffer import com.android.systemui.log.table.TableLogBuffer import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.power.data.repository.FakePowerRepository import com.android.systemui.power.domain.interactor.PowerInteractor import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAsleepForTest import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAwakeForTest import com.android.systemui.power.domain.interactor.PowerInteractorFactory import com.android.systemui.power.domain.interactor.powerInteractor import com.android.systemui.res.R import com.android.systemui.statusbar.phone.FakeKeyguardStateController import com.android.systemui.statusbar.commandQueue import com.android.systemui.statusbar.phone.KeyguardBypassController import com.android.systemui.testKosmos import com.android.systemui.user.data.model.SelectionStatus import com.android.systemui.user.data.repository.FakeUserRepository import com.android.systemui.util.concurrency.FakeExecutor import com.android.systemui.user.data.repository.fakeUserRepository import com.android.systemui.util.mockito.KotlinArgumentCaptor import com.android.systemui.util.mockito.captureMany import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever import com.android.systemui.util.time.FakeSystemClock import com.android.systemui.util.time.SystemClock import com.google.common.truth.Truth.assertThat import java.io.PrintWriter import java.io.StringWriter import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.StandardTestDispatcher import kotlinx.coroutines.test.TestDispatcher import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.advanceTimeBy import kotlinx.coroutines.test.runCurrent Loading @@ -129,6 +118,7 @@ import org.mockito.MockitoAnnotations @SmallTest @RunWith(AndroidJUnit4::class) class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { private val kosmos = testKosmos().apply { this.commandQueue = this.fakeCommandQueue } private lateinit var underTest: DeviceEntryFaceAuthRepositoryImpl @Mock private lateinit var faceManager: FaceManager Loading @@ -136,7 +126,6 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { @Mock private lateinit var sessionTracker: SessionTracker @Mock private lateinit var uiEventLogger: UiEventLogger @Mock private lateinit var dumpManager: DumpManager @Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor @Captor private lateinit var authenticationCallback: ArgumentCaptor<FaceManager.AuthenticationCallback> Loading @@ -151,11 +140,11 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { @Captor private lateinit var faceLockoutResetCallback: ArgumentCaptor<FaceManager.LockoutResetCallback> private lateinit var testDispatcher: TestDispatcher private val testDispatcher = kosmos.testDispatcher private lateinit var keyguardTransitionRepository: FakeKeyguardTransitionRepository private lateinit var testScope: TestScope private lateinit var fakeUserRepository: FakeUserRepository private val keyguardTransitionRepository = kosmos.fakeKeyguardTransitionRepository private val testScope = kosmos.testScope private val fakeUserRepository = kosmos.fakeUserRepository private lateinit var authStatus: FlowValue<FaceAuthenticationStatus?> private lateinit var detectStatus: FlowValue<FaceDetectionStatus?> private lateinit var authRunning: FlowValue<Boolean?> Loading @@ -163,88 +152,30 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { private lateinit var lockedOut: FlowValue<Boolean?> private lateinit var canFaceAuthRun: FlowValue<Boolean?> private lateinit var authenticated: FlowValue<Boolean?> private lateinit var biometricSettingsRepository: FakeBiometricSettingsRepository private lateinit var deviceEntryFingerprintAuthRepository: FakeDeviceEntryFingerprintAuthRepository private lateinit var trustRepository: FakeTrustRepository private lateinit var keyguardRepository: FakeKeyguardRepository private lateinit var powerRepository: FakePowerRepository private lateinit var powerInteractor: PowerInteractor private lateinit var keyguardInteractor: KeyguardInteractor private lateinit var alternateBouncerInteractor: AlternateBouncerInteractor private lateinit var displayStateInteractor: DisplayStateInteractor private lateinit var bouncerRepository: FakeKeyguardBouncerRepository private lateinit var displayRepository: FakeDisplayRepository private lateinit var fakeCommandQueue: FakeCommandQueue private val biometricSettingsRepository = kosmos.fakeBiometricSettingsRepository private val deviceEntryFingerprintAuthRepository = kosmos.fakeDeviceEntryFingerprintAuthRepository private val trustRepository = kosmos.fakeTrustRepository private val keyguardRepository = kosmos.fakeKeyguardRepository private val powerInteractor = kosmos.powerInteractor private val keyguardInteractor = kosmos.keyguardInteractor private val alternateBouncerInteractor = kosmos.alternateBouncerInteractor private val displayStateInteractor = kosmos.displayStateInteractor private val bouncerRepository = kosmos.fakeKeyguardBouncerRepository private val displayRepository = kosmos.displayRepository private val fakeCommandQueue = kosmos.fakeCommandQueue private val keyguardTransitionInteractor = kosmos.keyguardTransitionInteractor private lateinit var featureFlags: FakeFeatureFlags private lateinit var fakeFacePropertyRepository: FakeFacePropertyRepository private var wasAuthCancelled = false private var wasDetectCancelled = false private lateinit var keyguardTransitionInteractor: KeyguardTransitionInteractor @Before fun setup() { MockitoAnnotations.initMocks(this) testDispatcher = StandardTestDispatcher() testScope = TestScope(testDispatcher) fakeUserRepository = FakeUserRepository() fakeUserRepository.setUserInfos(listOf(primaryUser, secondaryUser)) biometricSettingsRepository = FakeBiometricSettingsRepository() deviceEntryFingerprintAuthRepository = FakeDeviceEntryFingerprintAuthRepository() trustRepository = FakeTrustRepository() featureFlags = FakeFeatureFlags() powerRepository = FakePowerRepository() powerInteractor = PowerInteractorFactory.create( repository = powerRepository, ) .powerInteractor val withDeps = KeyguardInteractorFactory.create( featureFlags = featureFlags, powerInteractor = powerInteractor, ) keyguardInteractor = withDeps.keyguardInteractor keyguardRepository = withDeps.repository bouncerRepository = withDeps.bouncerRepository keyguardTransitionRepository = FakeKeyguardTransitionRepository() keyguardTransitionInteractor = KeyguardTransitionInteractorFactory.create( scope = testScope.backgroundScope, repository = keyguardTransitionRepository, keyguardInteractor = keyguardInteractor, ) .keyguardTransitionInteractor fakeCommandQueue = withDeps.commandQueue alternateBouncerInteractor = AlternateBouncerInteractor( bouncerRepository = bouncerRepository, fingerprintPropertyRepository = FakeFingerprintPropertyRepository(), biometricSettingsRepository = biometricSettingsRepository, systemClock = mock(SystemClock::class.java), keyguardStateController = FakeKeyguardStateController(), statusBarStateController = mock(StatusBarStateController::class.java), keyguardUpdateMonitor = keyguardUpdateMonitor, scope = testScope.backgroundScope, ) displayRepository = FakeDisplayRepository() displayStateInteractor = DisplayStateInteractorImpl( applicationScope = testScope.backgroundScope, context = context, mainExecutor = FakeExecutor(FakeSystemClock()), displayStateRepository = FakeDisplayStateRepository(), displayRepository = displayRepository, ) bypassStateChangedListener = KotlinArgumentCaptor(KeyguardBypassController.OnBypassStateChangedListener::class.java) whenever(sessionTracker.getSessionId(SESSION_KEYGUARD)).thenReturn(keyguardSessionId) Loading Loading @@ -282,7 +213,6 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { testScope.backgroundScope ) fakeFacePropertyRepository = FakeFacePropertyRepository() return DeviceEntryFaceAuthRepositoryImpl( mContext, fmOverride, Loading packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardLongPressInteractorTest.kt +25 −27 File changed.Preview size limit exceeded, changes collapsed. Show changes packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/LightRevealScrimInteractorTest.kt +12 −32 Original line number Diff line number Diff line Loading @@ -19,23 +19,23 @@ package com.android.systemui.keyguard.domain.interactor import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepository import com.android.systemui.keyguard.data.fakeLightRevealScrimRepository import com.android.systemui.keyguard.data.repository.FakeLightRevealScrimRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.kosmos.testScope import com.android.systemui.statusbar.LightRevealEffect import com.android.systemui.statusbar.LightRevealScrim import com.android.systemui.util.mockito.mock import com.android.systemui.testKosmos import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Assert.assertEquals import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mockito Loading @@ -43,29 +43,22 @@ import org.mockito.Mockito.anyBoolean import org.mockito.Mockito.never import org.mockito.Mockito.reset import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations @SmallTest @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidJUnit4::class) class LightRevealScrimInteractorTest : SysuiTestCase() { private val fakeKeyguardTransitionRepository = FakeKeyguardTransitionRepository() private val fakeLightRevealScrimRepository by lazy { Mockito.spy(FakeLightRevealScrimRepository()) val kosmos = testKosmos().apply { this.fakeLightRevealScrimRepository = Mockito.spy(FakeLightRevealScrimRepository()) } private val testScope = TestScope() private val fakeLightRevealScrimRepository = kosmos.fakeLightRevealScrimRepository private val keyguardTransitionInteractor by lazy { KeyguardTransitionInteractorFactory.create( scope = testScope.backgroundScope, repository = fakeKeyguardTransitionRepository, ) .keyguardTransitionInteractor } private val fakeKeyguardTransitionRepository = kosmos.fakeKeyguardTransitionRepository private val testScope = kosmos.testScope private lateinit var underTest: LightRevealScrimInteractor private val underTest = kosmos.lightRevealScrimInteractor private val reveal1 = object : LightRevealEffect { Loading @@ -77,19 +70,6 @@ class LightRevealScrimInteractorTest : SysuiTestCase() { override fun setRevealAmountOnScrim(amount: Float, scrim: LightRevealScrim) {} } @Before fun setUp() { MockitoAnnotations.initMocks(this) underTest = LightRevealScrimInteractor( keyguardTransitionInteractor, fakeLightRevealScrimRepository, testScope.backgroundScope, mock(), mock() ) } @Test fun lightRevealEffect_doesNotChangeDuringKeyguardTransition() = runTest(UnconfinedTestDispatcher()) { Loading Loading
packages/SystemUI/multivalentTests/src/com/android/keyguard/KeyguardSecurityContainerControllerTest.kt +2 −4 Original line number Diff line number Diff line Loading @@ -52,7 +52,7 @@ import com.android.systemui.deviceentry.domain.interactor.deviceEntryInteractor import com.android.systemui.flags.FakeFeatureFlags import com.android.systemui.flags.Flags import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractorFactory import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.testScope import com.android.systemui.log.SessionTracker Loading Loading @@ -236,9 +236,7 @@ class KeyguardSecurityContainerControllerTest : SysuiTestCase() { kosmos = testKosmos() sceneInteractor = kosmos.sceneInteractor keyguardTransitionInteractor = KeyguardTransitionInteractorFactory.create(kosmos.testScope.backgroundScope) .keyguardTransitionInteractor keyguardTransitionInteractor = kosmos.keyguardTransitionInteractor sceneTransitionStateFlow = MutableStateFlow(ObservableTransitionState.Idle(SceneKey.Lockscreen)) sceneInteractor.setTransitionState(sceneTransitionStateFlow) Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/biometrics/UdfpsKeyguardViewLegacyControllerWithCoroutinesTest.kt +16 −81 Original line number Diff line number Diff line Loading @@ -16,44 +16,27 @@ package com.android.systemui.biometrics import android.os.Handler import android.testing.TestableLooper import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.keyguard.KeyguardSecurityModel import com.android.systemui.biometrics.UdfpsKeyguardViewLegacy.ANIMATE_APPEAR_ON_SCREEN_OFF import com.android.systemui.biometrics.UdfpsKeyguardViewLegacy.ANIMATION_BETWEEN_AOD_AND_LOCKSCREEN import com.android.systemui.biometrics.data.repository.FakeFingerprintPropertyRepository import com.android.systemui.biometrics.domain.interactor.UdfpsOverlayInteractor import com.android.systemui.bouncer.data.repository.KeyguardBouncerRepository import com.android.systemui.bouncer.data.repository.KeyguardBouncerRepositoryImpl import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerCallbackInteractor import com.android.systemui.bouncer.domain.interactor.PrimaryBouncerInteractor import com.android.systemui.biometrics.domain.interactor.udfpsOverlayInteractor import com.android.systemui.bouncer.data.repository.fakeKeyguardBouncerRepository import com.android.systemui.bouncer.domain.interactor.alternateBouncerInteractor import com.android.systemui.bouncer.domain.interactor.primaryBouncerInteractor import com.android.systemui.bouncer.shared.constants.KeyguardBouncerConstants import com.android.systemui.bouncer.ui.BouncerView import com.android.systemui.classifier.FalsingCollector import com.android.systemui.coroutines.collectLastValue import com.android.systemui.deviceentry.domain.interactor.DeviceEntryFaceAuthInteractor import com.android.systemui.keyguard.DismissCallbackRegistry import com.android.systemui.keyguard.data.repository.BiometricSettingsRepository import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepository import com.android.systemui.keyguard.data.repository.FakeTrustRepository import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractorFactory 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.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.log.table.TableLogBuffer import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.kosmos.testScope import com.android.systemui.statusbar.StatusBarState import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.user.domain.interactor.SelectedUserInteractor import com.android.systemui.testKosmos import com.android.systemui.util.mockito.whenever import com.android.systemui.util.time.FakeSystemClock import com.android.systemui.util.time.SystemClock import com.google.common.truth.Truth.assertThat import kotlinx.coroutines.test.StandardTestDispatcher import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Assert.assertFalse Loading @@ -64,9 +47,7 @@ import org.junit.runner.RunWith import org.mockito.ArgumentMatchers.any import org.mockito.ArgumentMatchers.anyInt import org.mockito.ArgumentMatchers.eq import org.mockito.Mock import org.mockito.Mockito import org.mockito.Mockito.mock import org.mockito.Mockito.never import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations Loading @@ -77,70 +58,24 @@ import org.mockito.MockitoAnnotations @kotlinx.coroutines.ExperimentalCoroutinesApi class UdfpsKeyguardViewLegacyControllerWithCoroutinesTest : UdfpsKeyguardViewLegacyControllerBaseTest() { private val testDispatcher = StandardTestDispatcher() private val testScope = TestScope(testDispatcher) private val kosmos = testKosmos() private val testScope = kosmos.testScope private lateinit var keyguardBouncerRepository: KeyguardBouncerRepository private lateinit var transitionRepository: FakeKeyguardTransitionRepository @Mock private lateinit var bouncerLogger: TableLogBuffer private val keyguardBouncerRepository = kosmos.fakeKeyguardBouncerRepository private val transitionRepository = kosmos.fakeKeyguardTransitionRepository @Before override fun setUp() { allowTestableLooperAsMainThread() // repeatWhenAttached requires the main thread MockitoAnnotations.initMocks(this) keyguardBouncerRepository = KeyguardBouncerRepositoryImpl( FakeSystemClock(), testScope.backgroundScope, bouncerLogger, ) transitionRepository = FakeKeyguardTransitionRepository() super.setUp() } override fun createUdfpsKeyguardViewController(): UdfpsKeyguardViewControllerLegacy { mPrimaryBouncerInteractor = PrimaryBouncerInteractor( keyguardBouncerRepository, mock(BouncerView::class.java), mock(Handler::class.java), mKeyguardStateController, mock(KeyguardSecurityModel::class.java), mock(PrimaryBouncerCallbackInteractor::class.java), mock(FalsingCollector::class.java), mock(DismissCallbackRegistry::class.java), context, mKeyguardUpdateMonitor, FakeTrustRepository(), testScope.backgroundScope, mSelectedUserInteractor, mock(DeviceEntryFaceAuthInteractor::class.java), ) mAlternateBouncerInteractor = AlternateBouncerInteractor( mock(StatusBarStateController::class.java), mock(KeyguardStateController::class.java), keyguardBouncerRepository, FakeFingerprintPropertyRepository(), mock(BiometricSettingsRepository::class.java), mock(SystemClock::class.java), mKeyguardUpdateMonitor, testScope.backgroundScope, ) mKeyguardTransitionInteractor = KeyguardTransitionInteractorFactory.create( scope = testScope.backgroundScope, repository = transitionRepository, ) .keyguardTransitionInteractor mUdfpsOverlayInteractor = UdfpsOverlayInteractor( context, mock(AuthController::class.java), mock(SelectedUserInteractor::class.java), testScope.backgroundScope, ) mPrimaryBouncerInteractor = kosmos.primaryBouncerInteractor mAlternateBouncerInteractor = kosmos.alternateBouncerInteractor mKeyguardTransitionInteractor = kosmos.keyguardTransitionInteractor mUdfpsOverlayInteractor = kosmos.udfpsOverlayInteractor return createUdfpsKeyguardViewController(/* useModernBouncer */ true) } Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/deviceentry/data/repository/DeviceEntryFaceAuthRepositoryTest.kt +36 −106 Original line number Diff line number Diff line Loading @@ -37,16 +37,11 @@ import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.internal.logging.InstanceId.fakeInstanceId import com.android.internal.logging.UiEventLogger import com.android.keyguard.KeyguardUpdateMonitor import com.android.systemui.Flags as AConfigFlags import com.android.systemui.SysuiTestCase import com.android.systemui.biometrics.data.repository.FakeDisplayStateRepository import com.android.systemui.biometrics.data.repository.FakeFacePropertyRepository import com.android.systemui.biometrics.data.repository.FakeFingerprintPropertyRepository import com.android.systemui.biometrics.domain.interactor.DisplayStateInteractor import com.android.systemui.biometrics.domain.interactor.DisplayStateInteractorImpl import com.android.systemui.bouncer.data.repository.FakeKeyguardBouncerRepository import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor import com.android.systemui.biometrics.domain.interactor.displayStateInteractor import com.android.systemui.bouncer.data.repository.fakeKeyguardBouncerRepository import com.android.systemui.bouncer.domain.interactor.alternateBouncerInteractor import com.android.systemui.coroutines.FlowValue import com.android.systemui.coroutines.collectLastValue import com.android.systemui.coroutines.collectValues Loading @@ -59,52 +54,46 @@ import com.android.systemui.deviceentry.shared.model.FaceAuthenticationStatus import com.android.systemui.deviceentry.shared.model.FaceDetectionStatus import com.android.systemui.deviceentry.shared.model.HelpFaceAuthenticationStatus import com.android.systemui.deviceentry.shared.model.SuccessFaceAuthenticationStatus import com.android.systemui.display.data.repository.FakeDisplayRepository import com.android.systemui.display.data.repository.display import com.android.systemui.display.data.repository.displayRepository import com.android.systemui.dump.DumpManager import com.android.systemui.flags.FakeFeatureFlags import com.android.systemui.keyguard.data.repository.BiometricType import com.android.systemui.keyguard.data.repository.FakeBiometricSettingsRepository import com.android.systemui.keyguard.data.repository.FakeCommandQueue 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.data.repository.FakeTrustRepository import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardInteractorFactory import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractorFactory import com.android.systemui.keyguard.data.repository.fakeBiometricSettingsRepository import com.android.systemui.keyguard.data.repository.fakeCommandQueue 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.data.repository.fakeTrustRepository import com.android.systemui.keyguard.domain.interactor.keyguardInteractor import com.android.systemui.keyguard.domain.interactor.keyguardTransitionInteractor import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.kosmos.testDispatcher import com.android.systemui.kosmos.testScope import com.android.systemui.log.FaceAuthenticationLogger import com.android.systemui.log.SessionTracker import com.android.systemui.log.logcatLogBuffer import com.android.systemui.log.table.TableLogBuffer import com.android.systemui.plugins.statusbar.StatusBarStateController import com.android.systemui.power.data.repository.FakePowerRepository import com.android.systemui.power.domain.interactor.PowerInteractor import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAsleepForTest import com.android.systemui.power.domain.interactor.PowerInteractor.Companion.setAwakeForTest import com.android.systemui.power.domain.interactor.PowerInteractorFactory import com.android.systemui.power.domain.interactor.powerInteractor import com.android.systemui.res.R import com.android.systemui.statusbar.phone.FakeKeyguardStateController import com.android.systemui.statusbar.commandQueue import com.android.systemui.statusbar.phone.KeyguardBypassController import com.android.systemui.testKosmos import com.android.systemui.user.data.model.SelectionStatus import com.android.systemui.user.data.repository.FakeUserRepository import com.android.systemui.util.concurrency.FakeExecutor import com.android.systemui.user.data.repository.fakeUserRepository import com.android.systemui.util.mockito.KotlinArgumentCaptor import com.android.systemui.util.mockito.captureMany import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever import com.android.systemui.util.time.FakeSystemClock import com.android.systemui.util.time.SystemClock import com.google.common.truth.Truth.assertThat import java.io.PrintWriter import java.io.StringWriter import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.test.StandardTestDispatcher import kotlinx.coroutines.test.TestDispatcher import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.advanceTimeBy import kotlinx.coroutines.test.runCurrent Loading @@ -129,6 +118,7 @@ import org.mockito.MockitoAnnotations @SmallTest @RunWith(AndroidJUnit4::class) class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { private val kosmos = testKosmos().apply { this.commandQueue = this.fakeCommandQueue } private lateinit var underTest: DeviceEntryFaceAuthRepositoryImpl @Mock private lateinit var faceManager: FaceManager Loading @@ -136,7 +126,6 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { @Mock private lateinit var sessionTracker: SessionTracker @Mock private lateinit var uiEventLogger: UiEventLogger @Mock private lateinit var dumpManager: DumpManager @Mock private lateinit var keyguardUpdateMonitor: KeyguardUpdateMonitor @Captor private lateinit var authenticationCallback: ArgumentCaptor<FaceManager.AuthenticationCallback> Loading @@ -151,11 +140,11 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { @Captor private lateinit var faceLockoutResetCallback: ArgumentCaptor<FaceManager.LockoutResetCallback> private lateinit var testDispatcher: TestDispatcher private val testDispatcher = kosmos.testDispatcher private lateinit var keyguardTransitionRepository: FakeKeyguardTransitionRepository private lateinit var testScope: TestScope private lateinit var fakeUserRepository: FakeUserRepository private val keyguardTransitionRepository = kosmos.fakeKeyguardTransitionRepository private val testScope = kosmos.testScope private val fakeUserRepository = kosmos.fakeUserRepository private lateinit var authStatus: FlowValue<FaceAuthenticationStatus?> private lateinit var detectStatus: FlowValue<FaceDetectionStatus?> private lateinit var authRunning: FlowValue<Boolean?> Loading @@ -163,88 +152,30 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { private lateinit var lockedOut: FlowValue<Boolean?> private lateinit var canFaceAuthRun: FlowValue<Boolean?> private lateinit var authenticated: FlowValue<Boolean?> private lateinit var biometricSettingsRepository: FakeBiometricSettingsRepository private lateinit var deviceEntryFingerprintAuthRepository: FakeDeviceEntryFingerprintAuthRepository private lateinit var trustRepository: FakeTrustRepository private lateinit var keyguardRepository: FakeKeyguardRepository private lateinit var powerRepository: FakePowerRepository private lateinit var powerInteractor: PowerInteractor private lateinit var keyguardInteractor: KeyguardInteractor private lateinit var alternateBouncerInteractor: AlternateBouncerInteractor private lateinit var displayStateInteractor: DisplayStateInteractor private lateinit var bouncerRepository: FakeKeyguardBouncerRepository private lateinit var displayRepository: FakeDisplayRepository private lateinit var fakeCommandQueue: FakeCommandQueue private val biometricSettingsRepository = kosmos.fakeBiometricSettingsRepository private val deviceEntryFingerprintAuthRepository = kosmos.fakeDeviceEntryFingerprintAuthRepository private val trustRepository = kosmos.fakeTrustRepository private val keyguardRepository = kosmos.fakeKeyguardRepository private val powerInteractor = kosmos.powerInteractor private val keyguardInteractor = kosmos.keyguardInteractor private val alternateBouncerInteractor = kosmos.alternateBouncerInteractor private val displayStateInteractor = kosmos.displayStateInteractor private val bouncerRepository = kosmos.fakeKeyguardBouncerRepository private val displayRepository = kosmos.displayRepository private val fakeCommandQueue = kosmos.fakeCommandQueue private val keyguardTransitionInteractor = kosmos.keyguardTransitionInteractor private lateinit var featureFlags: FakeFeatureFlags private lateinit var fakeFacePropertyRepository: FakeFacePropertyRepository private var wasAuthCancelled = false private var wasDetectCancelled = false private lateinit var keyguardTransitionInteractor: KeyguardTransitionInteractor @Before fun setup() { MockitoAnnotations.initMocks(this) testDispatcher = StandardTestDispatcher() testScope = TestScope(testDispatcher) fakeUserRepository = FakeUserRepository() fakeUserRepository.setUserInfos(listOf(primaryUser, secondaryUser)) biometricSettingsRepository = FakeBiometricSettingsRepository() deviceEntryFingerprintAuthRepository = FakeDeviceEntryFingerprintAuthRepository() trustRepository = FakeTrustRepository() featureFlags = FakeFeatureFlags() powerRepository = FakePowerRepository() powerInteractor = PowerInteractorFactory.create( repository = powerRepository, ) .powerInteractor val withDeps = KeyguardInteractorFactory.create( featureFlags = featureFlags, powerInteractor = powerInteractor, ) keyguardInteractor = withDeps.keyguardInteractor keyguardRepository = withDeps.repository bouncerRepository = withDeps.bouncerRepository keyguardTransitionRepository = FakeKeyguardTransitionRepository() keyguardTransitionInteractor = KeyguardTransitionInteractorFactory.create( scope = testScope.backgroundScope, repository = keyguardTransitionRepository, keyguardInteractor = keyguardInteractor, ) .keyguardTransitionInteractor fakeCommandQueue = withDeps.commandQueue alternateBouncerInteractor = AlternateBouncerInteractor( bouncerRepository = bouncerRepository, fingerprintPropertyRepository = FakeFingerprintPropertyRepository(), biometricSettingsRepository = biometricSettingsRepository, systemClock = mock(SystemClock::class.java), keyguardStateController = FakeKeyguardStateController(), statusBarStateController = mock(StatusBarStateController::class.java), keyguardUpdateMonitor = keyguardUpdateMonitor, scope = testScope.backgroundScope, ) displayRepository = FakeDisplayRepository() displayStateInteractor = DisplayStateInteractorImpl( applicationScope = testScope.backgroundScope, context = context, mainExecutor = FakeExecutor(FakeSystemClock()), displayStateRepository = FakeDisplayStateRepository(), displayRepository = displayRepository, ) bypassStateChangedListener = KotlinArgumentCaptor(KeyguardBypassController.OnBypassStateChangedListener::class.java) whenever(sessionTracker.getSessionId(SESSION_KEYGUARD)).thenReturn(keyguardSessionId) Loading Loading @@ -282,7 +213,6 @@ class DeviceEntryFaceAuthRepositoryTest : SysuiTestCase() { testScope.backgroundScope ) fakeFacePropertyRepository = FakeFacePropertyRepository() return DeviceEntryFaceAuthRepositoryImpl( mContext, fmOverride, Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/KeyguardLongPressInteractorTest.kt +25 −27 File changed.Preview size limit exceeded, changes collapsed. Show changes
packages/SystemUI/multivalentTests/src/com/android/systemui/keyguard/domain/interactor/LightRevealScrimInteractorTest.kt +12 −32 Original line number Diff line number Diff line Loading @@ -19,23 +19,23 @@ package com.android.systemui.keyguard.domain.interactor import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.keyguard.data.repository.FakeKeyguardTransitionRepository import com.android.systemui.keyguard.data.fakeLightRevealScrimRepository import com.android.systemui.keyguard.data.repository.FakeLightRevealScrimRepository import com.android.systemui.keyguard.data.repository.fakeKeyguardTransitionRepository import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.keyguard.shared.model.TransitionState import com.android.systemui.keyguard.shared.model.TransitionStep import com.android.systemui.kosmos.testScope import com.android.systemui.statusbar.LightRevealEffect import com.android.systemui.statusbar.LightRevealScrim import com.android.systemui.util.mockito.mock import com.android.systemui.testKosmos import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.UnconfinedTestDispatcher import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Assert.assertEquals import org.junit.Before import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mockito Loading @@ -43,29 +43,22 @@ import org.mockito.Mockito.anyBoolean import org.mockito.Mockito.never import org.mockito.Mockito.reset import org.mockito.Mockito.verify import org.mockito.MockitoAnnotations @SmallTest @OptIn(ExperimentalCoroutinesApi::class) @RunWith(AndroidJUnit4::class) class LightRevealScrimInteractorTest : SysuiTestCase() { private val fakeKeyguardTransitionRepository = FakeKeyguardTransitionRepository() private val fakeLightRevealScrimRepository by lazy { Mockito.spy(FakeLightRevealScrimRepository()) val kosmos = testKosmos().apply { this.fakeLightRevealScrimRepository = Mockito.spy(FakeLightRevealScrimRepository()) } private val testScope = TestScope() private val fakeLightRevealScrimRepository = kosmos.fakeLightRevealScrimRepository private val keyguardTransitionInteractor by lazy { KeyguardTransitionInteractorFactory.create( scope = testScope.backgroundScope, repository = fakeKeyguardTransitionRepository, ) .keyguardTransitionInteractor } private val fakeKeyguardTransitionRepository = kosmos.fakeKeyguardTransitionRepository private val testScope = kosmos.testScope private lateinit var underTest: LightRevealScrimInteractor private val underTest = kosmos.lightRevealScrimInteractor private val reveal1 = object : LightRevealEffect { Loading @@ -77,19 +70,6 @@ class LightRevealScrimInteractorTest : SysuiTestCase() { override fun setRevealAmountOnScrim(amount: Float, scrim: LightRevealScrim) {} } @Before fun setUp() { MockitoAnnotations.initMocks(this) underTest = LightRevealScrimInteractor( keyguardTransitionInteractor, fakeLightRevealScrimRepository, testScope.backgroundScope, mock(), mock() ) } @Test fun lightRevealEffect_doesNotChangeDuringKeyguardTransition() = runTest(UnconfinedTestDispatcher()) { Loading