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

Commit cd008dff authored by Shuo Qian's avatar Shuo Qian Committed by Amit Mahajan
Browse files

Enable the tests in DPM for testing ConnectivityManager API in 5G Slicing

Test: atest DevicePolicyManagerTest
Bug: 178655595

Change-Id: Ib58f27b661436c9c59f8681fb2e69a930b8444a8
parent 720ebdc4
Loading
Loading
Loading
Loading
+14 −14
Original line number Diff line number Diff line
@@ -102,8 +102,8 @@ import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_AWARE;
import static android.content.pm.PackageManager.MATCH_DIRECT_BOOT_UNAWARE;
import static android.content.pm.PackageManager.MATCH_UNINSTALLED_PACKAGES;
// TODO (b/178655595) import static android.net.ConnectivityManager.USER_PREFERENCE_ENTERPRISE;
// TODO (b/178655595) import static android.net.ConnectivityManager.USER_PREFERENCE_SYSTEM_DEFAULT;
import static android.net.ConnectivityManager.PROFILE_NETWORK_PREFERENCE_DEFAULT;
import static android.net.ConnectivityManager.PROFILE_NETWORK_PREFERENCE_ENTERPRISE;
import static android.net.NetworkStack.PERMISSION_MAINLINE_NETWORK_STACK;
import static android.provider.Settings.Global.PRIVATE_DNS_MODE;
import static android.provider.Settings.Global.PRIVATE_DNS_SPECIFIER;
@@ -3089,13 +3089,13 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
        updatePermissionPolicyCache(userId);
        updateAdminCanGrantSensorsPermissionCache(userId);
        boolean enableEnterpriseNetworkSlice = true;
        boolean enableEnterpriseNetworkPreferenceEnabled = true;
        synchronized (getLockObject()) {
            ActiveAdmin owner = getDeviceOrProfileOwnerAdminLocked(userId);
            enableEnterpriseNetworkSlice = owner != null
            enableEnterpriseNetworkPreferenceEnabled = owner != null
                    ? owner.mEnterpriseNetworkPreferenceEnabled : true;
        }
        updateNetworkPreferenceForUser(userId, enableEnterpriseNetworkSlice);
        updateNetworkPreferenceForUser(userId, enableEnterpriseNetworkPreferenceEnabled);
        startOwnerService(userId, "start-user");
    }
