Merge "Use testable components to cleanup display tests a bit." into udc-dev am: 804ba1d45a

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/22162924

Change-Id: I1ef9ee75c6b34daaa45b92c6fba881751dd06ff0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2023-03-20 15:29:25 +00:00
committed by Automerger Merge Worker
2 changed files with 88 additions and 123 deletions

View File

@@ -31,13 +31,10 @@ import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset; import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.ContextWrapper;
import android.content.res.Resources; import android.content.res.Resources;
import android.hardware.Sensor; import android.hardware.Sensor;
import android.hardware.SensorEventListener; import android.hardware.SensorEventListener;
@@ -48,18 +45,18 @@ import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.os.PowerManager; import android.os.PowerManager;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.test.TestLooper; import android.os.test.TestLooper;
import android.provider.Settings; import android.provider.Settings;
import android.testing.TestableContext;
import android.util.FloatProperty; import android.util.FloatProperty;
import android.view.Display; import android.view.Display;
import android.view.DisplayInfo; import android.view.DisplayInfo;
import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4; import androidx.test.platform.app.InstrumentationRegistry;
import com.android.dx.mockito.inline.extended.ExtendedMockito; import com.android.server.ExtendedMockitoRule;
import com.android.server.LocalServices; import com.android.server.LocalServices;
import com.android.server.am.BatteryStatsService; import com.android.server.am.BatteryStatsService;
import com.android.server.display.RampAnimator.DualRampAnimator; import com.android.server.display.RampAnimator.DualRampAnimator;
@@ -72,12 +69,12 @@ import com.android.server.testutils.OffsettableClock;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor; import org.mockito.ArgumentCaptor;
import org.mockito.Captor; import org.mockito.Captor;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoSession;
import org.mockito.quality.Strictness; import org.mockito.quality.Strictness;
import org.mockito.stubbing.Answer; import org.mockito.stubbing.Answer;
@@ -95,11 +92,9 @@ public final class DisplayPowerController2Test {
private static final String SECOND_FOLLOWER_UNIQUE_DISPLAY_ID = "unique_id_789"; private static final String SECOND_FOLLOWER_UNIQUE_DISPLAY_ID = "unique_id_789";
private static final float PROX_SENSOR_MAX_RANGE = 5; private static final float PROX_SENSOR_MAX_RANGE = 5;
private MockitoSession mSession;
private OffsettableClock mClock; private OffsettableClock mClock;
private TestLooper mTestLooper; private TestLooper mTestLooper;
private Handler mHandler; private Handler mHandler;
private Context mContextSpy;
private DisplayPowerControllerHolder mHolder; private DisplayPowerControllerHolder mHolder;
private Sensor mProxSensor; private Sensor mProxSensor;
@@ -116,40 +111,38 @@ public final class DisplayPowerController2Test {
@Mock @Mock
private PowerManager mPowerManagerMock; private PowerManager mPowerManagerMock;
@Mock @Mock
private Resources mResourcesMock;
@Mock
private ColorDisplayService.ColorDisplayServiceInternal mCdsiMock; private ColorDisplayService.ColorDisplayServiceInternal mCdsiMock;
@Captor @Captor
private ArgumentCaptor<SensorEventListener> mSensorEventListenerCaptor; private ArgumentCaptor<SensorEventListener> mSensorEventListenerCaptor;
@Rule
public final TestableContext mContext = new TestableContext(
InstrumentationRegistry.getInstrumentation().getContext());
@Rule
public final ExtendedMockitoRule mExtendedMockitoRule =
new ExtendedMockitoRule.Builder(this)
.setStrictness(Strictness.LENIENT)
.spyStatic(SystemProperties.class)
.spyStatic(BatteryStatsService.class)
.build();
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
mSession = ExtendedMockito.mockitoSession()
.initMocks(this)
.strictness(Strictness.LENIENT)
.spyStatic(SystemProperties.class)
.spyStatic(LocalServices.class)
.spyStatic(BatteryStatsService.class)
.spyStatic(Settings.System.class)
.startMocking();
mContextSpy = spy(new ContextWrapper(ApplicationProvider.getApplicationContext()));
mClock = new OffsettableClock.Stopped(); mClock = new OffsettableClock.Stopped();
mTestLooper = new TestLooper(mClock::now); mTestLooper = new TestLooper(mClock::now);
mHandler = new Handler(mTestLooper.getLooper()); mHandler = new Handler(mTestLooper.getLooper());
addLocalServiceMock(WindowManagerPolicy.class, mWindowManagerPolicyMock);
when(mContextSpy.getSystemService(eq(PowerManager.class))).thenReturn(mPowerManagerMock); addLocalServiceMock(WindowManagerPolicy.class, mWindowManagerPolicyMock);
when(mContextSpy.getResources()).thenReturn(mResourcesMock); addLocalServiceMock(ColorDisplayService.ColorDisplayServiceInternal.class,
mCdsiMock);
mContext.addMockSystemService(PowerManager.class, mPowerManagerMock);
doAnswer((Answer<Void>) invocationOnMock -> null).when(() -> doAnswer((Answer<Void>) invocationOnMock -> null).when(() ->
SystemProperties.set(anyString(), any())); SystemProperties.set(anyString(), any()));
doAnswer((Answer<ColorDisplayService.ColorDisplayServiceInternal>) invocationOnMock ->
mCdsiMock).when(() -> LocalServices.getService(
ColorDisplayService.ColorDisplayServiceInternal.class));
doAnswer((Answer<Void>) invocationOnMock -> null).when(BatteryStatsService::getService); doAnswer((Answer<Void>) invocationOnMock -> null).when(BatteryStatsService::getService);
doAnswer((Answer<Boolean>) invocationOnMock -> true).when(() ->
Settings.System.putFloatForUser(any(), any(), anyFloat(), anyInt()));
setUpSensors(); setUpSensors();
mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID); mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID);
@@ -157,8 +150,8 @@ public final class DisplayPowerController2Test {
@After @After
public void tearDown() { public void tearDown() {
mSession.finishMocking();
LocalServices.removeServiceForTest(WindowManagerPolicy.class); LocalServices.removeServiceForTest(WindowManagerPolicy.class);
LocalServices.removeServiceForTest(ColorDisplayService.ColorDisplayServiceInternal.class);
} }
@Test @Test
@@ -419,11 +412,9 @@ public final class DisplayPowerController2Test {
@Test @Test
public void testDisplayBrightnessFollowers_AutomaticBrightness() { public void testDisplayBrightnessFollowers_AutomaticBrightness() {
doAnswer((Answer<Integer>) invocationOnMock -> Settings.System.putInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) Settings.System.SCREEN_BRIGHTNESS_MODE,
.when(() -> Settings.System.getIntForUser(any(ContentResolver.class), Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
eq(Settings.System.SCREEN_BRIGHTNESS_MODE), anyInt(),
eq(UserHandle.USER_CURRENT)));
final float brightness = 0.4f; final float brightness = 0.4f;
final float nits = 300; final float nits = 300;
final float ambientLux = 3000; final float ambientLux = 3000;
@@ -540,11 +531,9 @@ public final class DisplayPowerController2Test {
@Test @Test
public void testSetScreenOffBrightnessSensorEnabled_DisplayIsOff() { public void testSetScreenOffBrightnessSensorEnabled_DisplayIsOff() {
doAnswer((Answer<Integer>) invocationOnMock -> Settings.System.putInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) Settings.System.SCREEN_BRIGHTNESS_MODE,
.when(() -> Settings.System.getIntForUser(any(ContentResolver.class), Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
eq(Settings.System.SCREEN_BRIGHTNESS_MODE), anyInt(),
eq(UserHandle.USER_CURRENT)));
DisplayPowerRequest dpr = new DisplayPowerRequest(); DisplayPowerRequest dpr = new DisplayPowerRequest();
dpr.policy = DisplayPowerRequest.POLICY_OFF; dpr.policy = DisplayPowerRequest.POLICY_OFF;
@@ -575,17 +564,14 @@ public final class DisplayPowerController2Test {
@Test @Test
public void testSetScreenOffBrightnessSensorEnabled_DisplayIsInDoze() { public void testSetScreenOffBrightnessSensorEnabled_DisplayIsInDoze() {
doAnswer((Answer<Integer>) invocationOnMock -> Settings.System.putInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) Settings.System.SCREEN_BRIGHTNESS_MODE,
.when(() -> Settings.System.getIntForUser(any(ContentResolver.class), Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
eq(Settings.System.SCREEN_BRIGHTNESS_MODE), anyInt(),
eq(UserHandle.USER_CURRENT)));
DisplayPowerRequest dpr = new DisplayPowerRequest(); DisplayPowerRequest dpr = new DisplayPowerRequest();
dpr.policy = DisplayPowerRequest.POLICY_DOZE; dpr.policy = DisplayPowerRequest.POLICY_DOZE;
when(mResourcesMock.getBoolean( mContext.getOrCreateTestableResources().addOverride(
com.android.internal.R.bool.config_allowAutoBrightnessWhileDozing)) com.android.internal.R.bool.config_allowAutoBrightnessWhileDozing, true);
.thenReturn(true);
mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false);
advanceTime(1); // Run updatePowerState advanceTime(1); // Run updatePowerState
@@ -613,11 +599,9 @@ public final class DisplayPowerController2Test {
@Test @Test
public void testSetScreenOffBrightnessSensorDisabled_AutoBrightnessIsDisabled() { public void testSetScreenOffBrightnessSensorDisabled_AutoBrightnessIsDisabled() {
doAnswer((Answer<Integer>) invocationOnMock -> Settings.System.putInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL) Settings.System.SCREEN_BRIGHTNESS_MODE,
.when(() -> Settings.System.getIntForUser(any(ContentResolver.class), Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
eq(Settings.System.SCREEN_BRIGHTNESS_MODE), anyInt(),
eq(UserHandle.USER_CURRENT)));
DisplayPowerRequest dpr = new DisplayPowerRequest(); DisplayPowerRequest dpr = new DisplayPowerRequest();
dpr.policy = DisplayPowerRequest.POLICY_OFF; dpr.policy = DisplayPowerRequest.POLICY_OFF;
@@ -630,11 +614,9 @@ public final class DisplayPowerController2Test {
@Test @Test
public void testSetScreenOffBrightnessSensorDisabled_DisplayIsDisabled() { public void testSetScreenOffBrightnessSensorDisabled_DisplayIsDisabled() {
doAnswer((Answer<Integer>) invocationOnMock -> Settings.System.putInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) Settings.System.SCREEN_BRIGHTNESS_MODE,
.when(() -> Settings.System.getIntForUser(any(ContentResolver.class), Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
eq(Settings.System.SCREEN_BRIGHTNESS_MODE), anyInt(),
eq(UserHandle.USER_CURRENT)));
mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID, /* isEnabled= */ false); mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID, /* isEnabled= */ false);
DisplayPowerRequest dpr = new DisplayPowerRequest(); DisplayPowerRequest dpr = new DisplayPowerRequest();
@@ -687,9 +669,9 @@ public final class DisplayPowerController2Test {
public void testBrightnessNitsPersistWhenDisplayDeviceChanges() { public void testBrightnessNitsPersistWhenDisplayDeviceChanges() {
float brightness = 0.3f; float brightness = 0.3f;
float nits = 500; float nits = 500;
when(mResourcesMock.getBoolean( mContext.getOrCreateTestableResources().addOverride(
com.android.internal.R.bool.config_persistBrightnessNitsForDefaultDisplay)) com.android.internal.R.bool.config_persistBrightnessNitsForDefaultDisplay,
.thenReturn(true); true);
mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID); mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID);
when(mHolder.automaticBrightnessController.convertToNits(brightness)).thenReturn(nits); when(mHolder.automaticBrightnessController.convertToNits(brightness)).thenReturn(nits);
@@ -809,7 +791,7 @@ public final class DisplayPowerController2Test {
setUpDisplay(displayId, uniqueId, display, device, config, isEnabled); setUpDisplay(displayId, uniqueId, display, device, config, isEnabled);
final DisplayPowerController2 dpc = new DisplayPowerController2( final DisplayPowerController2 dpc = new DisplayPowerController2(
mContextSpy, injector, mDisplayPowerCallbacksMock, mHandler, mContext, injector, mDisplayPowerCallbacksMock, mHandler,
mSensorManagerMock, mDisplayBlankerMock, display, mSensorManagerMock, mDisplayBlankerMock, display,
mBrightnessTrackerMock, brightnessSetting, () -> {}, mBrightnessTrackerMock, brightnessSetting, () -> {},
hbmMetadata, /* bootCompleted= */ false); hbmMetadata, /* bootCompleted= */ false);

View File

@@ -31,13 +31,10 @@ import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset; import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times; import static org.mockito.Mockito.times;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.content.ContentResolver;
import android.content.Context; import android.content.Context;
import android.content.ContextWrapper;
import android.content.res.Resources; import android.content.res.Resources;
import android.hardware.Sensor; import android.hardware.Sensor;
import android.hardware.SensorEventListener; import android.hardware.SensorEventListener;
@@ -48,18 +45,18 @@ import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.os.PowerManager; import android.os.PowerManager;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.test.TestLooper; import android.os.test.TestLooper;
import android.provider.Settings; import android.provider.Settings;
import android.testing.TestableContext;
import android.util.FloatProperty; import android.util.FloatProperty;
import android.view.Display; import android.view.Display;
import android.view.DisplayInfo; import android.view.DisplayInfo;
import androidx.test.core.app.ApplicationProvider; import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest; import androidx.test.filters.SmallTest;
import androidx.test.runner.AndroidJUnit4; import androidx.test.platform.app.InstrumentationRegistry;
import com.android.dx.mockito.inline.extended.ExtendedMockito; import com.android.server.ExtendedMockitoRule;
import com.android.server.LocalServices; import com.android.server.LocalServices;
import com.android.server.am.BatteryStatsService; import com.android.server.am.BatteryStatsService;
import com.android.server.display.RampAnimator.DualRampAnimator; import com.android.server.display.RampAnimator.DualRampAnimator;
@@ -72,12 +69,12 @@ import com.android.server.testutils.OffsettableClock;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.mockito.ArgumentCaptor; import org.mockito.ArgumentCaptor;
import org.mockito.Captor; import org.mockito.Captor;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoSession;
import org.mockito.quality.Strictness; import org.mockito.quality.Strictness;
import org.mockito.stubbing.Answer; import org.mockito.stubbing.Answer;
@@ -95,11 +92,9 @@ public final class DisplayPowerControllerTest {
private static final String SECOND_FOLLOWER_UNIQUE_DISPLAY_ID = "unique_id_789"; private static final String SECOND_FOLLOWER_UNIQUE_DISPLAY_ID = "unique_id_789";
private static final float PROX_SENSOR_MAX_RANGE = 5; private static final float PROX_SENSOR_MAX_RANGE = 5;
private MockitoSession mSession;
private OffsettableClock mClock; private OffsettableClock mClock;
private TestLooper mTestLooper; private TestLooper mTestLooper;
private Handler mHandler; private Handler mHandler;
private Context mContextSpy;
private DisplayPowerControllerHolder mHolder; private DisplayPowerControllerHolder mHolder;
private Sensor mProxSensor; private Sensor mProxSensor;
@@ -116,41 +111,38 @@ public final class DisplayPowerControllerTest {
@Mock @Mock
private PowerManager mPowerManagerMock; private PowerManager mPowerManagerMock;
@Mock @Mock
private Resources mResourcesMock;
@Mock
private ColorDisplayService.ColorDisplayServiceInternal mCdsiMock; private ColorDisplayService.ColorDisplayServiceInternal mCdsiMock;
@Captor @Captor
private ArgumentCaptor<SensorEventListener> mSensorEventListenerCaptor; private ArgumentCaptor<SensorEventListener> mSensorEventListenerCaptor;
@Rule
public final TestableContext mContext = new TestableContext(
InstrumentationRegistry.getInstrumentation().getContext());
@Rule
public final ExtendedMockitoRule mExtendedMockitoRule =
new ExtendedMockitoRule.Builder(this)
.setStrictness(Strictness.LENIENT)
.spyStatic(SystemProperties.class)
.spyStatic(BatteryStatsService.class)
.build();
@Before @Before
public void setUp() throws Exception { public void setUp() throws Exception {
mSession = ExtendedMockito.mockitoSession()
.initMocks(this)
.strictness(Strictness.LENIENT)
.spyStatic(SystemProperties.class)
.spyStatic(LocalServices.class)
.spyStatic(BatteryStatsService.class)
.spyStatic(Settings.System.class)
.startMocking();
mContextSpy = spy(new ContextWrapper(ApplicationProvider.getApplicationContext()));
mClock = new OffsettableClock.Stopped(); mClock = new OffsettableClock.Stopped();
mTestLooper = new TestLooper(mClock::now); mTestLooper = new TestLooper(mClock::now);
mHandler = new Handler(mTestLooper.getLooper()); mHandler = new Handler(mTestLooper.getLooper());
addLocalServiceMock(WindowManagerPolicy.class, mWindowManagerPolicyMock); addLocalServiceMock(WindowManagerPolicy.class, mWindowManagerPolicyMock);
addLocalServiceMock(ColorDisplayService.ColorDisplayServiceInternal.class,
mCdsiMock);
when(mContextSpy.getSystemService(eq(PowerManager.class))).thenReturn(mPowerManagerMock); mContext.addMockSystemService(PowerManager.class, mPowerManagerMock);
when(mContextSpy.getResources()).thenReturn(mResourcesMock);
doAnswer((Answer<Void>) invocationOnMock -> null).when(() -> doAnswer((Answer<Void>) invocationOnMock -> null).when(() ->
SystemProperties.set(anyString(), any())); SystemProperties.set(anyString(), any()));
doAnswer((Answer<ColorDisplayService.ColorDisplayServiceInternal>) invocationOnMock ->
mCdsiMock).when(() -> LocalServices.getService(
ColorDisplayService.ColorDisplayServiceInternal.class));
doAnswer((Answer<Void>) invocationOnMock -> null).when(BatteryStatsService::getService); doAnswer((Answer<Void>) invocationOnMock -> null).when(BatteryStatsService::getService);
doAnswer((Answer<Boolean>) invocationOnMock -> true).when(() ->
Settings.System.putFloatForUser(any(), any(), anyFloat(), anyInt()));
setUpSensors(); setUpSensors();
mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID); mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID);
@@ -158,8 +150,8 @@ public final class DisplayPowerControllerTest {
@After @After
public void tearDown() { public void tearDown() {
mSession.finishMocking();
LocalServices.removeServiceForTest(WindowManagerPolicy.class); LocalServices.removeServiceForTest(WindowManagerPolicy.class);
LocalServices.removeServiceForTest(ColorDisplayService.ColorDisplayServiceInternal.class);
} }
@Test @Test
@@ -422,11 +414,9 @@ public final class DisplayPowerControllerTest {
@Test @Test
public void testDisplayBrightnessFollowers_AutomaticBrightness() { public void testDisplayBrightnessFollowers_AutomaticBrightness() {
doAnswer((Answer<Integer>) invocationOnMock -> Settings.System.putInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) Settings.System.SCREEN_BRIGHTNESS_MODE,
.when(() -> Settings.System.getIntForUser(any(ContentResolver.class), Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
eq(Settings.System.SCREEN_BRIGHTNESS_MODE), anyInt(),
eq(UserHandle.USER_CURRENT)));
final float brightness = 0.4f; final float brightness = 0.4f;
final float nits = 300; final float nits = 300;
final float ambientLux = 3000; final float ambientLux = 3000;
@@ -544,11 +534,9 @@ public final class DisplayPowerControllerTest {
@Test @Test
public void testSetScreenOffBrightnessSensorEnabled_DisplayIsOff() { public void testSetScreenOffBrightnessSensorEnabled_DisplayIsOff() {
doAnswer((Answer<Integer>) invocationOnMock -> Settings.System.putInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) Settings.System.SCREEN_BRIGHTNESS_MODE,
.when(() -> Settings.System.getIntForUser(any(ContentResolver.class), Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
eq(Settings.System.SCREEN_BRIGHTNESS_MODE), anyInt(),
eq(UserHandle.USER_CURRENT)));
DisplayPowerRequest dpr = new DisplayPowerRequest(); DisplayPowerRequest dpr = new DisplayPowerRequest();
dpr.policy = DisplayPowerRequest.POLICY_OFF; dpr.policy = DisplayPowerRequest.POLICY_OFF;
@@ -579,17 +567,14 @@ public final class DisplayPowerControllerTest {
@Test @Test
public void testSetScreenOffBrightnessSensorEnabled_DisplayIsInDoze() { public void testSetScreenOffBrightnessSensorEnabled_DisplayIsInDoze() {
doAnswer((Answer<Integer>) invocationOnMock -> Settings.System.putInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) Settings.System.SCREEN_BRIGHTNESS_MODE,
.when(() -> Settings.System.getIntForUser(any(ContentResolver.class), Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
eq(Settings.System.SCREEN_BRIGHTNESS_MODE), anyInt(),
eq(UserHandle.USER_CURRENT)));
DisplayPowerRequest dpr = new DisplayPowerRequest(); DisplayPowerRequest dpr = new DisplayPowerRequest();
dpr.policy = DisplayPowerRequest.POLICY_DOZE; dpr.policy = DisplayPowerRequest.POLICY_DOZE;
when(mResourcesMock.getBoolean( mContext.getOrCreateTestableResources().addOverride(
com.android.internal.R.bool.config_allowAutoBrightnessWhileDozing)) com.android.internal.R.bool.config_allowAutoBrightnessWhileDozing, true);
.thenReturn(true);
mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false); mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false);
advanceTime(1); // Run updatePowerState advanceTime(1); // Run updatePowerState
@@ -617,11 +602,9 @@ public final class DisplayPowerControllerTest {
@Test @Test
public void testSetScreenOffBrightnessSensorDisabled_AutoBrightnessIsDisabled() { public void testSetScreenOffBrightnessSensorDisabled_AutoBrightnessIsDisabled() {
doAnswer((Answer<Integer>) invocationOnMock -> Settings.System.putInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL) Settings.System.SCREEN_BRIGHTNESS_MODE,
.when(() -> Settings.System.getIntForUser(any(ContentResolver.class), Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
eq(Settings.System.SCREEN_BRIGHTNESS_MODE), anyInt(),
eq(UserHandle.USER_CURRENT)));
DisplayPowerRequest dpr = new DisplayPowerRequest(); DisplayPowerRequest dpr = new DisplayPowerRequest();
dpr.policy = DisplayPowerRequest.POLICY_OFF; dpr.policy = DisplayPowerRequest.POLICY_OFF;
@@ -634,11 +617,10 @@ public final class DisplayPowerControllerTest {
@Test @Test
public void testSetScreenOffBrightnessSensorDisabled_DisplayIsDisabled() { public void testSetScreenOffBrightnessSensorDisabled_DisplayIsDisabled() {
doAnswer((Answer<Integer>) invocationOnMock -> Settings.System.putInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC) Settings.System.SCREEN_BRIGHTNESS_MODE,
.when(() -> Settings.System.getIntForUser(any(ContentResolver.class), Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
eq(Settings.System.SCREEN_BRIGHTNESS_MODE), anyInt(),
eq(UserHandle.USER_CURRENT)));
mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID, /* isEnabled= */ false); mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID, /* isEnabled= */ false);
DisplayPowerRequest dpr = new DisplayPowerRequest(); DisplayPowerRequest dpr = new DisplayPowerRequest();
@@ -691,9 +673,10 @@ public final class DisplayPowerControllerTest {
public void testBrightnessNitsPersistWhenDisplayDeviceChanges() { public void testBrightnessNitsPersistWhenDisplayDeviceChanges() {
float brightness = 0.3f; float brightness = 0.3f;
float nits = 500; float nits = 500;
when(mResourcesMock.getBoolean( mContext.getOrCreateTestableResources().addOverride(
com.android.internal.R.bool.config_persistBrightnessNitsForDefaultDisplay)) com.android.internal.R.bool.config_persistBrightnessNitsForDefaultDisplay,
.thenReturn(true); true);
mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID); mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID);
when(mHolder.automaticBrightnessController.convertToNits(brightness)).thenReturn(nits); when(mHolder.automaticBrightnessController.convertToNits(brightness)).thenReturn(nits);
@@ -812,7 +795,7 @@ public final class DisplayPowerControllerTest {
setUpDisplay(displayId, uniqueId, display, device, config, isEnabled); setUpDisplay(displayId, uniqueId, display, device, config, isEnabled);
final DisplayPowerController dpc = new DisplayPowerController( final DisplayPowerController dpc = new DisplayPowerController(
mContextSpy, injector, mDisplayPowerCallbacksMock, mHandler, mContext, injector, mDisplayPowerCallbacksMock, mHandler,
mSensorManagerMock, mDisplayBlankerMock, display, mSensorManagerMock, mDisplayBlankerMock, display,
mBrightnessTrackerMock, brightnessSetting, () -> {}, mBrightnessTrackerMock, brightnessSetting, () -> {},
hbmMetadata, /* bootCompleted= */ false); hbmMetadata, /* bootCompleted= */ false);