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(); }