From 4189e08daeb9f0ac3e31b11c91aa4bd47a3baf9c Mon Sep 17 00:00:00 2001 From: Antonio Kantek Date: Fri, 11 Feb 2022 16:34:11 -0800 Subject: [PATCH] Add unit tests to WMS#setInTouchMode Bug: 218883063 Test: atest WindowManagerServiceTests Change-Id: Ibe5a25c81877105e352d7f47751611de21985569 --- .../server/wm/WindowManagerServiceTests.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java index a91298f73d08c..103d86c6167cb 100644 --- a/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/WindowManagerServiceTests.java @@ -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); + } }