Enable AutoBrightnessScreenTest

NO_IFTTT=Enable test

Bug: 374712065
Flag: EXEMPT test
Test: atest
Change-Id: I1402bbf37644cb9b22aca6b9cae06306524a3b8f
This commit is contained in:
Jacky Wang
2024-11-04 04:00:53 +08:00
parent 45f5ef607d
commit d655faf940

View File

@@ -15,7 +15,8 @@
*/ */
package com.android.settings.display package com.android.settings.display
import android.content.Context import android.content.ContextWrapper
import android.content.res.Resources
import android.provider.Settings import android.provider.Settings
import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
@@ -23,26 +24,30 @@ import android.view.LayoutInflater
import androidx.preference.PreferenceViewHolder import androidx.preference.PreferenceViewHolder
import androidx.test.core.app.ApplicationProvider import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.testutils.shadow.SettingsShadowResources
import com.android.settingslib.PrimarySwitchPreference import com.android.settingslib.PrimarySwitchPreference
import com.android.settingslib.preference.PreferenceDataStoreAdapter
import com.android.settingslib.widget.SettingsThemeHelper.isExpressiveTheme import com.android.settingslib.widget.SettingsThemeHelper.isExpressiveTheme
import com.android.settingslib.widget.theme.R import com.android.settingslib.widget.theme.R
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import org.junit.Ignore
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.robolectric.annotation.Config import org.mockito.kotlin.any
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.mock
// LINT.IfChange // LINT.IfChange
@RunWith(AndroidJUnit4::class) @RunWith(AndroidJUnit4::class)
@Config(shadows = [SettingsShadowResources::class])
@Ignore("robolectric runtime")
class AutoBrightnessScreenTest { class AutoBrightnessScreenTest {
private val context: Context = ApplicationProvider.getApplicationContext()
private val preferenceScreenCreator = AutoBrightnessScreen() private val preferenceScreenCreator = AutoBrightnessScreen()
private var mockResources: Resources? = null
private val context =
object : ContextWrapper(ApplicationProvider.getApplicationContext()) {
override fun getResources(): Resources = mockResources ?: super.getResources()
}
@Test @Test
fun switchClick_defaultScreenBrightnessModeTurnOffAuto_returnTrue() { fun switchClick_defaultScreenBrightnessModeTurnOffAuto_returnTrue() {
setScreenBrightnessMode(SCREEN_BRIGHTNESS_MODE_MANUAL) setScreenBrightnessMode(SCREEN_BRIGHTNESS_MODE_MANUAL)
@@ -100,20 +105,14 @@ class AutoBrightnessScreenTest {
@Test @Test
fun isAvailable_configTrueSet_shouldReturnTrue() { fun isAvailable_configTrueSet_shouldReturnTrue() {
SettingsShadowResources.overrideResource( mockResources = mock { on { getBoolean(any()) } doReturn true }
com.android.internal.R.bool.config_automatic_brightness_available,
true,
)
assertThat(preferenceScreenCreator.isAvailable(context)).isTrue() assertThat(preferenceScreenCreator.isAvailable(context)).isTrue()
} }
@Test @Test
fun isAvailable_configFalseSet_shouldReturnFalse() { fun isAvailable_configFalseSet_shouldReturnFalse() {
SettingsShadowResources.overrideResource( mockResources = mock { on { getBoolean(any()) } doReturn false }
com.android.internal.R.bool.config_automatic_brightness_available,
false,
)
assertThat(preferenceScreenCreator.isAvailable(context)).isFalse() assertThat(preferenceScreenCreator.isAvailable(context)).isFalse()
} }
@@ -121,6 +120,7 @@ class AutoBrightnessScreenTest {
private fun getPrimarySwitchPreference(): PrimarySwitchPreference = private fun getPrimarySwitchPreference(): PrimarySwitchPreference =
preferenceScreenCreator.run { preferenceScreenCreator.run {
val preference = createWidget(context) val preference = createWidget(context)
preference.preferenceDataStore = PreferenceDataStoreAdapter(storage(context))
bind(preference, this) bind(preference, this)
val holder = val holder =
PreferenceViewHolder.createInstanceForTests( PreferenceViewHolder.createInstanceForTests(