Loading packages/SettingsLib/Preference/tests/AndroidManifest.xml +1 −6 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:tools="http://schemas.android.com/tools" package="com.android.settingslib.preference.test"> <!-- override temporarily to support running tests in Android Studio. --> <uses-sdk tools:overrideLibrary="platform_testing.libraries.flag.junit,android.frameworks.base" /> </manifest> <manifest package="com.android.settingslib.preference.test" /> packages/SettingsLib/Preference/testutils/Android.bp +0 −2 Original line number Diff line number Diff line Loading @@ -26,8 +26,6 @@ android_library { "androidx.fragment_fragment-testing", "androidx.test.core", "androidx.test.ext.junit", "flag-junit", "mockito-kotlin2", "truth", ], test_only: true, Loading packages/SettingsLib/Preference/testutils/com/android/settingslib/preference/CatalystScreenTestCase.kt +5 −26 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.settingslib.preference import android.content.Context import android.platform.test.flag.junit.SetFlagsRule import android.util.Log import androidx.fragment.app.testing.FragmentScenario import androidx.preference.Preference Loading @@ -28,23 +27,17 @@ import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.google.common.truth.Truth.assertThat import java.util.concurrent.atomic.AtomicBoolean import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith /** Test case for catalyst screen. */ @RunWith(AndroidJUnit4::class) abstract class CatalystScreenTestCase { @get:Rule val setFlagsRule = SetFlagsRule() protected val appContext: Context = ApplicationProvider.getApplicationContext() /** Catalyst screen. */ protected abstract val preferenceScreenCreator: PreferenceScreenCreator /** Flag to control catalyst screen. */ protected abstract val flagName: String /** * Test to compare the preference screen hierarchy between legacy screen (flag is disabled) and * catalyst screen (flag is enabled). Loading @@ -63,25 +56,11 @@ abstract class CatalystScreenTestCase { assertThat(catalystScreen).isEqualTo(legacyScreen) } /** * Enables the catalyst screen. * * By default, enable the [flagName]. Override for more complex situation. */ @Suppress("DEPRECATION") protected open fun enableCatalystScreen() { setFlagsRule.enableFlags(flagName) } /** Enables the flag to test catalyst screen. */ abstract fun enableCatalystScreen() /** * Disables the catalyst screen (legacy screen is shown). * * By default, disable the [flagName]. Override for more complex situation. */ @Suppress("DEPRECATION") protected open fun disableCatalystScreen() { setFlagsRule.disableFlags(flagName) } /** Disables the flag to test legacy screen. */ abstract fun disableCatalystScreen() private fun dumpPreferenceScreen(): String { // Dump threads for troubleshooting when the test thread is stuck. Loading @@ -93,7 +72,7 @@ abstract class CatalystScreenTestCase { } .apply { isDaemon = true start() @Suppress("DEPRECATION") start() } @Suppress("UNCHECKED_CAST") Loading packages/SettingsLib/Preference/testutils/com/android/settingslib/preference/PreferenceBindingTestUtils.kt +13 −2 Original line number Diff line number Diff line Loading @@ -28,7 +28,8 @@ import com.android.settingslib.metadata.EXTRA_BINDING_SCREEN_KEY import com.android.settingslib.metadata.PersistentPreference import com.android.settingslib.metadata.PreferenceMetadata import com.android.settingslib.metadata.PreferenceScreenMetadata import org.mockito.kotlin.mock import com.android.settingslib.metadata.preferenceHierarchy import kotlinx.coroutines.CoroutineScope /** Creates [Preference] widget and binds with metadata. */ @Suppress("UNCHECKED_CAST") Loading @@ -36,7 +37,7 @@ import org.mockito.kotlin.mock fun <P : Preference> PreferenceMetadata.createAndBindWidget( context: Context, preferenceScreen: PreferenceScreen? = null, preferenceScreenMetadata: PreferenceScreenMetadata = mock(), preferenceScreenMetadata: PreferenceScreenMetadata = DummyPreferenceScreenMetadata, ): P { val binding = PreferenceBindingFactory.defaultFactory.getPreferenceBinding(this)!! return (binding.createWidget(context) as P).also { Loading @@ -52,6 +53,16 @@ fun <P : Preference> PreferenceMetadata.createAndBindWidget( } } private object DummyPreferenceScreenMetadata : PreferenceScreenMetadata { override val key: String get() = "" override fun fragmentClass() = null override fun getPreferenceHierarchy(context: Context, coroutineScope: CoroutineScope) = preferenceHierarchy(context) {} } /** Launches fragment for given [PreferenceScreenMetadata]. */ @Suppress("UNCHECKED_CAST") fun PreferenceScreenMetadata.launchFragmentScenario() = Loading Loading
packages/SettingsLib/Preference/tests/AndroidManifest.xml +1 −6 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:tools="http://schemas.android.com/tools" package="com.android.settingslib.preference.test"> <!-- override temporarily to support running tests in Android Studio. --> <uses-sdk tools:overrideLibrary="platform_testing.libraries.flag.junit,android.frameworks.base" /> </manifest> <manifest package="com.android.settingslib.preference.test" />
packages/SettingsLib/Preference/testutils/Android.bp +0 −2 Original line number Diff line number Diff line Loading @@ -26,8 +26,6 @@ android_library { "androidx.fragment_fragment-testing", "androidx.test.core", "androidx.test.ext.junit", "flag-junit", "mockito-kotlin2", "truth", ], test_only: true, Loading
packages/SettingsLib/Preference/testutils/com/android/settingslib/preference/CatalystScreenTestCase.kt +5 −26 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.settingslib.preference import android.content.Context import android.platform.test.flag.junit.SetFlagsRule import android.util.Log import androidx.fragment.app.testing.FragmentScenario import androidx.preference.Preference Loading @@ -28,23 +27,17 @@ import androidx.test.core.app.ApplicationProvider import androidx.test.ext.junit.runners.AndroidJUnit4 import com.google.common.truth.Truth.assertThat import java.util.concurrent.atomic.AtomicBoolean import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith /** Test case for catalyst screen. */ @RunWith(AndroidJUnit4::class) abstract class CatalystScreenTestCase { @get:Rule val setFlagsRule = SetFlagsRule() protected val appContext: Context = ApplicationProvider.getApplicationContext() /** Catalyst screen. */ protected abstract val preferenceScreenCreator: PreferenceScreenCreator /** Flag to control catalyst screen. */ protected abstract val flagName: String /** * Test to compare the preference screen hierarchy between legacy screen (flag is disabled) and * catalyst screen (flag is enabled). Loading @@ -63,25 +56,11 @@ abstract class CatalystScreenTestCase { assertThat(catalystScreen).isEqualTo(legacyScreen) } /** * Enables the catalyst screen. * * By default, enable the [flagName]. Override for more complex situation. */ @Suppress("DEPRECATION") protected open fun enableCatalystScreen() { setFlagsRule.enableFlags(flagName) } /** Enables the flag to test catalyst screen. */ abstract fun enableCatalystScreen() /** * Disables the catalyst screen (legacy screen is shown). * * By default, disable the [flagName]. Override for more complex situation. */ @Suppress("DEPRECATION") protected open fun disableCatalystScreen() { setFlagsRule.disableFlags(flagName) } /** Disables the flag to test legacy screen. */ abstract fun disableCatalystScreen() private fun dumpPreferenceScreen(): String { // Dump threads for troubleshooting when the test thread is stuck. Loading @@ -93,7 +72,7 @@ abstract class CatalystScreenTestCase { } .apply { isDaemon = true start() @Suppress("DEPRECATION") start() } @Suppress("UNCHECKED_CAST") Loading
packages/SettingsLib/Preference/testutils/com/android/settingslib/preference/PreferenceBindingTestUtils.kt +13 −2 Original line number Diff line number Diff line Loading @@ -28,7 +28,8 @@ import com.android.settingslib.metadata.EXTRA_BINDING_SCREEN_KEY import com.android.settingslib.metadata.PersistentPreference import com.android.settingslib.metadata.PreferenceMetadata import com.android.settingslib.metadata.PreferenceScreenMetadata import org.mockito.kotlin.mock import com.android.settingslib.metadata.preferenceHierarchy import kotlinx.coroutines.CoroutineScope /** Creates [Preference] widget and binds with metadata. */ @Suppress("UNCHECKED_CAST") Loading @@ -36,7 +37,7 @@ import org.mockito.kotlin.mock fun <P : Preference> PreferenceMetadata.createAndBindWidget( context: Context, preferenceScreen: PreferenceScreen? = null, preferenceScreenMetadata: PreferenceScreenMetadata = mock(), preferenceScreenMetadata: PreferenceScreenMetadata = DummyPreferenceScreenMetadata, ): P { val binding = PreferenceBindingFactory.defaultFactory.getPreferenceBinding(this)!! return (binding.createWidget(context) as P).also { Loading @@ -52,6 +53,16 @@ fun <P : Preference> PreferenceMetadata.createAndBindWidget( } } private object DummyPreferenceScreenMetadata : PreferenceScreenMetadata { override val key: String get() = "" override fun fragmentClass() = null override fun getPreferenceHierarchy(context: Context, coroutineScope: CoroutineScope) = preferenceHierarchy(context) {} } /** Launches fragment for given [PreferenceScreenMetadata]. */ @Suppress("UNCHECKED_CAST") fun PreferenceScreenMetadata.launchFragmentScenario() = Loading