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

Commit 631e128d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Enable the tests in DPM for testing ConnectivityManager API in 5G...

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

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13960787

Change-Id: I23706e176b11ebe4cda1bc3d9964b605f78600da
parents 52c50e99 64449bbb
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