1 package com.android.settings.display; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import android.content.Context; 6 import android.hardware.display.ColorDisplayManager; 7 8 import com.android.settings.R; 9 import com.android.settings.core.BasePreferenceController; 10 import com.android.settings.testutils.shadow.SettingsShadowResources; 11 12 import org.junit.After; 13 import org.junit.Before; 14 import org.junit.Test; 15 import org.junit.runner.RunWith; 16 import org.robolectric.RobolectricTestRunner; 17 import org.robolectric.RuntimeEnvironment; 18 import org.robolectric.annotation.Config; 19 20 @RunWith(RobolectricTestRunner.class) 21 @Config(shadows = {SettingsShadowResources.class}) 22 public class NightDisplayPreferenceControllerTest { 23 24 private Context mContext; 25 private ColorDisplayManager mColorDisplayManager; 26 private NightDisplayPreferenceController mPreferenceController; 27 28 @Before setUp()29 public void setUp() { 30 mContext = RuntimeEnvironment.application; 31 mColorDisplayManager = mContext.getSystemService(ColorDisplayManager.class); 32 mPreferenceController = new NightDisplayPreferenceController(mContext, "test"); 33 } 34 35 @After tearDown()36 public void tearDown() { 37 SettingsShadowResources.reset(); 38 } 39 40 @Test nightDisplaySuggestion_isNotCompleted_ifAutoModeDisabled()41 public void nightDisplaySuggestion_isNotCompleted_ifAutoModeDisabled() { 42 mColorDisplayManager.setNightDisplayAutoMode(ColorDisplayManager.AUTO_MODE_DISABLED); 43 44 assertThat(NightDisplayPreferenceController.isSuggestionComplete(mContext)).isFalse(); 45 } 46 47 @Test nightDisplaySuggestion_isCompleted_ifAutoModeCustom()48 public void nightDisplaySuggestion_isCompleted_ifAutoModeCustom() { 49 mColorDisplayManager.setNightDisplayAutoMode(ColorDisplayManager.AUTO_MODE_CUSTOM_TIME); 50 51 assertThat(NightDisplayPreferenceController.isSuggestionComplete(mContext)).isTrue(); 52 } 53 54 @Test nightDisplaySuggestion_isCompleted_ifAutoModeTwilight()55 public void nightDisplaySuggestion_isCompleted_ifAutoModeTwilight() { 56 mColorDisplayManager.setNightDisplayAutoMode(ColorDisplayManager.AUTO_MODE_TWILIGHT); 57 58 assertThat(NightDisplayPreferenceController.isSuggestionComplete(mContext)).isTrue(); 59 } 60 61 @Test nightDisplaySuggestion_isCompleted_ifSuggestionDisabled()62 public void nightDisplaySuggestion_isCompleted_ifSuggestionDisabled() { 63 mColorDisplayManager.setNightDisplayAutoMode(ColorDisplayManager.AUTO_MODE_DISABLED); 64 SettingsShadowResources.overrideResource(R.bool.config_night_light_suggestion_enabled, 65 false); 66 67 assertThat(NightDisplayPreferenceController.isSuggestionComplete(mContext)).isTrue(); 68 } 69 70 @Test getAvailabilityStatus_nightDisplayIsSupported_returnAvailable()71 public void getAvailabilityStatus_nightDisplayIsSupported_returnAvailable() { 72 SettingsShadowResources.overrideResource( 73 com.android.internal.R.bool.config_nightDisplayAvailable, true); 74 75 assertThat(mPreferenceController.getAvailabilityStatus()) 76 .isEqualTo(BasePreferenceController.AVAILABLE); 77 } 78 79 @Test getAvailabilityStatus_nightDisplayIsNotSupported_returnUnsupportedOnDevice()80 public void getAvailabilityStatus_nightDisplayIsNotSupported_returnUnsupportedOnDevice() { 81 SettingsShadowResources.overrideResource( 82 com.android.internal.R.bool.config_nightDisplayAvailable, false); 83 84 assertThat(mPreferenceController.getAvailabilityStatus()) 85 .isEqualTo(BasePreferenceController.UNSUPPORTED_ON_DEVICE); 86 } 87 88 @Test isChecked_nightDisplayIsActivated_returnTrue()89 public void isChecked_nightDisplayIsActivated_returnTrue() { 90 mColorDisplayManager.setNightDisplayActivated(true); 91 92 assertThat(mPreferenceController.isChecked()).isTrue(); 93 } 94 95 @Test isChecked_nightDisplayIsNotActivated_returnFalse()96 public void isChecked_nightDisplayIsNotActivated_returnFalse() { 97 mColorDisplayManager.setNightDisplayActivated(false); 98 99 assertThat(mPreferenceController.isChecked()).isFalse(); 100 } 101 }