Merge "Revert "Adding back screenshot test to Settings."" into main
diff --git a/res/layout/fingerprint_v2_enroll_introduction.xml b/res/layout/fingerprint_v2_enroll_introduction.xml
index cf39206..2fd1f9c 100644
--- a/res/layout/fingerprint_v2_enroll_introduction.xml
+++ b/res/layout/fingerprint_v2_enroll_introduction.xml
@@ -24,7 +24,6 @@
<LinearLayout
style="@style/SudContentFrame"
- android:id="@+id/enroll_intro_content_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false"
diff --git a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt
index 4024692..898b158 100644
--- a/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt
+++ b/src/com/android/settings/biometrics/fingerprint2/ui/enrollment/fragment/FingerprintEnrollIntroV2Fragment.kt
@@ -186,9 +186,6 @@
return view
}
- /**
- * TODO (b/305269201): This link isn't displaying for screenshot tests.
- */
private fun setFooterLink(view: View) {
val footerLink: TextView = view.requireViewById(R.id.footer_learn_more)
footerLink.movementMethod = LinkMovementMethod.getInstance()
diff --git a/tests/screenshot/Android.bp b/tests/screenshot/Android.bp
deleted file mode 100644
index b1b7b1b..0000000
--- a/tests/screenshot/Android.bp
+++ /dev/null
@@ -1,64 +0,0 @@
-//
-// Copyright (C) 2023 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-android_app {
- name: "ScreenshotTestStub",
- defaults: [
- "SettingsLibDefaults",
- ],
- platform_apis: true,
- certificate: "platform",
- privileged: true,
- use_resource_processor: true,
-
- static_libs: [
- "Settings-core",
- "androidx.fragment_fragment-testing",
- "androidx.fragment_fragment",
- ],
-
- aaptflags: ["--extra-packages com.android.settings"],
-}
-
-android_test {
- name: "SettingsScreenshotTests",
- platform_apis: true,
- certificate: "platform",
- test_suites: ["device-tests"],
- srcs: [
- "src/**/*.kt",
- ],
- static_libs: [
- "androidx.fragment_fragment-testing",
- "androidx.fragment_fragment",
- "androidx.test.rules",
- "androidx.test.ext.junit",
- "platform-screenshot-diff-core",
- "Settings-testutils2",
- "androidx.test.core",
- "androidx.test.espresso.core",
- "kotlinx-coroutines-android",
- "androidx.lifecycle_lifecycle-runtime-testing",
- "kotlinx_coroutines_test",
- "Settings-core",
- "androidx.test.runner",
- ],
- compile_multilib: "both",
- manifest: "AndroidManifest.xml",
- test_config: "AndroidTest.xml",
- use_embedded_native_libs: false,
- asset_dirs: ["assets"],
- instrumentation_for: "ScreenshotTestStub",
-}
diff --git a/tests/screenshot/AndroidManifest.xml b/tests/screenshot/AndroidManifest.xml
deleted file mode 100644
index c9a426c..0000000
--- a/tests/screenshot/AndroidManifest.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
- Copyright (C) 2023 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- package="com.android.settings.tests.screenshot"
- >
-
- <application>
- <uses-library android:name="android.test.runner" />
- <provider
- android:name="com.android.settings.slices.SettingsSliceProvider"
- android:authorities="com.android.settings.tests.screenshot.disabled"
- android:enabled="false"
- tools:node="remove"
- tools:replace="android:authorities" />
- </application>
-
- <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
- <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
- <uses-permission android:name="android.permission.READ_LOGS" />
- <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
-
- <instrumentation
- android:name="androidx.test.runner.AndroidJUnitRunner"
- android:label="Android Settings Screenshot tests"
- android:targetPackage="com.android.settings.tests.screenshot" />
-
-</manifest>
diff --git a/tests/screenshot/AndroidTest.xml b/tests/screenshot/AndroidTest.xml
deleted file mode 100644
index 7496ffd..0000000
--- a/tests/screenshot/AndroidTest.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
- ~ Copyright (C) 2023 The Android Open Source Project
- ~
- ~ Licensed under the Apache License, Version 2.0 (the "License");
- ~ you may not use this file except in compliance with the License.
- ~ You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing, software
- ~ distributed under the License is distributed on an "AS IS" BASIS,
- ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- ~ See the License for the specific language governing permissions and
- ~ limitations under the License.
- -->
-
-<configuration description="Runs settings screendiff tests.">
- <option name="test-suite-tag" value="apct-instrumentation" />
- <option name="test-suite-tag" value="apct" />
- <target_preparer class="com.android.tradefed.targetprep.DeviceSetup">
- <option name="optimized-property-setting" value="true" />
- </target_preparer>
- <target_preparer class="com.android.tradefed.targetprep.suite.SuiteApkInstaller">
- <option name="cleanup-apks" value="true" />
- <option name="test-file-name" value="SettingsScreenshotTests.apk" />
- </target_preparer>
- <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
- <option name="directory-keys"
- value="/data/user/0/com.android.settings.tests.screenshot/" />
- <option name="collect-on-run-ended-only" value="true" />
- </metrics_collector>
- <test class="com.android.tradefed.testtype.AndroidJUnitTest">
- <option name="package" value="com.android.settings.tests.screenshot" />
- <option name="runner" value="androidx.test.runner.AndroidJUnitRunner" />
- </test>
-</configuration>
diff --git "a/tests/screenshot/assets/pixel_4a_\0505g\051/fp_enroll_intro.png" "b/tests/screenshot/assets/pixel_4a_\0505g\051/fp_enroll_intro.png"
deleted file mode 100644
index 1129250..0000000
--- "a/tests/screenshot/assets/pixel_4a_\0505g\051/fp_enroll_intro.png"
+++ /dev/null
Binary files differ
diff --git a/tests/screenshot/src/com/android/settings/tests/screenshot/BasicScreenshotTest.kt b/tests/screenshot/src/com/android/settings/tests/screenshot/BasicScreenshotTest.kt
deleted file mode 100644
index 3b3b170..0000000
--- a/tests/screenshot/src/com/android/settings/tests/screenshot/BasicScreenshotTest.kt
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2023 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.tests.screenshot
-
-import android.content.Context
-import android.graphics.Bitmap
-import android.graphics.Canvas
-import android.graphics.Color
-import android.os.Bundle
-import android.view.View
-import androidx.fragment.app.testing.FragmentScenario
-import androidx.fragment.app.testing.launchFragmentInContainer
-import androidx.lifecycle.ViewModel
-import androidx.lifecycle.ViewModelProvider
-import androidx.test.core.app.ApplicationProvider
-import androidx.test.ext.junit.runners.AndroidJUnit4
-import androidx.test.platform.app.InstrumentationRegistry
-import com.android.settings.R
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.fragment.FingerprintEnrollIntroV2Fragment
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollNavigationViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintEnrollViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintGatekeeperViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.FingerprintScrollViewModel
-import com.android.settings.biometrics.fingerprint2.ui.enrollment.viewmodel.GatekeeperInfo
-import com.android.settings.testutils2.FakeFingerprintManagerInteractor
-import kotlinx.coroutines.test.StandardTestDispatcher
-import org.junit.Before
-import org.junit.Rule
-import org.junit.Test
-import org.junit.runner.RunWith
-import platform.test.screenshot.GoldenImagePathManager
-import platform.test.screenshot.ScreenshotTestRule
-import platform.test.screenshot.matchers.MSSIMMatcher
-
-@RunWith(AndroidJUnit4::class)
-class BasicScreenshotTest {
- @Rule
- @JvmField
- var rule: ScreenshotTestRule =
- ScreenshotTestRule(
- GoldenImagePathManager(
- InstrumentationRegistry.getInstrumentation().getContext(),
- InstrumentationRegistry.getInstrumentation()
- .getTargetContext()
- .getFilesDir()
- .getAbsolutePath() + "/settings_screenshots"
- )
- )
-
- private var context: Context = ApplicationProvider.getApplicationContext()
- private var interactor = FakeFingerprintManagerInteractor()
-
- private val gatekeeperViewModel =
- FingerprintGatekeeperViewModel(
- GatekeeperInfo.GatekeeperPasswordInfo(byteArrayOf(1, 2, 3), 100L),
- interactor
- )
-
- private val backgroundDispatcher = StandardTestDispatcher()
- private lateinit var fragmentScenario: FragmentScenario<FingerprintEnrollIntroV2Fragment>
-
- private val navigationViewModel =
- FingerprintEnrollNavigationViewModel(
- backgroundDispatcher,
- interactor,
- gatekeeperViewModel,
- canSkipConfirm = true,
- )
- private var fingerprintViewModel = FingerprintEnrollViewModel(interactor, backgroundDispatcher)
- private var fingerprintScrollViewModel = FingerprintScrollViewModel()
-
- @Before
- fun setup() {
- val factory =
- object : ViewModelProvider.Factory {
- @Suppress("UNCHECKED_CAST")
- override fun <T : ViewModel> create(
- modelClass: Class<T>,
- ): T {
- return when (modelClass) {
- FingerprintEnrollViewModel::class.java -> fingerprintViewModel
- FingerprintScrollViewModel::class.java -> fingerprintScrollViewModel
- FingerprintEnrollNavigationViewModel::class.java -> navigationViewModel
- FingerprintGatekeeperViewModel::class.java -> gatekeeperViewModel
- else -> null
- }
- as T
- }
- }
-
- fragmentScenario =
- launchFragmentInContainer(Bundle(), R.style.SudThemeGlif) {
- FingerprintEnrollIntroV2Fragment(factory)
- }
- }
-
- /** Renders a [view] into a [Bitmap]. */
- private fun viewToBitmap(view: View): Bitmap {
- val bitmap =
- Bitmap.createBitmap(
- view.measuredWidth,
- view.measuredHeight,
- Bitmap.Config.ARGB_8888,
- )
- val canvas = Canvas(bitmap)
- view.draw(canvas)
- return bitmap
- }
-
- @Test
- fun testEnrollIntro() {
- fragmentScenario.onFragment { fragment ->
- val view = fragment.requireView().findViewById<View>(R.id.enroll_intro_content_view)!!
- view.setBackgroundColor(Color.BLACK)
- }
- fragmentScenario.onFragment { fragment ->
- val view = fragment.requireView().findViewById<View>(R.id.enroll_intro_content_view)!!
- rule.assertBitmapAgainstGolden(
- viewToBitmap(view),
- "fp_enroll_intro",
- MSSIMMatcher()
- )
- }
-
- }
-}