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

Commit 3f17b539 authored by Chen Bai's avatar Chen Bai
Browse files

add unit tests for screen-on blocker when change screen state

Test: atest DisplayServiceTests:DisplayPowerControllerTest
Bug: 316941732
Change-Id: I1f3cf3e859e3ceb0b94ccf40c781513539b93f6d
parent 29ed1f50
Loading
Loading
Loading
Loading
+41 −0
Original line number Diff line number Diff line
@@ -1545,6 +1545,47 @@ public final class DisplayPowerControllerTest {
        verify(mHolder.displayPowerState, never()).setScreenState(anyInt());
    }

    @Test
    public void testOffloadBlocker_turnON_screenOnBlocked() {
        // set up.
        int initState = Display.STATE_OFF;
        mHolder = createDisplayPowerController(DISPLAY_ID, UNIQUE_ID);
        mHolder.dpc.setDisplayOffloadSession(mDisplayOffloadSession);
        // start with OFF.
        when(mHolder.displayPowerState.getScreenState()).thenReturn(initState);
        DisplayPowerRequest dpr = new DisplayPowerRequest();
        dpr.policy = DisplayPowerRequest.POLICY_OFF;
        mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false);
        advanceTime(1); // Run updatePowerState

        // go to ON.
        dpr.policy = DisplayPowerRequest.POLICY_BRIGHT;
        mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false);
        advanceTime(1); // Run updatePowerState

        verify(mDisplayOffloadSession).blockScreenOn(any(Runnable.class));
    }

    @Test
    public void testOffloadBlocker_turnOFF_screenOnNotBlocked() {
        // set up.
        int initState = Display.STATE_ON;
        mHolder.dpc.setDisplayOffloadSession(mDisplayOffloadSession);
        // start with ON.
        when(mHolder.displayPowerState.getScreenState()).thenReturn(initState);
        DisplayPowerRequest dpr = new DisplayPowerRequest();
        dpr.policy = DisplayPowerRequest.POLICY_BRIGHT;
        mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false);
        advanceTime(1); // Run updatePowerState

        // go to OFF.
        dpr.policy = DisplayPowerRequest.POLICY_OFF;
        mHolder.dpc.requestPowerState(dpr, /* waitForNegativeProximity= */ false);
        advanceTime(1); // Run updatePowerState

        verify(mDisplayOffloadSession, never()).blockScreenOn(any(Runnable.class));
    }

    @Test
    public void testBrightnessFromOffload() {
        when(mDisplayManagerFlagsMock.isDisplayOffloadEnabled()).thenReturn(true);