@@ -17009,18 +17009,18 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
        }
    }
    private void updateNetworkPreferenceForUser(int userId, boolean enableEnterprise) {
    private void updateNetworkPreferenceForUser(int userId,
            boolean enableEnterpriseNetworkPreferenceEnabled) {
        if (!isManagedProfile(userId)) {
            return;
        }
        // TODO(b/178655595)
        // int networkPreference = enable ? ConnectivityManager.USER_PREFERENCE_ENTERPRISE :
        //        ConnectivityManager.USER_PREFERENCE_SYSTEM_DEFAULT;
        // mInjector.binderWithCleanCallingIdentity(() ->
        //         mInjector.getConnectivityManager().setNetworkPreferenceForUser(
        //                 UserHandle.of(userId),
        //                 networkPreference,
        //                 null /* executor */, null /* listener */));
        int networkPreference = enableEnterpriseNetworkPreferenceEnabled
                ? PROFILE_NETWORK_PREFERENCE_ENTERPRISE : PROFILE_NETWORK_PREFERENCE_DEFAULT;
        mInjector.binderWithCleanCallingIdentity(() ->
                mInjector.getConnectivityManager().setProfileNetworkPreference(
                        UserHandle.of(userId),
                        networkPreference,
                        null /* executor */, null /* listener */));
    }
    @Override
+39 −32
Original line number Diff line number Diff line
@@ -92,6 +92,7 @@ import android.content.pm.StringParceledListSlice;
import android.content.pm.UserInfo;
import android.graphics.Color;
import android.hardware.usb.UsbManager;
import android.net.ConnectivityManager;
import android.net.Uri;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
@@ -4017,23 +4018,27 @@ public class DevicePolicyManagerTest extends DpmTestBase {

    @Test
    public void testUpdateNetworkPreferenceOnStartOnStopUser() throws Exception {
        dpms.handleStartUser(CALLER_USER_HANDLE);
        // TODO(b/178655595)
        // verify(getServices().connectivityManager, times(1)).setNetworkPreferenceForUser(
        //         any(UserHandle.class),
        //         anyInt(),
        //         any(Executor.class),
        //         any(Runnable.class)
        //);

        dpms.handleStopUser(CALLER_USER_HANDLE);
        // TODO(b/178655595)
        // verify(getServices().connectivityManager, times(1)).setNetworkPreferenceForUser(
        //         any(UserHandle.class),
        //         eq(ConnectivityManager.USER_PREFERENCE_SYSTEM_DEFAULT),
        //         any(Executor.class),
        //         any(Runnable.class)
        //);
        final int managedProfileUserId = 15;
        final int managedProfileAdminUid = UserHandle.getUid(managedProfileUserId, 19436);
        addManagedProfile(admin1, managedProfileAdminUid, admin1);
        mContext.binder.callingUid = managedProfileAdminUid;
        mServiceContext.permissions.add(permission.INTERACT_ACROSS_USERS_FULL);

        dpms.handleStartUser(managedProfileUserId);
        verify(getServices().connectivityManager, times(1)).setProfileNetworkPreference(
                eq(UserHandle.of(managedProfileUserId)),
                anyInt(),
                any(),
                any()
        );

        dpms.handleStopUser(managedProfileUserId);
        verify(getServices().connectivityManager, times(1)).setProfileNetworkPreference(
                eq(UserHandle.of(managedProfileUserId)),
                eq(ConnectivityManager.PROFILE_NETWORK_PREFERENCE_DEFAULT),
                any(),
                any()
        );
    }

    @Test
@@ -4044,26 +4049,28 @@ public class DevicePolicyManagerTest extends DpmTestBase {
        assertExpectException(SecurityException.class, null,
                () -> dpm.isEnterpriseNetworkPreferenceEnabled());

        setupProfileOwner();
        final int managedProfileUserId = 15;
        final int managedProfileAdminUid = UserHandle.getUid(managedProfileUserId, 19436);
        addManagedProfile(admin1, managedProfileAdminUid, admin1);
        mContext.binder.callingUid = managedProfileAdminUid;

        dpm.setEnterpriseNetworkPreferenceEnabled(false);
        assertThat(dpm.isEnterpriseNetworkPreferenceEnabled()).isFalse();
        // TODO(b/178655595)
        // verify(getServices().connectivityManager, times(1)).setNetworkPreferenceForUser(
        //         any(UserHandle.class),
        //         eq(ConnectivityManager.USER_PREFERENCE_SYSTEM_DEFAULT),
        //         any(Executor.class),
        //         any(Runnable.class)
        //);
        verify(getServices().connectivityManager, times(1)).setProfileNetworkPreference(
                eq(UserHandle.of(managedProfileUserId)),
                eq(ConnectivityManager.PROFILE_NETWORK_PREFERENCE_DEFAULT),
                any(),
                any()
        );

        dpm.setEnterpriseNetworkPreferenceEnabled(true);
        assertThat(dpm.isEnterpriseNetworkPreferenceEnabled()).isTrue();
        // TODO(b/178655595)
        // verify(getServices().connectivityManager, times(1)).setNetworkPreferenceForUser(
        //         any(UserHandle.class),
        //         eq(ConnectivityManager.USER_PREFERENCE_ENTERPRISE),
        //         any(Executor.class),
        //         any(Runnable.class)
        //);
        verify(getServices().connectivityManager, times(1)).setProfileNetworkPreference(
                eq(UserHandle.of(managedProfileUserId)),
                eq(ConnectivityManager.PROFILE_NETWORK_PREFERENCE_ENTERPRISE),
                any(),
                any()
        );
    }

    @Test