From 2e10dc109fa2136c2763c51139f0f74ba9300ec1 Mon Sep 17 00:00:00 2001 From: Menghan Li Date: Fri, 13 Dec 2024 00:06:05 +0000 Subject: [PATCH] fix(ReduceBrightColorsPreferenceController) Different feature configs This change updates the tests for ReduceBrightColorsPreferenceController to account for different combinations of feature flags and configurations, specifically related to the "Even Dimmer" flag and the availability of Reduce Bright Colors. The updated tests ensure that the preference controller correctly determines its availability based on these factors, improving test coverage and reliability. This addresses inconsistencies between the code and test cases, ensuring accurate behavior across various device configurations. Bug: 383076111 Test: atest ReduceBrightColorsPreferenceControllerTest Flag: com.android.server.display.feature.flags.even_dimmer Change-Id: Iec53b416ec69a74f1f353f684358f265b022456f --- ...lorsIntensityPreferenceControllerTest.java | 107 +++++++++++++++++- 1 file changed, 104 insertions(+), 3 deletions(-) diff --git a/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java b/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java index c3ccf34767c..96d9583a9f7 100644 --- a/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/accessibility/ReduceBrightColorsIntensityPreferenceControllerTest.java @@ -24,20 +24,29 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.content.res.Resources; +import android.platform.test.annotations.DisableFlags; +import android.platform.test.annotations.EnableFlags; +import android.platform.test.flag.junit.SetFlagsRule; import android.provider.Settings; import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.internal.R; +import com.android.server.display.feature.flags.Flags; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; +/** Tests for {@link ReduceBrightColorsIntensityPreferenceController} */ @RunWith(AndroidJUnit4.class) public class ReduceBrightColorsIntensityPreferenceControllerTest { + @Rule + public final SetFlagsRule mSetFlagsRule = new SetFlagsRule(); + private Context mContext; private Resources mResources; private ReduceBrightColorsIntensityPreferenceController mPreferenceController; @@ -52,27 +61,119 @@ public class ReduceBrightColorsIntensityPreferenceControllerTest { } @Test - public void isAvailable_configuredRbcAvailable_enabledRbc_shouldReturnTrue() { + @DisableFlags(Flags.FLAG_EVEN_DIMMER) + public void isAvailable_whenEvenDimmerOffAndDisabled_RbcOnAndAvailable_returnTrue() { + doReturn(false).when(mResources).getBoolean( + com.android.internal.R.bool.config_evenDimmerEnabled); Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 1); doReturn(true).when(mResources).getBoolean( R.bool.config_reduceBrightColorsAvailable); + assertThat(mPreferenceController.isAvailable()).isTrue(); } + @Test - public void isAvailable_configuredRbcAvailable_disabledRbc_shouldReturnTrue() { + @DisableFlags(Flags.FLAG_EVEN_DIMMER) + public void isAvailable_whenEvenDimmerOffAndDisabled_RbcOffAndAvailable_returnTrue() { + doReturn(false).when(mResources).getBoolean( + com.android.internal.R.bool.config_evenDimmerEnabled); Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 0); doReturn(true).when(mResources).getBoolean( R.bool.config_reduceBrightColorsAvailable); + assertThat(mPreferenceController.isAvailable()).isTrue(); } + @Test - public void isAvailable_configuredRbcUnavailable_enabledRbc_shouldReturnFalse() { + @DisableFlags(Flags.FLAG_EVEN_DIMMER) + public void isAvailable_whenEvenDimmerOffAndDisabled_RbcOnAndUnavailable_returnFalse() { + doReturn(false).when(mResources).getBoolean( + com.android.internal.R.bool.config_evenDimmerEnabled); Settings.Secure.putInt(mContext.getContentResolver(), Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 1); doReturn(false).when(mResources).getBoolean( R.bool.config_reduceBrightColorsAvailable); + + assertThat(mPreferenceController.isAvailable()).isFalse(); + } + + @Test + @EnableFlags(Flags.FLAG_EVEN_DIMMER) + public void isAvailable_whenEvenDimmerOnAndDisabled_RbcOnAndAvailable_returnTrue() { + doReturn(false).when(mResources).getBoolean( + com.android.internal.R.bool.config_evenDimmerEnabled); + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 1); + doReturn(true).when(mResources).getBoolean( + R.bool.config_reduceBrightColorsAvailable); + + assertThat(mPreferenceController.isAvailable()).isTrue(); + } + + @Test + @EnableFlags(Flags.FLAG_EVEN_DIMMER) + public void isAvailable_whenEvenDimmerOnAndDisabled_RbcOffAndAvailable_returnTrue() { + doReturn(false).when(mResources).getBoolean( + com.android.internal.R.bool.config_evenDimmerEnabled); + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 0); + doReturn(true).when(mResources).getBoolean( + R.bool.config_reduceBrightColorsAvailable); + + assertThat(mPreferenceController.isAvailable()).isTrue(); + } + + @Test + @EnableFlags(Flags.FLAG_EVEN_DIMMER) + public void isAvailable_whenEvenDimmerOnAndDisabled_RbcOnAndUnavailable_returnFalse() { + doReturn(false).when(mResources).getBoolean( + com.android.internal.R.bool.config_evenDimmerEnabled); + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 1); + doReturn(false).when(mResources).getBoolean( + R.bool.config_reduceBrightColorsAvailable); + + assertThat(mPreferenceController.isAvailable()).isFalse(); + } + + @Test + @EnableFlags(Flags.FLAG_EVEN_DIMMER) + public void isAvailable_whenEvenDimmerOnAndEnabled_RbcOnAndAvailable_returnFalse() { + doReturn(true).when(mResources).getBoolean( + com.android.internal.R.bool.config_evenDimmerEnabled); + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 1); + doReturn(true).when(mResources).getBoolean( + R.bool.config_reduceBrightColorsAvailable); + + assertThat(mPreferenceController.isAvailable()).isFalse(); + } + + @Test + @EnableFlags(Flags.FLAG_EVEN_DIMMER) + public void isAvailable_whenEvenDimmerOnAndEnabled_RbcOffAndAvailable_returnFalse() { + doReturn(true).when(mResources).getBoolean( + com.android.internal.R.bool.config_evenDimmerEnabled); + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 0); + doReturn(true).when(mResources).getBoolean( + R.bool.config_reduceBrightColorsAvailable); + + assertThat(mPreferenceController.isAvailable()).isFalse(); + } + + @Test + @EnableFlags(Flags.FLAG_EVEN_DIMMER) + public void isAvailable_whenEvenDimmerOnAndEnabled_RbcOnAndUnavailable_returnFalse() { + doReturn(true).when(mResources).getBoolean( + com.android.internal.R.bool.config_evenDimmerEnabled); + Settings.Secure.putInt(mContext.getContentResolver(), + Settings.Secure.REDUCE_BRIGHT_COLORS_ACTIVATED, 1); + doReturn(false).when(mResources).getBoolean( + R.bool.config_reduceBrightColorsAvailable); + assertThat(mPreferenceController.isAvailable()).isFalse(); }