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

Commit 4189e08d authored by Antonio Kantek's avatar Antonio Kantek
Browse files

Add unit tests to WMS#setInTouchMode

Bug: 218883063
Test: atest WindowManagerServiceTests
Change-Id: Ibe5a25c81877105e352d7f47751611de21985569
parent dd0811a6
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.content.pm.PackageManager;
import android.os.Binder;
@@ -285,4 +286,32 @@ public class WindowManagerServiceTests extends WindowTestsBase {
        verify(mWm.mWindowContextListenerController, never()).registerWindowContainerListener(any(),
                any(), anyInt(), anyInt(), any());
    }

    @Test
    public void testSetInTouchMode_instrumentedProcessGetPermissionToSwitchTouchMode() {
        boolean currentTouchMode = mWm.getInTouchMode();
        int callingPid = Binder.getCallingPid();
        int callingUid = Binder.getCallingUid();
        doReturn(false).when(mWm).checkCallingPermission(anyString(), anyString());
        when(mWm.mAtmService.isInstrumenting(callingPid)).thenReturn(true);

        mWm.setInTouchMode(!currentTouchMode);

        verify(mWm.mInputManager).setInTouchMode(
                !currentTouchMode, callingPid, callingUid, /* hasPermission= */ true);
    }

    @Test
    public void testSetInTouchMode_nonInstrumentedProcessDontGetPermissionToSwitchTouchMode() {
        boolean currentTouchMode = mWm.getInTouchMode();
        int callingPid = Binder.getCallingPid();
        int callingUid = Binder.getCallingUid();
        doReturn(false).when(mWm).checkCallingPermission(anyString(), anyString());
        when(mWm.mAtmService.isInstrumenting(callingPid)).thenReturn(false);

        mWm.setInTouchMode(!currentTouchMode);

        verify(mWm.mInputManager).setInTouchMode(
                !currentTouchMode, callingPid, callingUid, /* hasPermission= */ false);
    }
}