Loading services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceMigrationTest.java +21 −21 Original line number Diff line number Diff line Loading @@ -47,14 +47,14 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { mContext = getContext(); when(mContext.packageManager.hasSystemFeature(eq(PackageManager.FEATURE_DEVICE_ADMIN))) when(getServices().packageManager.hasSystemFeature(eq(PackageManager.FEATURE_DEVICE_ADMIN))) .thenReturn(true); } public void testMigration() throws Exception { final File user10dir = mMockContext.addUser(10, 0); final File user11dir = mMockContext.addUser(11, UserInfo.FLAG_MANAGED_PROFILE); mMockContext.addUser(12, 0); final File user10dir = getServices().addUser(10, 0); final File user11dir = getServices().addUser(11, UserInfo.FLAG_MANAGED_PROFILE); getServices().addUser(12, 0); setUpPackageManagerForAdmin(admin1, DpmMockContext.CALLER_SYSTEM_USER_UID); setUpPackageManagerForAdmin(admin2, UserHandle.getUid(10, 123)); Loading @@ -62,12 +62,12 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { // Create the legacy owners & policies file. DpmTestUtils.writeToFile( (new File(mContext.dataDir, OwnersTestable.LEGACY_FILE)).getAbsoluteFile(), (new File(getServices().dataDir, OwnersTestable.LEGACY_FILE)).getAbsoluteFile(), DpmTestUtils.readAsset(mRealTestContext, "DevicePolicyManagerServiceMigrationTest/legacy_device_owner.xml")); DpmTestUtils.writeToFile( (new File(mContext.systemUserDataDir, "device_policies.xml")).getAbsoluteFile(), (new File(getServices().systemUserDataDir, "device_policies.xml")).getAbsoluteFile(), DpmTestUtils.readAsset(mRealTestContext, "DevicePolicyManagerServiceMigrationTest/legacy_device_policies.xml")); Loading @@ -81,12 +81,12 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { "DevicePolicyManagerServiceMigrationTest/legacy_device_policies_11.xml")); // Set up UserManager when(mMockContext.userManagerInternal.getBaseUserRestrictions( when(getServices().userManagerInternal.getBaseUserRestrictions( eq(UserHandle.USER_SYSTEM))).thenReturn(DpmTestUtils.newRestrictions( UserManager.DISALLOW_ADD_USER, UserManager.DISALLOW_RECORD_AUDIO)); when(mMockContext.userManagerInternal.getBaseUserRestrictions( when(getServices().userManagerInternal.getBaseUserRestrictions( eq(10))).thenReturn(DpmTestUtils.newRestrictions( UserManager.DISALLOW_REMOVE_USER, UserManager.DISALLOW_ADD_USER, Loading @@ -95,7 +95,7 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { UserManager.DISALLOW_WALLPAPER, UserManager.DISALLOW_RECORD_AUDIO)); when(mMockContext.userManagerInternal.getBaseUserRestrictions( when(getServices().userManagerInternal.getBaseUserRestrictions( eq(11))).thenReturn(DpmTestUtils.newRestrictions( UserManager.DISALLOW_REMOVE_USER, UserManager.DISALLOW_ADD_USER, Loading @@ -113,7 +113,7 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { newBaseRestrictions.put(userId, bundle); return null; }).when(mContext.userManagerInternal).setBaseUserRestrictionsByDpmsForMigration( }).when(getServices().userManagerInternal).setBaseUserRestrictionsByDpmsForMigration( anyInt(), any(Bundle.class)); // Initialize DPM/DPMS and let it migrate the persisted information. Loading @@ -125,7 +125,7 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { try { LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); dpms = new DevicePolicyManagerServiceTestable(mContext, dataDir); dpms = new DevicePolicyManagerServiceTestable(getServices(), mContext); dpms.systemReady(SystemService.PHASE_LOCK_SETTINGS_READY); dpms.systemReady(SystemService.PHASE_BOOT_COMPLETED); Loading Loading @@ -200,17 +200,17 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { // Create the legacy owners & policies file. DpmTestUtils.writeToFile( (new File(mContext.dataDir, OwnersTestable.LEGACY_FILE)).getAbsoluteFile(), (new File(getServices().dataDir, OwnersTestable.LEGACY_FILE)).getAbsoluteFile(), DpmTestUtils.readAsset(mRealTestContext, "DevicePolicyManagerServiceMigrationTest2/legacy_device_owner.xml")); DpmTestUtils.writeToFile( (new File(mContext.systemUserDataDir, "device_policies.xml")).getAbsoluteFile(), (new File(getServices().systemUserDataDir, "device_policies.xml")).getAbsoluteFile(), DpmTestUtils.readAsset(mRealTestContext, "DevicePolicyManagerServiceMigrationTest2/legacy_device_policies.xml")); // Set up UserManager when(mMockContext.userManagerInternal.getBaseUserRestrictions( when(getServices().userManagerInternal.getBaseUserRestrictions( eq(UserHandle.USER_SYSTEM))).thenReturn(DpmTestUtils.newRestrictions( UserManager.DISALLOW_ADD_USER, UserManager.DISALLOW_RECORD_AUDIO, Loading @@ -226,7 +226,7 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { newBaseRestrictions.put(userId, bundle); return null; }).when(mContext.userManagerInternal).setBaseUserRestrictionsByDpmsForMigration( }).when(getServices().userManagerInternal).setBaseUserRestrictionsByDpmsForMigration( anyInt(), any(Bundle.class)); // Initialize DPM/DPMS and let it migrate the persisted information. Loading @@ -238,7 +238,7 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { try { LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); dpms = new DevicePolicyManagerServiceTestable(mContext, dataDir); dpms = new DevicePolicyManagerServiceTestable(getServices(), mContext); dpms.systemReady(SystemService.PHASE_LOCK_SETTINGS_READY); dpms.systemReady(SystemService.PHASE_BOOT_COMPLETED); Loading Loading @@ -273,18 +273,18 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { // Test setting default restrictions for managed profile. public void testMigration3_managedProfileOwner() throws Exception { // Create a managed profile user. final File user10dir = mMockContext.addUser(10, UserInfo.FLAG_MANAGED_PROFILE); final File user10dir = getServices().addUser(10, UserInfo.FLAG_MANAGED_PROFILE); // Profile owner package for managed profile user. setUpPackageManagerForAdmin(admin1, UserHandle.getUid(10, 123)); // Set up fake UserManager to make it look like a managed profile. when(mMockContext.userManager.isManagedProfile(eq(10))).thenReturn(true); when(getServices().userManager.isManagedProfile(eq(10))).thenReturn(true); // Set up fake Settings to make it look like INSTALL_NON_MARKET_APPS was reversed. when(mMockContext.settings.settingsSecureGetIntForUser( when(getServices().settings.settingsSecureGetIntForUser( eq(Settings.Secure.UNKNOWN_SOURCES_DEFAULT_REVERSED), eq(0), eq(10))).thenReturn(1); // Write policy and owners files. DpmTestUtils.writeToFile( (new File(mContext.systemUserDataDir, "device_policies.xml")).getAbsoluteFile(), (new File(getServices().systemUserDataDir, "device_policies.xml")).getAbsoluteFile(), DpmTestUtils.readAsset(mRealTestContext, "DevicePolicyManagerServiceMigrationTest3/system_device_policies.xml")); DpmTestUtils.writeToFile( Loading @@ -304,7 +304,7 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { try { LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); dpms = new DevicePolicyManagerServiceTestable(mContext, dataDir); dpms = new DevicePolicyManagerServiceTestable(getServices(), mContext); dpms.systemReady(SystemService.PHASE_LOCK_SETTINGS_READY); dpms.systemReady(SystemService.PHASE_BOOT_COMPLETED); Loading services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java +58 −60 Original line number Diff line number Diff line Loading @@ -61,11 +61,12 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi private final File mDeviceOwnerFile; private final File mUsersDataDir; public OwnersTestable(DpmMockContext context) { super(context.userManager, context.userManagerInternal, context.packageManagerInternal); mLegacyFile = new File(context.dataDir, LEGACY_FILE); mDeviceOwnerFile = new File(context.dataDir, DEVICE_OWNER_FILE); mUsersDataDir = new File(context.dataDir, "users"); public OwnersTestable(MockSystemServices services) { super(services.userManager, services.userManagerInternal, services.packageManagerInternal); mLegacyFile = new File(services.dataDir, LEGACY_FILE); mDeviceOwnerFile = new File(services.dataDir, DEVICE_OWNER_FILE); mUsersDataDir = new File(services.dataDir, "users"); } @Override Loading @@ -88,8 +89,8 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi public final DpmMockContext context; private final MockInjector mMockInjector; public DevicePolicyManagerServiceTestable(DpmMockContext context, File dataDir) { this(new MockInjector(context, dataDir)); public DevicePolicyManagerServiceTestable(MockSystemServices services, DpmMockContext context) { this(new MockInjector(services, context)); } private DevicePolicyManagerServiceTestable(MockInjector injector) { Loading @@ -100,15 +101,13 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi public void notifyChangeToContentObserver(Uri uri, int userHandle) { ContentObserver co = mMockInjector.mContentObservers .get(new Pair<Uri, Integer>(uri, userHandle)); ContentObserver co = mMockInjector.mContentObservers.get(new Pair<>(uri, userHandle)); if (co != null) { co.onChange(false, uri, userHandle); // notify synchronously } // Notify USER_ALL observer too. co = mMockInjector.mContentObservers .get(new Pair<Uri, Integer>(uri, UserHandle.USER_ALL)); co = mMockInjector.mContentObservers.get(new Pair<>(uri, UserHandle.USER_ALL)); if (co != null) { co.onChange(false, uri, userHandle); // notify synchronously } Loading @@ -118,76 +117,75 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi private static class MockInjector extends Injector { public final DpmMockContext context; public final File dataDir; private final MockSystemServices services; // Key is a pair of uri and userId private final Map<Pair<Uri, Integer>, ContentObserver> mContentObservers = new ArrayMap<>(); private MockInjector(DpmMockContext context, File dataDir) { private MockInjector(MockSystemServices services, DpmMockContext context) { super(context); this.services = services; this.context = context; this.dataDir = dataDir; } @Override Owners newOwners() { return new OwnersTestable(context); return new OwnersTestable(services); } @Override UserManager getUserManager() { return context.userManager; return services.userManager; } @Override UserManagerInternal getUserManagerInternal() { return context.userManagerInternal; return services.userManagerInternal; } @Override PackageManagerInternal getPackageManagerInternal() { return context.packageManagerInternal; return services.packageManagerInternal; } @Override PowerManagerInternal getPowerManagerInternal() { return context.powerManagerInternal; return services.powerManagerInternal; } @Override NotificationManager getNotificationManager() { return context.notificationManager; return services.notificationManager; } @Override IIpConnectivityMetrics getIIpConnectivityMetrics() { return context.iipConnectivityMetrics; return services.iipConnectivityMetrics; } @Override IWindowManager getIWindowManager() { return context.iwindowManager; return services.iwindowManager; } @Override IActivityManager getIActivityManager() { return context.iactivityManager; return services.iactivityManager; } @Override IPackageManager getIPackageManager() { return context.ipackageManager; return services.ipackageManager; } @Override IBackupManager getIBackupManager() { return context.ibackupManager; return services.ibackupManager; } @Override IAudioService getIAudioService() { return context.iaudioService; return services.iaudioService; } @Override Loading @@ -197,32 +195,32 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi @Override LockPatternUtils newLockPatternUtils() { return context.lockPatternUtils; return services.lockPatternUtils; } @Override boolean storageManagerIsFileBasedEncryptionEnabled() { return context.storageManager.isFileBasedEncryptionEnabled(); return services.storageManager.isFileBasedEncryptionEnabled(); } @Override boolean storageManagerIsNonDefaultBlockEncrypted() { return context.storageManager.isNonDefaultBlockEncrypted(); return services.storageManager.isNonDefaultBlockEncrypted(); } @Override boolean storageManagerIsEncrypted() { return context.storageManager.isEncrypted(); return services.storageManager.isEncrypted(); } @Override boolean storageManagerIsEncryptable() { return context.storageManager.isEncryptable(); return services.storageManager.isEncryptable(); } @Override String getDevicePolicyFilePathForSystemUser() { return context.systemUserDataDir.getAbsolutePath() + "/"; return services.systemUserDataDir.getAbsolutePath() + "/"; } @Override Loading Loading @@ -257,53 +255,53 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi @Override File environmentGetUserSystemDirectory(int userId) { return context.environment.getUserSystemDirectory(userId); return services.environment.getUserSystemDirectory(userId); } @Override void powerManagerGoToSleep(long time, int reason, int flags) { context.powerManager.goToSleep(time, reason, flags); services.powerManager.goToSleep(time, reason, flags); } @Override void powerManagerReboot(String reason) { context.powerManager.reboot(reason); services.powerManager.reboot(reason); } @Override void recoverySystemRebootWipeUserData(boolean shutdown, String reason, boolean force) throws IOException { context.recoverySystem.rebootWipeUserData(shutdown, reason, force); services.recoverySystem.rebootWipeUserData(shutdown, reason, force); } @Override boolean systemPropertiesGetBoolean(String key, boolean def) { return context.systemProperties.getBoolean(key, def); return services.systemProperties.getBoolean(key, def); } @Override long systemPropertiesGetLong(String key, long def) { return context.systemProperties.getLong(key, def); return services.systemProperties.getLong(key, def); } @Override String systemPropertiesGet(String key, String def) { return context.systemProperties.get(key, def); return services.systemProperties.get(key, def); } @Override String systemPropertiesGet(String key) { return context.systemProperties.get(key); return services.systemProperties.get(key); } @Override void systemPropertiesSet(String key, String value) { context.systemProperties.set(key, value); services.systemProperties.set(key, value); } @Override boolean userManagerIsSplitSystemUser() { return context.userManagerForMock.isSplitSystemUser(); return services.userManagerForMock.isSplitSystemUser(); } @Override Loading @@ -320,87 +318,87 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi @Override int settingsSecureGetIntForUser(String name, int def, int userHandle) { return context.settings.settingsSecureGetIntForUser(name, def, userHandle); return services.settings.settingsSecureGetIntForUser(name, def, userHandle); } @Override String settingsSecureGetStringForUser(String name, int userHandle) { return context.settings.settingsSecureGetStringForUser(name, userHandle); return services.settings.settingsSecureGetStringForUser(name, userHandle); } @Override void settingsSecurePutIntForUser(String name, int value, int userHandle) { context.settings.settingsSecurePutIntForUser(name, value, userHandle); services.settings.settingsSecurePutIntForUser(name, value, userHandle); } @Override void settingsSecurePutStringForUser(String name, String value, int userHandle) { context.settings.settingsSecurePutStringForUser(name, value, userHandle); services.settings.settingsSecurePutStringForUser(name, value, userHandle); } @Override void settingsGlobalPutStringForUser(String name, String value, int userHandle) { context.settings.settingsGlobalPutStringForUser(name, value, userHandle); services.settings.settingsGlobalPutStringForUser(name, value, userHandle); } @Override void settingsSecurePutInt(String name, int value) { context.settings.settingsSecurePutInt(name, value); services.settings.settingsSecurePutInt(name, value); } @Override void settingsGlobalPutInt(String name, int value) { context.settings.settingsGlobalPutInt(name, value); services.settings.settingsGlobalPutInt(name, value); } @Override void settingsSecurePutString(String name, String value) { context.settings.settingsSecurePutString(name, value); services.settings.settingsSecurePutString(name, value); } @Override void settingsGlobalPutString(String name, String value) { context.settings.settingsGlobalPutString(name, value); services.settings.settingsGlobalPutString(name, value); } @Override int settingsGlobalGetInt(String name, int def) { return context.settings.settingsGlobalGetInt(name, def); return services.settings.settingsGlobalGetInt(name, def); } @Override String settingsGlobalGetString(String name) { return context.settings.settingsGlobalGetString(name); return services.settings.settingsGlobalGetString(name); } @Override void securityLogSetLoggingEnabledProperty(boolean enabled) { context.settings.securityLogSetLoggingEnabledProperty(enabled); services.settings.securityLogSetLoggingEnabledProperty(enabled); } @Override boolean securityLogGetLoggingEnabledProperty() { return context.settings.securityLogGetLoggingEnabledProperty(); return services.settings.securityLogGetLoggingEnabledProperty(); } @Override boolean securityLogIsLoggingEnabled() { return context.settings.securityLogIsLoggingEnabled(); return services.settings.securityLogIsLoggingEnabled(); } @Override TelephonyManager getTelephonyManager() { return context.telephonyManager; return services.telephonyManager; } @Override boolean isBuildDebuggable() { return context.buildMock.isDebuggable; return services.buildMock.isDebuggable; } @Override KeyChain.KeyChainConnection keyChainBindAsUser(UserHandle user) { return context.keyChainConnection; return services.keyChainConnection; } } } Loading
services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceMigrationTest.java +21 −21 Original line number Diff line number Diff line Loading @@ -47,14 +47,14 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { mContext = getContext(); when(mContext.packageManager.hasSystemFeature(eq(PackageManager.FEATURE_DEVICE_ADMIN))) when(getServices().packageManager.hasSystemFeature(eq(PackageManager.FEATURE_DEVICE_ADMIN))) .thenReturn(true); } public void testMigration() throws Exception { final File user10dir = mMockContext.addUser(10, 0); final File user11dir = mMockContext.addUser(11, UserInfo.FLAG_MANAGED_PROFILE); mMockContext.addUser(12, 0); final File user10dir = getServices().addUser(10, 0); final File user11dir = getServices().addUser(11, UserInfo.FLAG_MANAGED_PROFILE); getServices().addUser(12, 0); setUpPackageManagerForAdmin(admin1, DpmMockContext.CALLER_SYSTEM_USER_UID); setUpPackageManagerForAdmin(admin2, UserHandle.getUid(10, 123)); Loading @@ -62,12 +62,12 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { // Create the legacy owners & policies file. DpmTestUtils.writeToFile( (new File(mContext.dataDir, OwnersTestable.LEGACY_FILE)).getAbsoluteFile(), (new File(getServices().dataDir, OwnersTestable.LEGACY_FILE)).getAbsoluteFile(), DpmTestUtils.readAsset(mRealTestContext, "DevicePolicyManagerServiceMigrationTest/legacy_device_owner.xml")); DpmTestUtils.writeToFile( (new File(mContext.systemUserDataDir, "device_policies.xml")).getAbsoluteFile(), (new File(getServices().systemUserDataDir, "device_policies.xml")).getAbsoluteFile(), DpmTestUtils.readAsset(mRealTestContext, "DevicePolicyManagerServiceMigrationTest/legacy_device_policies.xml")); Loading @@ -81,12 +81,12 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { "DevicePolicyManagerServiceMigrationTest/legacy_device_policies_11.xml")); // Set up UserManager when(mMockContext.userManagerInternal.getBaseUserRestrictions( when(getServices().userManagerInternal.getBaseUserRestrictions( eq(UserHandle.USER_SYSTEM))).thenReturn(DpmTestUtils.newRestrictions( UserManager.DISALLOW_ADD_USER, UserManager.DISALLOW_RECORD_AUDIO)); when(mMockContext.userManagerInternal.getBaseUserRestrictions( when(getServices().userManagerInternal.getBaseUserRestrictions( eq(10))).thenReturn(DpmTestUtils.newRestrictions( UserManager.DISALLOW_REMOVE_USER, UserManager.DISALLOW_ADD_USER, Loading @@ -95,7 +95,7 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { UserManager.DISALLOW_WALLPAPER, UserManager.DISALLOW_RECORD_AUDIO)); when(mMockContext.userManagerInternal.getBaseUserRestrictions( when(getServices().userManagerInternal.getBaseUserRestrictions( eq(11))).thenReturn(DpmTestUtils.newRestrictions( UserManager.DISALLOW_REMOVE_USER, UserManager.DISALLOW_ADD_USER, Loading @@ -113,7 +113,7 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { newBaseRestrictions.put(userId, bundle); return null; }).when(mContext.userManagerInternal).setBaseUserRestrictionsByDpmsForMigration( }).when(getServices().userManagerInternal).setBaseUserRestrictionsByDpmsForMigration( anyInt(), any(Bundle.class)); // Initialize DPM/DPMS and let it migrate the persisted information. Loading @@ -125,7 +125,7 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { try { LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); dpms = new DevicePolicyManagerServiceTestable(mContext, dataDir); dpms = new DevicePolicyManagerServiceTestable(getServices(), mContext); dpms.systemReady(SystemService.PHASE_LOCK_SETTINGS_READY); dpms.systemReady(SystemService.PHASE_BOOT_COMPLETED); Loading Loading @@ -200,17 +200,17 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { // Create the legacy owners & policies file. DpmTestUtils.writeToFile( (new File(mContext.dataDir, OwnersTestable.LEGACY_FILE)).getAbsoluteFile(), (new File(getServices().dataDir, OwnersTestable.LEGACY_FILE)).getAbsoluteFile(), DpmTestUtils.readAsset(mRealTestContext, "DevicePolicyManagerServiceMigrationTest2/legacy_device_owner.xml")); DpmTestUtils.writeToFile( (new File(mContext.systemUserDataDir, "device_policies.xml")).getAbsoluteFile(), (new File(getServices().systemUserDataDir, "device_policies.xml")).getAbsoluteFile(), DpmTestUtils.readAsset(mRealTestContext, "DevicePolicyManagerServiceMigrationTest2/legacy_device_policies.xml")); // Set up UserManager when(mMockContext.userManagerInternal.getBaseUserRestrictions( when(getServices().userManagerInternal.getBaseUserRestrictions( eq(UserHandle.USER_SYSTEM))).thenReturn(DpmTestUtils.newRestrictions( UserManager.DISALLOW_ADD_USER, UserManager.DISALLOW_RECORD_AUDIO, Loading @@ -226,7 +226,7 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { newBaseRestrictions.put(userId, bundle); return null; }).when(mContext.userManagerInternal).setBaseUserRestrictionsByDpmsForMigration( }).when(getServices().userManagerInternal).setBaseUserRestrictionsByDpmsForMigration( anyInt(), any(Bundle.class)); // Initialize DPM/DPMS and let it migrate the persisted information. Loading @@ -238,7 +238,7 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { try { LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); dpms = new DevicePolicyManagerServiceTestable(mContext, dataDir); dpms = new DevicePolicyManagerServiceTestable(getServices(), mContext); dpms.systemReady(SystemService.PHASE_LOCK_SETTINGS_READY); dpms.systemReady(SystemService.PHASE_BOOT_COMPLETED); Loading Loading @@ -273,18 +273,18 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { // Test setting default restrictions for managed profile. public void testMigration3_managedProfileOwner() throws Exception { // Create a managed profile user. final File user10dir = mMockContext.addUser(10, UserInfo.FLAG_MANAGED_PROFILE); final File user10dir = getServices().addUser(10, UserInfo.FLAG_MANAGED_PROFILE); // Profile owner package for managed profile user. setUpPackageManagerForAdmin(admin1, UserHandle.getUid(10, 123)); // Set up fake UserManager to make it look like a managed profile. when(mMockContext.userManager.isManagedProfile(eq(10))).thenReturn(true); when(getServices().userManager.isManagedProfile(eq(10))).thenReturn(true); // Set up fake Settings to make it look like INSTALL_NON_MARKET_APPS was reversed. when(mMockContext.settings.settingsSecureGetIntForUser( when(getServices().settings.settingsSecureGetIntForUser( eq(Settings.Secure.UNKNOWN_SOURCES_DEFAULT_REVERSED), eq(0), eq(10))).thenReturn(1); // Write policy and owners files. DpmTestUtils.writeToFile( (new File(mContext.systemUserDataDir, "device_policies.xml")).getAbsoluteFile(), (new File(getServices().systemUserDataDir, "device_policies.xml")).getAbsoluteFile(), DpmTestUtils.readAsset(mRealTestContext, "DevicePolicyManagerServiceMigrationTest3/system_device_policies.xml")); DpmTestUtils.writeToFile( Loading @@ -304,7 +304,7 @@ public class DevicePolicyManagerServiceMigrationTest extends DpmTestBase { try { LocalServices.removeServiceForTest(DevicePolicyManagerInternal.class); dpms = new DevicePolicyManagerServiceTestable(mContext, dataDir); dpms = new DevicePolicyManagerServiceTestable(getServices(), mContext); dpms.systemReady(SystemService.PHASE_LOCK_SETTINGS_READY); dpms.systemReady(SystemService.PHASE_BOOT_COMPLETED); Loading
services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerServiceTestable.java +58 −60 Original line number Diff line number Diff line Loading @@ -61,11 +61,12 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi private final File mDeviceOwnerFile; private final File mUsersDataDir; public OwnersTestable(DpmMockContext context) { super(context.userManager, context.userManagerInternal, context.packageManagerInternal); mLegacyFile = new File(context.dataDir, LEGACY_FILE); mDeviceOwnerFile = new File(context.dataDir, DEVICE_OWNER_FILE); mUsersDataDir = new File(context.dataDir, "users"); public OwnersTestable(MockSystemServices services) { super(services.userManager, services.userManagerInternal, services.packageManagerInternal); mLegacyFile = new File(services.dataDir, LEGACY_FILE); mDeviceOwnerFile = new File(services.dataDir, DEVICE_OWNER_FILE); mUsersDataDir = new File(services.dataDir, "users"); } @Override Loading @@ -88,8 +89,8 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi public final DpmMockContext context; private final MockInjector mMockInjector; public DevicePolicyManagerServiceTestable(DpmMockContext context, File dataDir) { this(new MockInjector(context, dataDir)); public DevicePolicyManagerServiceTestable(MockSystemServices services, DpmMockContext context) { this(new MockInjector(services, context)); } private DevicePolicyManagerServiceTestable(MockInjector injector) { Loading @@ -100,15 +101,13 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi public void notifyChangeToContentObserver(Uri uri, int userHandle) { ContentObserver co = mMockInjector.mContentObservers .get(new Pair<Uri, Integer>(uri, userHandle)); ContentObserver co = mMockInjector.mContentObservers.get(new Pair<>(uri, userHandle)); if (co != null) { co.onChange(false, uri, userHandle); // notify synchronously } // Notify USER_ALL observer too. co = mMockInjector.mContentObservers .get(new Pair<Uri, Integer>(uri, UserHandle.USER_ALL)); co = mMockInjector.mContentObservers.get(new Pair<>(uri, UserHandle.USER_ALL)); if (co != null) { co.onChange(false, uri, userHandle); // notify synchronously } Loading @@ -118,76 +117,75 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi private static class MockInjector extends Injector { public final DpmMockContext context; public final File dataDir; private final MockSystemServices services; // Key is a pair of uri and userId private final Map<Pair<Uri, Integer>, ContentObserver> mContentObservers = new ArrayMap<>(); private MockInjector(DpmMockContext context, File dataDir) { private MockInjector(MockSystemServices services, DpmMockContext context) { super(context); this.services = services; this.context = context; this.dataDir = dataDir; } @Override Owners newOwners() { return new OwnersTestable(context); return new OwnersTestable(services); } @Override UserManager getUserManager() { return context.userManager; return services.userManager; } @Override UserManagerInternal getUserManagerInternal() { return context.userManagerInternal; return services.userManagerInternal; } @Override PackageManagerInternal getPackageManagerInternal() { return context.packageManagerInternal; return services.packageManagerInternal; } @Override PowerManagerInternal getPowerManagerInternal() { return context.powerManagerInternal; return services.powerManagerInternal; } @Override NotificationManager getNotificationManager() { return context.notificationManager; return services.notificationManager; } @Override IIpConnectivityMetrics getIIpConnectivityMetrics() { return context.iipConnectivityMetrics; return services.iipConnectivityMetrics; } @Override IWindowManager getIWindowManager() { return context.iwindowManager; return services.iwindowManager; } @Override IActivityManager getIActivityManager() { return context.iactivityManager; return services.iactivityManager; } @Override IPackageManager getIPackageManager() { return context.ipackageManager; return services.ipackageManager; } @Override IBackupManager getIBackupManager() { return context.ibackupManager; return services.ibackupManager; } @Override IAudioService getIAudioService() { return context.iaudioService; return services.iaudioService; } @Override Loading @@ -197,32 +195,32 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi @Override LockPatternUtils newLockPatternUtils() { return context.lockPatternUtils; return services.lockPatternUtils; } @Override boolean storageManagerIsFileBasedEncryptionEnabled() { return context.storageManager.isFileBasedEncryptionEnabled(); return services.storageManager.isFileBasedEncryptionEnabled(); } @Override boolean storageManagerIsNonDefaultBlockEncrypted() { return context.storageManager.isNonDefaultBlockEncrypted(); return services.storageManager.isNonDefaultBlockEncrypted(); } @Override boolean storageManagerIsEncrypted() { return context.storageManager.isEncrypted(); return services.storageManager.isEncrypted(); } @Override boolean storageManagerIsEncryptable() { return context.storageManager.isEncryptable(); return services.storageManager.isEncryptable(); } @Override String getDevicePolicyFilePathForSystemUser() { return context.systemUserDataDir.getAbsolutePath() + "/"; return services.systemUserDataDir.getAbsolutePath() + "/"; } @Override Loading Loading @@ -257,53 +255,53 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi @Override File environmentGetUserSystemDirectory(int userId) { return context.environment.getUserSystemDirectory(userId); return services.environment.getUserSystemDirectory(userId); } @Override void powerManagerGoToSleep(long time, int reason, int flags) { context.powerManager.goToSleep(time, reason, flags); services.powerManager.goToSleep(time, reason, flags); } @Override void powerManagerReboot(String reason) { context.powerManager.reboot(reason); services.powerManager.reboot(reason); } @Override void recoverySystemRebootWipeUserData(boolean shutdown, String reason, boolean force) throws IOException { context.recoverySystem.rebootWipeUserData(shutdown, reason, force); services.recoverySystem.rebootWipeUserData(shutdown, reason, force); } @Override boolean systemPropertiesGetBoolean(String key, boolean def) { return context.systemProperties.getBoolean(key, def); return services.systemProperties.getBoolean(key, def); } @Override long systemPropertiesGetLong(String key, long def) { return context.systemProperties.getLong(key, def); return services.systemProperties.getLong(key, def); } @Override String systemPropertiesGet(String key, String def) { return context.systemProperties.get(key, def); return services.systemProperties.get(key, def); } @Override String systemPropertiesGet(String key) { return context.systemProperties.get(key); return services.systemProperties.get(key); } @Override void systemPropertiesSet(String key, String value) { context.systemProperties.set(key, value); services.systemProperties.set(key, value); } @Override boolean userManagerIsSplitSystemUser() { return context.userManagerForMock.isSplitSystemUser(); return services.userManagerForMock.isSplitSystemUser(); } @Override Loading @@ -320,87 +318,87 @@ public class DevicePolicyManagerServiceTestable extends DevicePolicyManagerServi @Override int settingsSecureGetIntForUser(String name, int def, int userHandle) { return context.settings.settingsSecureGetIntForUser(name, def, userHandle); return services.settings.settingsSecureGetIntForUser(name, def, userHandle); } @Override String settingsSecureGetStringForUser(String name, int userHandle) { return context.settings.settingsSecureGetStringForUser(name, userHandle); return services.settings.settingsSecureGetStringForUser(name, userHandle); } @Override void settingsSecurePutIntForUser(String name, int value, int userHandle) { context.settings.settingsSecurePutIntForUser(name, value, userHandle); services.settings.settingsSecurePutIntForUser(name, value, userHandle); } @Override void settingsSecurePutStringForUser(String name, String value, int userHandle) { context.settings.settingsSecurePutStringForUser(name, value, userHandle); services.settings.settingsSecurePutStringForUser(name, value, userHandle); } @Override void settingsGlobalPutStringForUser(String name, String value, int userHandle) { context.settings.settingsGlobalPutStringForUser(name, value, userHandle); services.settings.settingsGlobalPutStringForUser(name, value, userHandle); } @Override void settingsSecurePutInt(String name, int value) { context.settings.settingsSecurePutInt(name, value); services.settings.settingsSecurePutInt(name, value); } @Override void settingsGlobalPutInt(String name, int value) { context.settings.settingsGlobalPutInt(name, value); services.settings.settingsGlobalPutInt(name, value); } @Override void settingsSecurePutString(String name, String value) { context.settings.settingsSecurePutString(name, value); services.settings.settingsSecurePutString(name, value); } @Override void settingsGlobalPutString(String name, String value) { context.settings.settingsGlobalPutString(name, value); services.settings.settingsGlobalPutString(name, value); } @Override int settingsGlobalGetInt(String name, int def) { return context.settings.settingsGlobalGetInt(name, def); return services.settings.settingsGlobalGetInt(name, def); } @Override String settingsGlobalGetString(String name) { return context.settings.settingsGlobalGetString(name); return services.settings.settingsGlobalGetString(name); } @Override void securityLogSetLoggingEnabledProperty(boolean enabled) { context.settings.securityLogSetLoggingEnabledProperty(enabled); services.settings.securityLogSetLoggingEnabledProperty(enabled); } @Override boolean securityLogGetLoggingEnabledProperty() { return context.settings.securityLogGetLoggingEnabledProperty(); return services.settings.securityLogGetLoggingEnabledProperty(); } @Override boolean securityLogIsLoggingEnabled() { return context.settings.securityLogIsLoggingEnabled(); return services.settings.securityLogIsLoggingEnabled(); } @Override TelephonyManager getTelephonyManager() { return context.telephonyManager; return services.telephonyManager; } @Override boolean isBuildDebuggable() { return context.buildMock.isDebuggable; return services.buildMock.isDebuggable; } @Override KeyChain.KeyChainConnection keyChainBindAsUser(UserHandle user) { return context.keyChainConnection; return services.keyChainConnection; } } }