Add support for Multiple enterprise slice

Bug: 194332512
Test: unit test
CTS-Coverage-Bug: 211133973
Change-Id: Ie8be08a7cfa9155168d1da146d02fd1643248bdc
This commit is contained in:
Sooraj Sasindran 2022-01-21 13:37:08 -08:00
commit f4a58dcd45

View file

@ -23,11 +23,6 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL;
import static android.net.NetworkCapabilities.NET_CAPABILITY_CBS;
import static android.net.NetworkCapabilities.NET_CAPABILITY_EIMS;
import static android.net.NetworkCapabilities.NET_CAPABILITY_ENTERPRISE;
import static android.net.NetworkCapabilities.NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_1;
import static android.net.NetworkCapabilities.NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_2;
import static android.net.NetworkCapabilities.NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_3;
import static android.net.NetworkCapabilities.NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_4;
import static android.net.NetworkCapabilities.NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_5;
import static android.net.NetworkCapabilities.NET_CAPABILITY_FOREGROUND;
import static android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET;
import static android.net.NetworkCapabilities.NET_CAPABILITY_MMS;
@ -42,6 +37,11 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVIT
import static android.net.NetworkCapabilities.NET_CAPABILITY_TRUSTED;
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
import static android.net.NetworkCapabilities.NET_CAPABILITY_WIFI_P2P;
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_1;
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_2;
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_3;
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_4;
import static android.net.NetworkCapabilities.NET_ENTERPRISE_ID_5;
import static android.net.NetworkCapabilities.REDACT_FOR_ACCESS_FINE_LOCATION;
import static android.net.NetworkCapabilities.REDACT_FOR_LOCAL_MAC_ADDRESS;
import static android.net.NetworkCapabilities.REDACT_FOR_NETWORK_SETTINGS;
@ -790,78 +790,79 @@ public class NetworkCapabilitiesTest {
}
@Test @IgnoreUpTo(SC_V2) // TODO: Use to Build.VERSION_CODES.SC_V2 when available
public void testEnterpriseCapabilitySubLevel() {
public void testEnterpriseId() {
final NetworkCapabilities nc1 = new NetworkCapabilities.Builder()
.addCapability(NET_CAPABILITY_ENTERPRISE)
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_1)
.addEnterpriseId(NET_ENTERPRISE_ID_1)
.build();
assertEquals(1, nc1.getEnterpriseCapabilitySubLevels().length);
assertEquals(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_1,
nc1.getEnterpriseCapabilitySubLevels()[0]);
assertEquals(1, nc1.getEnterpriseIds().length);
assertEquals(NET_ENTERPRISE_ID_1,
nc1.getEnterpriseIds()[0]);
final NetworkCapabilities nc2 = new NetworkCapabilities.Builder()
.addCapability(NET_CAPABILITY_ENTERPRISE)
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_1)
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_2)
.addEnterpriseId(NET_ENTERPRISE_ID_1)
.addEnterpriseId(NET_ENTERPRISE_ID_2)
.build();
assertEquals(2, nc2.getEnterpriseCapabilitySubLevels().length);
assertEquals(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_1,
nc2.getEnterpriseCapabilitySubLevels()[0]);
assertEquals(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_2,
nc2.getEnterpriseCapabilitySubLevels()[1]);
assertEquals(2, nc2.getEnterpriseIds().length);
assertEquals(NET_ENTERPRISE_ID_1,
nc2.getEnterpriseIds()[0]);
assertEquals(NET_ENTERPRISE_ID_2,
nc2.getEnterpriseIds()[1]);
final NetworkCapabilities nc3 = new NetworkCapabilities.Builder()
.addCapability(NET_CAPABILITY_ENTERPRISE)
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_1)
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_2)
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_3)
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_4)
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_5)
.addEnterpriseId(NET_ENTERPRISE_ID_1)
.addEnterpriseId(NET_ENTERPRISE_ID_2)
.addEnterpriseId(NET_ENTERPRISE_ID_3)
.addEnterpriseId(NET_ENTERPRISE_ID_4)
.addEnterpriseId(NET_ENTERPRISE_ID_5)
.build();
assertEquals(5, nc3.getEnterpriseCapabilitySubLevels().length);
assertEquals(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_1,
nc3.getEnterpriseCapabilitySubLevels()[0]);
assertEquals(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_2,
nc3.getEnterpriseCapabilitySubLevels()[1]);
assertEquals(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_3,
nc3.getEnterpriseCapabilitySubLevels()[2]);
assertEquals(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_4,
nc3.getEnterpriseCapabilitySubLevels()[3]);
assertEquals(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_5,
nc3.getEnterpriseCapabilitySubLevels()[4]);
assertEquals(5, nc3.getEnterpriseIds().length);
assertEquals(NET_ENTERPRISE_ID_1,
nc3.getEnterpriseIds()[0]);
assertEquals(NET_ENTERPRISE_ID_2,
nc3.getEnterpriseIds()[1]);
assertEquals(NET_ENTERPRISE_ID_3,
nc3.getEnterpriseIds()[2]);
assertEquals(NET_ENTERPRISE_ID_4,
nc3.getEnterpriseIds()[3]);
assertEquals(NET_ENTERPRISE_ID_5,
nc3.getEnterpriseIds()[4]);
final Class<IllegalArgumentException> illegalArgumentExceptionClass =
IllegalArgumentException.class;
assertThrows(illegalArgumentExceptionClass, () -> new NetworkCapabilities.Builder()
.addEnterpriseCapabilitySubLevel(6)
.addEnterpriseId(6)
.build());
assertThrows(illegalArgumentExceptionClass, () -> new NetworkCapabilities.Builder()
.removeEnterpriseCapabilitySubLevel(6)
.removeEnterpriseId(6)
.build());
final Class<IllegalStateException> illegalStateException =
IllegalStateException.class;
assertThrows(illegalStateException, () -> new NetworkCapabilities.Builder()
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_1)
.addEnterpriseId(NET_ENTERPRISE_ID_1)
.build());
final NetworkCapabilities nc4 = new NetworkCapabilities.Builder()
.addCapability(NET_CAPABILITY_ENTERPRISE)
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_1)
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_2)
.removeEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_1)
.removeEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_2)
.addEnterpriseId(NET_ENTERPRISE_ID_1)
.addEnterpriseId(NET_ENTERPRISE_ID_2)
.removeEnterpriseId(NET_ENTERPRISE_ID_1)
.removeEnterpriseId(NET_ENTERPRISE_ID_2)
.build();
assertEquals(0, nc4.getEnterpriseCapabilitySubLevels().length);
assertEquals(1, nc4.getEnterpriseIds().length);
assertTrue(nc4.hasEnterpriseId(NET_ENTERPRISE_ID_1));
final NetworkCapabilities nc5 = new NetworkCapabilities.Builder()
.addCapability(NET_CAPABILITY_CBS)
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_1)
.addEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_2)
.removeEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_1)
.removeEnterpriseCapabilitySubLevel(NET_CAPABILITY_ENTERPRISE_SUB_LEVEL_2)
.addEnterpriseId(NET_ENTERPRISE_ID_1)
.addEnterpriseId(NET_ENTERPRISE_ID_2)
.removeEnterpriseId(NET_ENTERPRISE_ID_1)
.removeEnterpriseId(NET_ENTERPRISE_ID_2)
.build();
assertTrue(nc4.satisfiedByNetworkCapabilities(nc1));
assertFalse(nc1.satisfiedByNetworkCapabilities(nc4));
assertTrue(nc1.satisfiedByNetworkCapabilities(nc4));
assertFalse(nc3.satisfiedByNetworkCapabilities(nc2));
assertTrue(nc2.satisfiedByNetworkCapabilities(nc3));