Loading services/core/java/com/android/server/app/GameManagerService.java +2 −0 Original line number Diff line number Diff line Loading @@ -1762,7 +1762,9 @@ public final class GameManagerService extends IGameManagerService.Stub { /** * Returns the string listing all the interventions currently set to a game. */ @RequiresPermission(Manifest.permission.QUERY_ALL_PACKAGES) public String getInterventionList(String packageName, int userId) { checkPermission(Manifest.permission.QUERY_ALL_PACKAGES); final GamePackageConfiguration packageConfig = getConfig(packageName, userId); final StringBuilder listStrSb = new StringBuilder(); if (packageConfig == null) { Loading services/tests/mockingservicestests/src/com/android/server/app/GameManagerServiceTests.java +28 −0 Original line number Diff line number Diff line Loading @@ -262,6 +262,16 @@ public class GameManagerServiceTests { mTestLooper.dispatchAll(); } private void mockQueryAllPackageGranted() { mMockContext.setPermission(Manifest.permission.QUERY_ALL_PACKAGES, PackageManager.PERMISSION_GRANTED); } private void mockQueryAllPackageDenied() { mMockContext.setPermission(Manifest.permission.QUERY_ALL_PACKAGES, PackageManager.PERMISSION_DENIED); } private void mockManageUsersGranted() { mMockContext.setPermission(Manifest.permission.MANAGE_USERS, PackageManager.PERMISSION_GRANTED); Loading Loading @@ -2180,4 +2190,22 @@ public class GameManagerServiceTests { verify(mMockPowerManager, never()).setPowerMode(anyInt(), anyBoolean()); assertFalse(gameManagerService.mHandler.hasMessages(CANCEL_GAME_LOADING_MODE)); } @Test public void testGetInterventionList_permissionDenied() throws Exception { String configString = "mode=2,downscaleFactor=0.5"; when(DeviceConfig.getProperty(anyString(), anyString())) .thenReturn(configString); mockQueryAllPackageDenied(); GameManagerService gameManagerService = createServiceAndStartUser(USER_ID_1); assertThrows(SecurityException.class, () -> gameManagerService.getInterventionList(mPackageName, USER_ID_1)); mockQueryAllPackageGranted(); String expectedInterventionListOutput = "\n[Name:" + mPackageName + " Modes: {2=[Game Mode:2,Scaling:0.5,Use Angle:false," + "Fps:,Loading Boost Duration:-1]}]"; assertEquals(expectedInterventionListOutput, gameManagerService.getInterventionList(mPackageName, USER_ID_1)); } } Loading
services/core/java/com/android/server/app/GameManagerService.java +2 −0 Original line number Diff line number Diff line Loading @@ -1762,7 +1762,9 @@ public final class GameManagerService extends IGameManagerService.Stub { /** * Returns the string listing all the interventions currently set to a game. */ @RequiresPermission(Manifest.permission.QUERY_ALL_PACKAGES) public String getInterventionList(String packageName, int userId) { checkPermission(Manifest.permission.QUERY_ALL_PACKAGES); final GamePackageConfiguration packageConfig = getConfig(packageName, userId); final StringBuilder listStrSb = new StringBuilder(); if (packageConfig == null) { Loading
services/tests/mockingservicestests/src/com/android/server/app/GameManagerServiceTests.java +28 −0 Original line number Diff line number Diff line Loading @@ -262,6 +262,16 @@ public class GameManagerServiceTests { mTestLooper.dispatchAll(); } private void mockQueryAllPackageGranted() { mMockContext.setPermission(Manifest.permission.QUERY_ALL_PACKAGES, PackageManager.PERMISSION_GRANTED); } private void mockQueryAllPackageDenied() { mMockContext.setPermission(Manifest.permission.QUERY_ALL_PACKAGES, PackageManager.PERMISSION_DENIED); } private void mockManageUsersGranted() { mMockContext.setPermission(Manifest.permission.MANAGE_USERS, PackageManager.PERMISSION_GRANTED); Loading Loading @@ -2180,4 +2190,22 @@ public class GameManagerServiceTests { verify(mMockPowerManager, never()).setPowerMode(anyInt(), anyBoolean()); assertFalse(gameManagerService.mHandler.hasMessages(CANCEL_GAME_LOADING_MODE)); } @Test public void testGetInterventionList_permissionDenied() throws Exception { String configString = "mode=2,downscaleFactor=0.5"; when(DeviceConfig.getProperty(anyString(), anyString())) .thenReturn(configString); mockQueryAllPackageDenied(); GameManagerService gameManagerService = createServiceAndStartUser(USER_ID_1); assertThrows(SecurityException.class, () -> gameManagerService.getInterventionList(mPackageName, USER_ID_1)); mockQueryAllPackageGranted(); String expectedInterventionListOutput = "\n[Name:" + mPackageName + " Modes: {2=[Game Mode:2,Scaling:0.5,Use Angle:false," + "Fps:,Loading Boost Duration:-1]}]"; assertEquals(expectedInterventionListOutput, gameManagerService.getInterventionList(mPackageName, USER_ID_1)); } }