Revert "Adding back screenshot test to Settings."
This reverts commit 4dc4e1c02a
.
Reason for revert: broke the build
Change-Id: I3037248a5df06d6f92dfa9c5666625f23230646a
Bug: 307406217
This commit is contained in:
@@ -24,7 +24,6 @@
|
|||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
style="@style/SudContentFrame"
|
style="@style/SudContentFrame"
|
||||||
android:id="@+id/enroll_intro_content_view"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:clipChildren="false"
|
android:clipChildren="false"
|
||||||
|
@@ -186,9 +186,6 @@ class FingerprintEnrollIntroV2Fragment() : Fragment(R.layout.fingerprint_v2_enro
|
|||||||
return view
|
return view
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* TODO (b/305269201): This link isn't displaying for screenshot tests.
|
|
||||||
*/
|
|
||||||
private fun setFooterLink(view: View) {
|
private fun setFooterLink(view: View) {
|
||||||
val footerLink: TextView = view.requireViewById(R.id.footer_learn_more)
|
val footerLink: TextView = view.requireViewById(R.id.footer_learn_more)
|
||||||
footerLink.movementMethod = LinkMovementMethod.getInstance()
|
footerLink.movementMethod = LinkMovementMethod.getInstance()
|
||||||
|
@@ -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",
|
|
||||||
}
|
|
@@ -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>
|
|
@@ -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>
|
|
Binary file not shown.
Before Width: | Height: | Size: 210 KiB |
@@ -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()
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user