Adding more biometric screenshot tests

Test: atest FingerprintEnrollIntroScreenshotTest FingerprintEnrollFindSensorScreenshotTest FingerprintEnrollEnrollingScreenshotTest
Bug: 297083009
Change-Id: I11df6fbaefa9d333dcfe803577947a4be7af9882
This commit is contained in:
Joshua McCloskey
2024-02-13 18:56:07 +00:00
parent 98374376cc
commit d92faeb1cf
35 changed files with 805 additions and 554 deletions

View File

@@ -26,9 +26,9 @@ import android.os.CancellationSignal
import android.os.Handler
import androidx.test.core.app.ApplicationProvider
import com.android.settings.biometrics.GatekeeperPasswordProvider
import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepo
import com.android.settings.biometrics.fingerprint2.data.repository.FingerprintSensorRepository
import com.android.settings.biometrics.fingerprint2.domain.interactor.PressToAuthInteractor
import com.android.settings.biometrics.fingerprint2.domain.interactor.FingerprintManagerInteractorImpl
import com.android.settings.biometrics.fingerprint2.data.repository.PressToAuthRepo
import com.android.settings.biometrics.fingerprint2.lib.domain.interactor.FingerprintManagerInteractor
import com.android.settings.biometrics.fingerprint2.lib.model.Default
import com.android.settings.biometrics.fingerprint2.lib.model.EnrollReason
@@ -77,17 +77,16 @@ class FingerprintManagerInteractorTest {
@Mock private lateinit var gateKeeperPasswordProvider: GatekeeperPasswordProvider
private var testScope = TestScope(backgroundDispatcher)
private var pressToAuthRepo =
object : PressToAuthRepo {
override val isEnabled: Boolean
get() = false
private var pressToAuthInteractor =
object : PressToAuthInteractor {
override val isEnabled = flowOf(false)
}
@Before
fun setup() {
val sensor = FingerprintSensor(1, SensorStrength.STRONG, 5, FingerprintSensorType.POWER_BUTTON)
val fingerprintSensorRepo =
object : FingerprintSensorRepo {
val fingerprintSensorRepository =
object : FingerprintSensorRepository {
override val fingerprintSensor: Flow<FingerprintSensor> = flowOf(sensor)
}
@@ -96,9 +95,9 @@ class FingerprintManagerInteractorTest {
context,
backgroundDispatcher,
fingerprintManager,
fingerprintSensorRepo,
fingerprintSensorRepository,
gateKeeperPasswordProvider,
pressToAuthRepo,
pressToAuthInteractor,
Default,
)
}

View File

@@ -18,27 +18,30 @@ package com.android.settings.fingerprint2.enrollment.viewmodel
import android.content.Context
import android.content.res.Configuration
import android.view.accessibility.AccessibilityManager
import android.view.Surface
import androidx.arch.core.executor.testing.InstantTaskExecutorRule
import androidx.test.core.app.ApplicationProvider
import com.android.settings.biometrics.fingerprint2.domain.interactor.AccessibilityInteractor
import com.android.settings.biometrics.fingerprint2.domain.interactor.FoldStateInteractor
import com.android.settings.biometrics.fingerprint2.domain.interactor.OrientationInteractor
import com.android.settings.biometrics.fingerprint2.lib.model.Default
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.AccessibilityViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.BackgroundViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollFindSensorViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintFlowViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep.Education
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationStep
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintNavigationViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FoldStateViewModel
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.NavigationState
import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.OrientationStateViewModel
import com.android.settings.testutils2.FakeFingerprintManagerInteractor
import com.android.systemui.biometrics.shared.model.FingerprintSensor
import com.android.systemui.biometrics.shared.model.FingerprintSensorType
import com.android.systemui.biometrics.shared.model.SensorStrength
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.flowOf
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.coroutines.test.StandardTestDispatcher
import kotlinx.coroutines.test.TestScope
@@ -68,14 +71,13 @@ class FingerprintEnrollFindSensorViewModelV2Test {
private lateinit var gatekeeperViewModel: FingerprintGatekeeperViewModel
private lateinit var enrollViewModel: FingerprintEnrollViewModel
private lateinit var navigationViewModel: FingerprintNavigationViewModel
private lateinit var accessibilityViewModel: AccessibilityViewModel
private lateinit var foldStateViewModel: FoldStateViewModel
private lateinit var orientationStateViewModel: OrientationStateViewModel
private lateinit var accessibilityInteractor: AccessibilityInteractor
private lateinit var foldStateInteractor: FoldStateInteractor
private lateinit var orientationInteractor: OrientationInteractor
private lateinit var underTest: FingerprintEnrollFindSensorViewModel
private lateinit var backgroundViewModel: BackgroundViewModel
private val context: Context = ApplicationProvider.getApplicationContext()
private val accessibilityManager: AccessibilityManager =
context.getSystemService(AccessibilityManager::class.java)!!
private val foldState = MutableStateFlow(false)
@Before
fun setup() {
@@ -95,7 +97,7 @@ class FingerprintEnrollFindSensorViewModelV2Test {
val fingerprintFlowViewModel = FingerprintFlowViewModel(Default)
navigationViewModel =
FingerprintNavigationViewModel(
Education(sensor),
FingerprintNavigationStep.Education(sensor),
false,
fingerprintFlowViewModel,
fakeFingerprintManagerInteractor,
@@ -111,24 +113,39 @@ class FingerprintEnrollFindSensorViewModelV2Test {
navigationViewModel,
)
.create(FingerprintEnrollViewModel::class.java)
accessibilityViewModel =
AccessibilityViewModel.AccessibilityViewModelFactory(accessibilityManager)
.create(AccessibilityViewModel::class.java)
foldStateViewModel =
FoldStateViewModel.FoldStateViewModelFactory(context).create(FoldStateViewModel::class.java)
orientationStateViewModel =
OrientationStateViewModel.OrientationViewModelFactory(context)
.create(OrientationStateViewModel::class.java)
accessibilityInteractor =
object : AccessibilityInteractor {
override val isAccessibilityEnabled: Flow<Boolean> = flowOf(false)
}
foldStateInteractor =
object : FoldStateInteractor {
override val isFolded: Flow<Boolean> = foldState
override fun onConfigurationChange(newConfig: Configuration) {
TODO("Not yet implemented")
}
}
orientationInteractor =
object: OrientationInteractor {
override val orientation: Flow<Int>
get() = TODO("Not yet implemented")
override val rotation: Flow<Int> = flowOf(Surface.ROTATION_0)
override fun getRotationFromDefault(rotation: Int): Int {
TODO("Not yet implemented")
}
}
underTest =
FingerprintEnrollFindSensorViewModel.FingerprintEnrollFindSensorViewModelFactory(
navigationViewModel,
enrollViewModel,
gatekeeperViewModel,
backgroundViewModel,
accessibilityViewModel,
foldStateViewModel,
orientationStateViewModel,
accessibilityInteractor,
foldStateInteractor,
orientationInteractor,
fingerprintFlowViewModel,
fakeFingerprintManagerInteractor,
)
.create(FingerprintEnrollFindSensorViewModel::class.java)
}
@@ -171,8 +188,8 @@ class FingerprintEnrollFindSensorViewModelV2Test {
}
}
val config = createConfiguration(isFolded = true)
foldStateViewModel.onConfigurationChange(config)
foldState.update { true }
advanceUntilIdle()
assertThat(isFolded).isTrue()
assertThat(rotation).isEqualTo(context.display!!.rotation)
@@ -191,8 +208,8 @@ class FingerprintEnrollFindSensorViewModelV2Test {
}
}
val config = createConfiguration(isFolded = false)
foldStateViewModel.onConfigurationChange(config)
foldState.update { false }
advanceUntilIdle()
assertThat(isFolded).isFalse()
assertThat(rotation).isEqualTo(context.display!!.rotation)