diff --git a/services/tests/servicestests/src/com/android/server/display/DisplayManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/display/DisplayManagerServiceTest.java index bf3c7c3e05fb6..d5612e7a27b2a 100644 --- a/services/tests/servicestests/src/com/android/server/display/DisplayManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/display/DisplayManagerServiceTest.java @@ -27,6 +27,7 @@ import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -38,6 +39,7 @@ import android.compat.testing.PlatformCompatChangeRule; import android.content.Context; import android.content.ContextWrapper; import android.content.pm.PackageManager; +import android.content.res.Resources; import android.graphics.Insets; import android.graphics.Rect; import android.hardware.display.BrightnessConfiguration; @@ -72,6 +74,7 @@ import androidx.test.filters.FlakyTest; import androidx.test.filters.SmallTest; import androidx.test.runner.AndroidJUnit4; +import com.android.internal.R; import com.android.server.LocalServices; import com.android.server.SystemService; import com.android.server.companion.virtual.VirtualDeviceManagerInternal; @@ -93,6 +96,7 @@ import org.junit.rules.TestRule; import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.mockito.Mock; +import org.mockito.Mockito; import org.mockito.MockitoAnnotations; import java.time.Duration; @@ -203,6 +207,10 @@ public class DisplayManagerServiceTest { @Test public void testCreateVirtualDisplay_sentToInputManager() { + // This is to update the display device config such that DisplayManagerService can ignore + // the usage of SensorManager, which is available only after the PowerManagerService + // is ready. + resetConfigToIgnoreSensorManager(mContext); DisplayManagerService displayManager = new DisplayManagerService(mContext, mBasicInjector); registerDefaultDisplays(displayManager); @@ -275,6 +283,10 @@ public class DisplayManagerServiceTest { @Test public void testPhysicalViewports() { + // This is to update the display device config such that DisplayManagerService can ignore + // the usage of SensorManager, which is available only after the PowerManagerService + // is ready. + resetConfigToIgnoreSensorManager(mContext); DisplayManagerService displayManager = new DisplayManagerService(mContext, mBasicInjector); registerDefaultDisplays(displayManager); @@ -1343,6 +1355,20 @@ public class DisplayManagerServiceTest { } } + private void resetConfigToIgnoreSensorManager(Context context) { + final Resources res = Mockito.spy(context.getResources()); + doReturn(new int[]{-1}).when(res).getIntArray(R.array + .config_ambientThresholdsOfPeakRefreshRate); + doReturn(new int[]{-1}).when(res).getIntArray(R.array + .config_brightnessThresholdsOfPeakRefreshRate); + doReturn(new int[]{-1}).when(res).getIntArray(R.array + .config_highDisplayBrightnessThresholdsOfFixedRefreshRate); + doReturn(new int[]{-1}).when(res).getIntArray(R.array + .config_highAmbientBrightnessThresholdsOfFixedRefreshRate); + + when(context.getResources()).thenReturn(res); + } + private class FakeDisplayManagerCallback extends IDisplayManagerCallback.Stub { int mDisplayId; boolean mDisplayAddedCalled = false;