Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f18058bc authored by Oleg Blinnikov's avatar Oleg Blinnikov
Browse files

Mock Resources in DisplayModeDirectorTest

Change-Id: If39c55b438bee54131411fb6c2197cffdbd794d7
Bug: 320994645
Test: atest DisplayModeDirectorTest
parent f16778be
Loading
Loading
Loading
Loading
+71 −14
Original line number Diff line number Diff line
@@ -295,6 +295,7 @@ public class DisplayModeDirectorTest {
    private static final float HBM_TRANSITION_POINT_INVALID = Float.POSITIVE_INFINITY;

    private Context mContext;
    private Resources mResources;
    private FakesInjector mInjector;
    private Handler mHandler;
    @Rule
@@ -318,6 +319,8 @@ public class DisplayModeDirectorTest {
    @Before
    public void setUp() throws Exception {
        mContext = spy(new ContextWrapper(ApplicationProvider.getApplicationContext()));
        mResources = mockResources();
        when(mContext.getResources()).thenReturn(mResources);
        final MockContentResolver resolver = mSettingsProviderRule.mockContentResolver(mContext);
        when(mContext.getContentResolver()).thenReturn(resolver);
        mInjector = spy(new FakesInjector(mDisplayManagerInternalMock, mStatusBarMock,
@@ -325,6 +328,60 @@ public class DisplayModeDirectorTest {
        mHandler = new Handler(Looper.getMainLooper());
    }

    private Resources mockResources() {
        var resources = mock(Resources.class);
        when(resources.getBoolean(R.bool.config_ignoreUdfpsVote))
                .thenReturn(false);
        when(resources.getBoolean(R.bool.config_refreshRateSynchronizationEnabled))
                .thenReturn(false);
        when(resources.getBoolean(R.bool.config_supportsDvrr))
                .thenReturn(false);
        when(resources.getInteger(R.integer.config_displayWhiteBalanceBrightnessFilterHorizon))
                .thenReturn(10000);
        when(resources.getInteger(R.integer.config_defaultPeakRefreshRate))
                .thenReturn(0);
        when(resources.getInteger(R.integer.config_externalDisplayPeakRefreshRate))
                .thenReturn(0);
        when(resources.getInteger(R.integer.config_externalDisplayPeakWidth))
                .thenReturn(0);
        when(resources.getInteger(R.integer.config_externalDisplayPeakHeight))
                .thenReturn(0);
        when(resources.getInteger(R.integer.config_fixedRefreshRateInHighZone))
                .thenReturn(0);
        when(resources.getInteger(R.integer.config_defaultRefreshRateInZone))
                .thenReturn(0);
        when(resources.getInteger(R.integer.config_defaultRefreshRate))
                .thenReturn(60);
        when(resources.getInteger(R.integer.config_defaultRefreshRateInHbmHdr))
                .thenReturn(0);
        when(resources.getInteger(R.integer.config_defaultRefreshRateInHbmSunlight))
                .thenReturn(0);

        when(resources.getString(R.string.config_displayLightSensorType))
                .thenReturn(null);

        when(resources.getIntArray(R.array.config_brightnessThresholdsOfPeakRefreshRate))
                .thenReturn(new int[]{});
        when(resources.getIntArray(
                R.array.config_highDisplayBrightnessThresholdsOfFixedRefreshRate))
                .thenReturn(new int[]{});
        when(resources.getIntArray(
                R.array.config_highAmbientBrightnessThresholdsOfFixedRefreshRate))
                .thenReturn(new int[]{});
        when(resources.getIntArray(R.array.config_ambientThresholdsOfPeakRefreshRate))
                .thenReturn(new int[]{});

        doAnswer(invocation -> {
            TypedValue value = invocation.getArgument(1);
            value.type = TypedValue.TYPE_FLOAT;
            value.data = Float.floatToIntBits(10f);
            return null; // void method, so return null
        }).when(resources).getValue(eq(R.dimen.config_displayWhiteBalanceBrightnessFilterIntercept),
                any(), eq(true));

        return resources;
    }

    private DisplayModeDirector createDirectorFromRefreshRateArray(
            float[] refreshRates, int baseModeId) {
        return createDirectorFromRefreshRateArray(refreshRates, baseModeId, refreshRates[0]);
@@ -2911,31 +2968,31 @@ public class DisplayModeDirectorTest {

    @Test
    public void testNotifyDefaultDisplayDeviceUpdated() {
        Resources resources = mock(Resources.class);
        when(mContext.getResources()).thenReturn(resources);
        when(resources.getInteger(com.android.internal.R.integer.config_defaultPeakRefreshRate))
        when(mResources.getInteger(com.android.internal.R.integer.config_defaultPeakRefreshRate))
            .thenReturn(75);
        when(resources.getInteger(R.integer.config_defaultRefreshRate))
        when(mResources.getInteger(R.integer.config_defaultRefreshRate))
            .thenReturn(45);
        when(resources.getInteger(R.integer.config_fixedRefreshRateInHighZone))
        when(mResources.getInteger(R.integer.config_fixedRefreshRateInHighZone))
            .thenReturn(65);
        when(resources.getInteger(R.integer.config_defaultRefreshRateInZone))
        when(mResources.getInteger(R.integer.config_defaultRefreshRateInZone))
            .thenReturn(85);
        when(resources.getInteger(R.integer.config_defaultRefreshRateInHbmHdr))
        when(mResources.getInteger(R.integer.config_defaultRefreshRateInHbmHdr))
            .thenReturn(95);
        when(resources.getInteger(R.integer.config_defaultRefreshRateInHbmSunlight))
        when(mResources.getInteger(R.integer.config_defaultRefreshRateInHbmSunlight))
            .thenReturn(100);
        when(resources.getIntArray(R.array.config_brightnessThresholdsOfPeakRefreshRate))
        when(mResources.getIntArray(R.array.config_brightnessThresholdsOfPeakRefreshRate))
            .thenReturn(new int[]{5});
        when(resources.getIntArray(R.array.config_ambientThresholdsOfPeakRefreshRate))
        when(mResources.getIntArray(R.array.config_ambientThresholdsOfPeakRefreshRate))
            .thenReturn(new int[]{10});
        when(
            resources.getIntArray(R.array.config_highDisplayBrightnessThresholdsOfFixedRefreshRate))
            mResources.getIntArray(
                    R.array.config_highDisplayBrightnessThresholdsOfFixedRefreshRate))
            .thenReturn(new int[]{250});
        when(
            resources.getIntArray(R.array.config_highAmbientBrightnessThresholdsOfFixedRefreshRate))
            mResources.getIntArray(
                    R.array.config_highAmbientBrightnessThresholdsOfFixedRefreshRate))
            .thenReturn(new int[]{7000});
        when(resources.getInteger(
        when(mResources.getInteger(
            com.android.internal.R.integer.config_displayWhiteBalanceBrightnessFilterHorizon))
            .thenReturn(3);
        ArgumentCaptor<TypedValue> valueArgumentCaptor = ArgumentCaptor.forClass(TypedValue.class);
@@ -2943,7 +3000,7 @@ public class DisplayModeDirectorTest {
            valueArgumentCaptor.getValue().type = 4;
            valueArgumentCaptor.getValue().data = 13;
            return null;
        }).when(resources).getValue(eq(com.android.internal.R.dimen
        }).when(mResources).getValue(eq(com.android.internal.R.dimen
                .config_displayWhiteBalanceBrightnessFilterIntercept),
                valueArgumentCaptor.capture(), eq(true));
        DisplayModeDirector director =