diff --git a/tests/cts/hostside/app/src/com/android/cts/net/hostside/VpnTest.java b/tests/cts/hostside/app/src/com/android/cts/net/hostside/VpnTest.java index 00807b4fc4..311b3f0cb3 100755 --- a/tests/cts/hostside/app/src/com/android/cts/net/hostside/VpnTest.java +++ b/tests/cts/hostside/app/src/com/android/cts/net/hostside/VpnTest.java @@ -785,6 +785,15 @@ public class VpnTest { maybeExpectVpnTransportInfo(vpnNetwork); assertEquals(TYPE_VPN, mCM.getNetworkInfo(vpnNetwork).getType()); + if (SdkLevel.isAtLeastT()) { + runWithShellPermissionIdentity(() -> { + final NetworkCapabilities nc = mCM.getNetworkCapabilities(vpnNetwork); + assertNotNull(nc); + assertNotNull(nc.getUnderlyingNetworks()); + assertEquals(defaultNetwork, new ArrayList<>(nc.getUnderlyingNetworks()).get(0)); + }, NETWORK_SETTINGS); + } + if (SdkLevel.isAtLeastS()) { // Check that system default network callback has not seen any network changes, even // though the app's default network changed. Also check that otherUidCallback saw no @@ -1017,6 +1026,15 @@ public class VpnTest { assertTrue(mCM.isActiveNetworkMetered()); maybeExpectVpnTransportInfo(mCM.getActiveNetwork()); + + if (SdkLevel.isAtLeastT()) { + runWithShellPermissionIdentity(() -> { + final NetworkCapabilities nc = mCM.getNetworkCapabilities(mNetwork); + assertNotNull(nc); + assertNotNull(nc.getUnderlyingNetworks()); + assertEquals(underlyingNetworks, new ArrayList<>(nc.getUnderlyingNetworks())); + }, NETWORK_SETTINGS); + } } @Test @@ -1076,6 +1094,18 @@ public class VpnTest { assertEquals(isNetworkMetered(mNetwork), mCM.isActiveNetworkMetered()); maybeExpectVpnTransportInfo(mCM.getActiveNetwork()); + + if (SdkLevel.isAtLeastT()) { + final Network vpnNetwork = mCM.getActiveNetwork(); + assertNotEqual(underlyingNetwork, vpnNetwork); + runWithShellPermissionIdentity(() -> { + final NetworkCapabilities nc = mCM.getNetworkCapabilities(vpnNetwork); + assertNotNull(nc); + assertNotNull(nc.getUnderlyingNetworks()); + final List underlying = nc.getUnderlyingNetworks(); + assertEquals(underlyingNetwork, underlying.get(0)); + }, NETWORK_SETTINGS); + } } @Test @@ -1131,6 +1161,18 @@ public class VpnTest { assertTrue(mCM.isActiveNetworkMetered()); maybeExpectVpnTransportInfo(mCM.getActiveNetwork()); + + if (SdkLevel.isAtLeastT()) { + final Network vpnNetwork = mCM.getActiveNetwork(); + assertNotEqual(underlyingNetwork, vpnNetwork); + runWithShellPermissionIdentity(() -> { + final NetworkCapabilities nc = mCM.getNetworkCapabilities(vpnNetwork); + assertNotNull(nc); + assertNotNull(nc.getUnderlyingNetworks()); + final List underlying = nc.getUnderlyingNetworks(); + assertEquals(underlyingNetwork, underlying.get(0)); + }, NETWORK_SETTINGS); + } } @Test