Refactor SfpsEnrollmentFeatureImplTest

Bug: 288155127
Test: atest SfpsEnrollmentFeatureImplTest
Change-Id: I2725e73ad595db752328bc5092ff4295f634c154
This commit is contained in:
Wu Ahan
2024-02-19 14:49:26 +00:00
parent e9917e2f48
commit c7e3149a25
2 changed files with 46 additions and 69 deletions

View File

@@ -33,11 +33,14 @@ import android.view.animation.AccelerateInterpolator;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import com.android.internal.annotations.VisibleForTesting;
import com.android.settings.R; import com.android.settings.R;
import java.util.function.Function; import java.util.function.Function;
public class SfpsEnrollmentFeatureImpl implements SfpsEnrollmentFeature { public class SfpsEnrollmentFeatureImpl implements SfpsEnrollmentFeature {
@VisibleForTesting
public static final int HELP_ANIMATOR_DURATION = 550;
@Nullable @Nullable
private FingerprintManager mFingerprintManager = null; private FingerprintManager mFingerprintManager = null;
@@ -96,12 +99,11 @@ public class SfpsEnrollmentFeatureImpl implements SfpsEnrollmentFeature {
@Override @Override
public Animator getHelpAnimator(@NonNull View target) { public Animator getHelpAnimator(@NonNull View target) {
final float translationX = 40; final float translationX = 40;
final int duration = 550;
final ObjectAnimator help = ObjectAnimator.ofFloat(target, final ObjectAnimator help = ObjectAnimator.ofFloat(target,
"translationX" /* propertyName */, "translationX" /* propertyName */,
0, translationX, -1 * translationX, translationX, 0f); 0, translationX, -1 * translationX, translationX, 0f);
help.setInterpolator(new AccelerateInterpolator()); help.setInterpolator(new AccelerateInterpolator());
help.setDuration(duration); help.setDuration(HELP_ANIMATOR_DURATION);
help.setAutoCancel(false); help.setAutoCancel(false);
return help; return help;
} }

View File

@@ -44,16 +44,24 @@ import org.mockito.Mockito.`when` as whenever
@RunWith(AndroidJUnit4::class) @RunWith(AndroidJUnit4::class)
class SfpsEnrollmentFeatureImplTest { class SfpsEnrollmentFeatureImplTest {
private val STAGE_0 = 0
private val STAGE_1 = 1
private val STAGE_2 = 2
private val STAGE_3 = 3
private val STAGE_4 = 4
private val THRESHOLD_0 = 0f
private val THRESHOLD_1 = .36f
private val THRESHOLD_2 = .52f
private val THRESHOLD_3 = .76f
private val THRESHOLD_4 = 1f
@get:Rule @get:Rule
val mockito: MockitoRule = MockitoJUnit.rule() val mockito: MockitoRule = MockitoJUnit.rule()
@Spy @Spy
private val context: Context = ApplicationProvider.getApplicationContext() private val context: Context = ApplicationProvider.getApplicationContext()
private val settingsPackageName = "com.android.settings"
private lateinit var settingsContext: Context
@Mock @Mock
private lateinit var mockFingerprintManager: FingerprintManager private lateinit var mockFingerprintManager: FingerprintManager
@@ -61,31 +69,34 @@ class SfpsEnrollmentFeatureImplTest {
@Before @Before
fun setUp() { fun setUp() {
assertThat(mSfpsEnrollmentFeatureImpl).isInstanceOf(SfpsEnrollmentFeatureImpl::class.java)
whenever(context.getSystemService(FingerprintManager::class.java)) whenever(context.getSystemService(FingerprintManager::class.java))
.thenReturn(mockFingerprintManager) .thenReturn(mockFingerprintManager)
doReturn(0f).`when`(mockFingerprintManager).getEnrollStageThreshold(0) doReturn(THRESHOLD_0).`when`(mockFingerprintManager).getEnrollStageThreshold(STAGE_0)
doReturn(0.36f).`when`(mockFingerprintManager).getEnrollStageThreshold(1) doReturn(THRESHOLD_1).`when`(mockFingerprintManager).getEnrollStageThreshold(STAGE_1)
doReturn(0.52f).`when`(mockFingerprintManager).getEnrollStageThreshold(2) doReturn(THRESHOLD_2).`when`(mockFingerprintManager).getEnrollStageThreshold(STAGE_2)
doReturn(0.76f).`when`(mockFingerprintManager).getEnrollStageThreshold(3) doReturn(THRESHOLD_3).`when`(mockFingerprintManager).getEnrollStageThreshold(STAGE_3)
doReturn(1f).`when`(mockFingerprintManager).getEnrollStageThreshold(4) doReturn(THRESHOLD_4).`when`(mockFingerprintManager).getEnrollStageThreshold(STAGE_4)
settingsContext = context.createPackageContext(settingsPackageName, 0)
} }
@Test @Test
fun testGetEnrollStageThreshold() { fun testGetEnrollStageThreshold() {
assertThat(mSfpsEnrollmentFeatureImpl.getEnrollStageThreshold(context, 0)).isEqualTo(0f) assertThat(mSfpsEnrollmentFeatureImpl.getEnrollStageThreshold(context, STAGE_0))
assertThat(mSfpsEnrollmentFeatureImpl.getEnrollStageThreshold(context, 1)).isEqualTo(0.36f) .isEqualTo(THRESHOLD_0)
assertThat(mSfpsEnrollmentFeatureImpl.getEnrollStageThreshold(context, 2)).isEqualTo(0.52f) assertThat(mSfpsEnrollmentFeatureImpl.getEnrollStageThreshold(context, STAGE_1))
assertThat(mSfpsEnrollmentFeatureImpl.getEnrollStageThreshold(context, 3)).isEqualTo(0.76f) .isEqualTo(THRESHOLD_1)
assertThat(mSfpsEnrollmentFeatureImpl.getEnrollStageThreshold(context, 4)).isEqualTo(1f) assertThat(mSfpsEnrollmentFeatureImpl.getEnrollStageThreshold(context, STAGE_2))
.isEqualTo(THRESHOLD_2)
assertThat(mSfpsEnrollmentFeatureImpl.getEnrollStageThreshold(context, STAGE_3))
.isEqualTo(THRESHOLD_3)
assertThat(mSfpsEnrollmentFeatureImpl.getEnrollStageThreshold(context, STAGE_4))
.isEqualTo(THRESHOLD_4)
} }
@Test @Test
fun testGetHelpAnimator() { fun testGetHelpAnimator() {
val mockView: View = mock(View::class.java) val mockView: View = mock(View::class.java)
val animator: Animator = mSfpsEnrollmentFeatureImpl.getHelpAnimator(mockView) val animator: Animator = mSfpsEnrollmentFeatureImpl.getHelpAnimator(mockView)
assertThat(animator.duration).isEqualTo(550) assertThat(animator.duration).isEqualTo(SfpsEnrollmentFeatureImpl.HELP_ANIMATOR_DURATION)
} }
@Test @Test
@@ -115,42 +126,27 @@ class SfpsEnrollmentFeatureImplTest {
assertThat( assertThat(
mSfpsEnrollmentFeatureImpl.getFeaturedStageHeaderResource(SFPS_STAGE_NO_ANIMATION) mSfpsEnrollmentFeatureImpl.getFeaturedStageHeaderResource(SFPS_STAGE_NO_ANIMATION)
).isEqualTo( ).isEqualTo(
settingsContext.resources.getIdentifier( getSettingsResourcesId(type, "security_settings_fingerprint_enroll_repeat_title")
"security_settings_fingerprint_enroll_repeat_title",
type,
settingsPackageName)
) )
assertThat( assertThat(
mSfpsEnrollmentFeatureImpl.getFeaturedStageHeaderResource(SFPS_STAGE_CENTER) mSfpsEnrollmentFeatureImpl.getFeaturedStageHeaderResource(SFPS_STAGE_CENTER)
).isEqualTo( ).isEqualTo(
settingsContext.resources.getIdentifier( getSettingsResourcesId(type, "security_settings_sfps_enroll_finger_center_title")
"security_settings_sfps_enroll_finger_center_title",
type,
settingsPackageName)
) )
assertThat( assertThat(
mSfpsEnrollmentFeatureImpl.getFeaturedStageHeaderResource(SFPS_STAGE_FINGERTIP) mSfpsEnrollmentFeatureImpl.getFeaturedStageHeaderResource(SFPS_STAGE_FINGERTIP)
).isEqualTo( ).isEqualTo(
settingsContext.resources.getIdentifier( getSettingsResourcesId(type, "security_settings_sfps_enroll_fingertip_title")
"security_settings_sfps_enroll_fingertip_title",
type,
settingsPackageName)
) )
assertThat( assertThat(
mSfpsEnrollmentFeatureImpl.getFeaturedStageHeaderResource(SFPS_STAGE_LEFT_EDGE) mSfpsEnrollmentFeatureImpl.getFeaturedStageHeaderResource(SFPS_STAGE_LEFT_EDGE)
).isEqualTo( ).isEqualTo(
settingsContext.resources.getIdentifier( getSettingsResourcesId(type, "security_settings_sfps_enroll_left_edge_title")
"security_settings_sfps_enroll_left_edge_title",
type,
settingsPackageName)
) )
assertThat( assertThat(
mSfpsEnrollmentFeatureImpl.getFeaturedStageHeaderResource(SFPS_STAGE_RIGHT_EDGE) mSfpsEnrollmentFeatureImpl.getFeaturedStageHeaderResource(SFPS_STAGE_RIGHT_EDGE)
).isEqualTo( ).isEqualTo(
settingsContext.resources.getIdentifier( getSettingsResourcesId(type, "security_settings_sfps_enroll_right_edge_title")
"security_settings_sfps_enroll_right_edge_title",
type,
settingsPackageName)
) )
} }
@@ -159,43 +155,22 @@ class SfpsEnrollmentFeatureImplTest {
val type = "raw" val type = "raw"
assertThat( assertThat(
mSfpsEnrollmentFeatureImpl.getSfpsEnrollLottiePerStage(SFPS_STAGE_NO_ANIMATION) mSfpsEnrollmentFeatureImpl.getSfpsEnrollLottiePerStage(SFPS_STAGE_NO_ANIMATION)
).isEqualTo( ).isEqualTo(getSettingsResourcesId(type, "sfps_lottie_no_animation"))
settingsContext.resources.getIdentifier(
"sfps_lottie_no_animation",
type,
settingsPackageName)
)
assertThat( assertThat(
mSfpsEnrollmentFeatureImpl.getSfpsEnrollLottiePerStage(SFPS_STAGE_CENTER) mSfpsEnrollmentFeatureImpl.getSfpsEnrollLottiePerStage(SFPS_STAGE_CENTER)
).isEqualTo( ).isEqualTo(getSettingsResourcesId(type, "sfps_lottie_pad_center"))
settingsContext.resources.getIdentifier(
"sfps_lottie_pad_center",
type,
settingsPackageName)
)
assertThat( assertThat(
mSfpsEnrollmentFeatureImpl.getSfpsEnrollLottiePerStage(SFPS_STAGE_FINGERTIP) mSfpsEnrollmentFeatureImpl.getSfpsEnrollLottiePerStage(SFPS_STAGE_FINGERTIP)
).isEqualTo( ).isEqualTo(getSettingsResourcesId(type, "sfps_lottie_tip"))
settingsContext.resources.getIdentifier(
"sfps_lottie_tip",
type,
settingsPackageName)
)
assertThat( assertThat(
mSfpsEnrollmentFeatureImpl.getSfpsEnrollLottiePerStage(SFPS_STAGE_LEFT_EDGE) mSfpsEnrollmentFeatureImpl.getSfpsEnrollLottiePerStage(SFPS_STAGE_LEFT_EDGE)
).isEqualTo( ).isEqualTo(getSettingsResourcesId(type, "sfps_lottie_left_edge"))
settingsContext.resources.getIdentifier(
"sfps_lottie_left_edge",
type,
settingsPackageName)
)
assertThat( assertThat(
mSfpsEnrollmentFeatureImpl.getSfpsEnrollLottiePerStage(SFPS_STAGE_RIGHT_EDGE) mSfpsEnrollmentFeatureImpl.getSfpsEnrollLottiePerStage(SFPS_STAGE_RIGHT_EDGE)
).isEqualTo( ).isEqualTo(getSettingsResourcesId(type, "sfps_lottie_right_edge"))
settingsContext.resources.getIdentifier( }
"sfps_lottie_right_edge",
type, private fun getSettingsResourcesId(type: String, name: String) : Int {
settingsPackageName) return context.resources.getIdentifier(name, type, context.packageName)
)
} }
} }