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

Commit 64449bbb authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Enable the tests in DPM for testing ConnectivityManager API in 5G Slicing" into sc-dev

parents 16d5f62a cd008dff
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