Enable the tests in DPM for testing ConnectivityManager API in 5G Slicing
Test: atest DevicePolicyManagerTest
Bug: 178655595
Change-Id: Ib58f27b661436c9c59f8681fb2e69a930b8444a8
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index ca56e9b..09ae8fc 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -102,8 +102,8 @@
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 @@
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 @@
}
}
- 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
diff --git a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
index 557d07c..7dbc65e 100644
--- a/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/devicepolicy/DevicePolicyManagerTest.java
@@ -92,6 +92,7 @@
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 @@
@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)
- //);
+ 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.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)
- //);
+ 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 @@
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