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

Commit ba9f346f authored by Pavel Grafov's avatar Pavel Grafov Committed by Android (Google) Code Review
Browse files

Merge "Cleanup some more DPM tests to use runAsCaller."

parents 570d0415 75c0a891
Loading
Loading
Loading
Loading
+21 −21
Original line number Diff line number Diff line
@@ -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));
@@ -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"));

@@ -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,
@@ -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,
@@ -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.
@@ -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);
@@ -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,
@@ -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.
@@ -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);
@@ -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(
@@ -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);
+58 −60
Original line number Diff line number Diff line
@@ -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
@@ -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) {
@@ -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
        }
@@ -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
@@ -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
@@ -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
@@ -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;
        }
    }
}
+367 −376

File changed.

Preview size limit exceeded, changes collapsed.

+22 −443

File changed.

Preview size limit exceeded, changes collapsed.

+27 −22
Original line number Diff line number Diff line
@@ -16,6 +16,10 @@

package com.android.server.devicepolicy;

import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doReturn;

import android.app.admin.DevicePolicyManager;
import android.content.ComponentName;
import android.content.Context;
@@ -28,20 +32,14 @@ import android.content.pm.ResolveInfo;
import android.os.UserHandle;
import android.test.AndroidTestCase;

import java.io.File;
import java.util.List;

import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.doReturn;

public abstract class DpmTestBase extends AndroidTestCase {
    public static final String TAG = "DpmTest";

    protected Context mRealTestContext;
    protected DpmMockContext mMockContext;

    public File dataDir;
    private MockSystemServices mServices;

    public ComponentName admin1;
    public ComponentName admin2;
@@ -55,8 +53,8 @@ public abstract class DpmTestBase extends AndroidTestCase {

        mRealTestContext = super.getContext();

        mMockContext = new DpmMockContext(
                mRealTestContext, new File(mRealTestContext.getCacheDir(), "test-data"));
        mServices = new MockSystemServices(mRealTestContext, "test-data");
        mMockContext = new DpmMockContext(mServices, mRealTestContext);

        admin1 = new ComponentName(mRealTestContext, DummyDeviceAdmins.Admin1.class);
        admin2 = new ComponentName(mRealTestContext, DummyDeviceAdmins.Admin2.class);
@@ -71,12 +69,16 @@ public abstract class DpmTestBase extends AndroidTestCase {
        return mMockContext;
    }

    public MockSystemServices getServices() {
        return mServices;
    }

    protected interface DpmRunnable {
        public void run(DevicePolicyManager dpm) throws Exception;
        void run(DevicePolicyManager dpm) throws Exception;
    }

    /**
     * Simulate an RPC from {@param caller} to the service context ({@link #mContext}).
     * Simulate an RPC from {@param caller} to the service context ({@link #mMockContext}).
     *
     * The caller sees its own context. The server also sees its own separate context, with the
     * appropriate calling UID and calling permissions fields already set up.
@@ -85,12 +87,15 @@ public abstract class DpmTestBase extends AndroidTestCase {
            DpmRunnable action) {
        final DpmMockContext serviceContext = mMockContext;

        // Save calling UID and PID before clearing identity so we don't run into aliasing issues.
        final int callingUid = caller.binder.callingUid;
        final int callingPid = caller.binder.callingPid;

        final long origId = serviceContext.binder.clearCallingIdentity();
        try {
            serviceContext.binder.callingUid = caller.binder.callingUid;
            serviceContext.binder.callingPid = caller.binder.callingPid;
            serviceContext.binder.callingPermissions.put(caller.binder.callingUid,
                    caller.permissions);
            serviceContext.binder.callingUid = callingUid;
            serviceContext.binder.callingPid = callingPid;
            serviceContext.binder.callingPermissions.put(callingUid, caller.permissions);
            action.run(new DevicePolicyManagerTestable(caller, dpms));
        } catch (Exception e) {
            throw new AssertionError(e);
@@ -99,7 +104,7 @@ public abstract class DpmTestBase extends AndroidTestCase {
        }
    }

    protected void markPackageAsInstalled(String packageName, ApplicationInfo ai, int userId)
    private void markPackageAsInstalled(String packageName, ApplicationInfo ai, int userId)
            throws Exception {
        final PackageInfo pi = DpmTestUtils.cloneParcelable(
                mRealTestContext.getPackageManager().getPackageInfo(
@@ -110,12 +115,12 @@ public abstract class DpmTestBase extends AndroidTestCase {
            pi.applicationInfo = ai;
        }

        doReturn(pi).when(mMockContext.ipackageManager).getPackageInfo(
        doReturn(pi).when(mServices.ipackageManager).getPackageInfo(
                eq(packageName),
                eq(0),
                eq(userId));

        doReturn(ai.uid).when(mMockContext.packageManager).getPackageUidAsUser(
        doReturn(ai.uid).when(mServices.packageManager).getPackageUidAsUser(
                eq(packageName),
                eq(userId));
    }
@@ -151,7 +156,7 @@ public abstract class DpmTestBase extends AndroidTestCase {
     * @param copyFromAdmin package information for {@code admin} will be built based on this
     *    component's information.
     */
    protected void setUpPackageManagerForFakeAdmin(ComponentName admin, int packageUid,
    private void setUpPackageManagerForFakeAdmin(ComponentName admin, int packageUid,
            Integer enabledSetting, Integer appTargetSdk, ComponentName copyFromAdmin)
            throws Exception {

@@ -171,7 +176,7 @@ public abstract class DpmTestBase extends AndroidTestCase {
        ai.packageName = admin.getPackageName();
        ai.name = admin.getClassName();

        doReturn(ai).when(mMockContext.ipackageManager).getApplicationInfo(
        doReturn(ai).when(mServices.ipackageManager).getApplicationInfo(
                eq(admin.getPackageName()),
                anyInt(),
                eq(UserHandle.getUserId(packageUid)));
@@ -198,12 +203,12 @@ public abstract class DpmTestBase extends AndroidTestCase {

        // Note we don't set up queryBroadcastReceivers.  We don't use it in DPMS.

        doReturn(aci).when(mMockContext.ipackageManager).getReceiverInfo(
        doReturn(aci).when(mServices.ipackageManager).getReceiverInfo(
                eq(admin),
                anyInt(),
                eq(UserHandle.getUserId(packageUid)));

        doReturn(new String[] {admin.getPackageName()}).when(mMockContext.ipackageManager)
        doReturn(new String[] {admin.getPackageName()}).when(mServices.ipackageManager)
            .getPackagesForUid(eq(packageUid));
        // Set up getPackageInfo().
        markPackageAsInstalled(admin.getPackageName(), ai, UserHandle.getUserId(packageUid));
Loading