Merge "Resolve hidden connectivity methods dependency" into sc-dev

This commit is contained in:
Chiachang Wang
2021-04-12 00:37:09 +00:00
committed by Android (Google) Code Review
4 changed files with 51 additions and 32 deletions

View File

@@ -21,7 +21,6 @@ import static org.junit.Assert.assertEquals;
import android.app.Instrumentation;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.LinkProperties;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
@@ -128,8 +127,7 @@ public class ConnectivitySetupRule implements TestRule {
}
@Override
public void onAvailable(Network network, NetworkCapabilities networkCapabilities,
LinkProperties linkProperties, boolean blocked) {
public void onAvailable(Network network) {
checkActiveNetwork();
}

View File

@@ -20,6 +20,9 @@ import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import static org.mockito.Mockito.CALLS_REAL_METHODS;
import static org.mockito.Mockito.mock;
import android.util.Log;
import androidx.test.runner.AndroidJUnit4;
@@ -73,8 +76,9 @@ public class SntpClientTest {
@Before
public void setUp() throws Exception {
// NETID_UNSET allows the test to run, with a loopback server, even w/o external networking
mNetwork = new Network(ConnectivityManager.NETID_UNSET);
// A mock network has NETID_UNSET, which allows the test to run, with a loopback server,
// even w/o external networking.
mNetwork = mock(Network.class, CALLS_REAL_METHODS);
mServer = new SntpTestServer();
mClient = new SntpClient();
}

View File

@@ -39,6 +39,8 @@ import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.util.ArrayList;
import java.util.Arrays;
/**
@@ -53,8 +55,8 @@ public class IpConfigStoreTest {
ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
DataOutputStream outputStream = new DataOutputStream(byteStream);
IpConfiguration expectedConfig = new IpConfiguration(IpAssignment.DHCP,
ProxySettings.NONE, null, null);
final IpConfiguration expectedConfig =
newIpConfiguration(IpAssignment.DHCP, ProxySettings.NONE, null, null);
// Emulate writing to old format.
writeDhcpConfigV2(outputStream, KEY_CONFIG, expectedConfig);
@@ -78,18 +80,23 @@ public class IpConfigStoreTest {
final String DNS_IP_ADDR_1 = "1.2.3.4";
final String DNS_IP_ADDR_2 = "5.6.7.8";
StaticIpConfiguration staticIpConfiguration = new StaticIpConfiguration();
staticIpConfiguration.ipAddress = new LinkAddress(IP_ADDR_1);
staticIpConfiguration.dnsServers.add(InetAddresses.parseNumericAddress(DNS_IP_ADDR_1));
staticIpConfiguration.dnsServers.add(InetAddresses.parseNumericAddress(DNS_IP_ADDR_2));
final ArrayList<InetAddress> dnsServers = new ArrayList<>();
dnsServers.add(InetAddresses.parseNumericAddress(DNS_IP_ADDR_1));
dnsServers.add(InetAddresses.parseNumericAddress(DNS_IP_ADDR_2));
final StaticIpConfiguration staticIpConfiguration1 = new StaticIpConfiguration.Builder()
.setIpAddress(new LinkAddress(IP_ADDR_1))
.setDnsServers(dnsServers).build();
final StaticIpConfiguration staticIpConfiguration2 = new StaticIpConfiguration.Builder()
.setIpAddress(new LinkAddress(IP_ADDR_2))
.setDnsServers(dnsServers).build();
ProxyInfo proxyInfo =
ProxyInfo.buildDirectProxy("10.10.10.10", 88, Arrays.asList("host1", "host2"));
IpConfiguration expectedConfig1 = new IpConfiguration(IpAssignment.STATIC,
ProxySettings.STATIC, staticIpConfiguration, proxyInfo);
IpConfiguration expectedConfig2 = new IpConfiguration(expectedConfig1);
expectedConfig2.getStaticIpConfiguration().ipAddress = new LinkAddress(IP_ADDR_2);
IpConfiguration expectedConfig1 = newIpConfiguration(IpAssignment.STATIC,
ProxySettings.STATIC, staticIpConfiguration1, proxyInfo);
IpConfiguration expectedConfig2 = newIpConfiguration(IpAssignment.STATIC,
ProxySettings.STATIC, staticIpConfiguration2, proxyInfo);
ArrayMap<String, IpConfiguration> expectedNetworks = new ArrayMap<>();
expectedNetworks.put(IFACE_1, expectedConfig1);
@@ -107,14 +114,24 @@ public class IpConfigStoreTest {
assertEquals(expectedNetworks.get(IFACE_2), actualNetworks.get(IFACE_2));
}
private IpConfiguration newIpConfiguration(IpAssignment ipAssignment,
ProxySettings proxySettings, StaticIpConfiguration staticIpConfig, ProxyInfo info) {
final IpConfiguration config = new IpConfiguration();
config.setIpAssignment(ipAssignment);
config.setProxySettings(proxySettings);
config.setStaticIpConfiguration(staticIpConfig);
config.setHttpProxy(info);
return config;
}
// This is simplified snapshot of code that was used to store values in V2 format (key as int).
private static void writeDhcpConfigV2(DataOutputStream out, int configKey,
IpConfiguration config) throws IOException {
out.writeInt(2); // VERSION 2
switch (config.ipAssignment) {
switch (config.getIpAssignment()) {
case DHCP:
out.writeUTF("ipAssignment");
out.writeUTF(config.ipAssignment.toString());
out.writeUTF(config.getIpAssignment().toString());
break;
default:
fail("Not supported in test environment");

View File

@@ -87,6 +87,7 @@ import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.isA;
import static org.mockito.Mockito.CALLS_REAL_METHODS;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.clearInvocations;
@@ -226,7 +227,8 @@ public class NetworkPolicyManagerServiceTest {
private static final String TEST_SSID = "AndroidAP";
private static final String TEST_IMSI = "310210";
private static final int TEST_SUB_ID = 42;
private static final int TEST_NET_ID = 24;
private static final Network TEST_NETWORK = mock(Network.class, CALLS_REAL_METHODS);
private static NetworkTemplate sTemplateWifi = buildTemplateWifi(TEST_SSID);
private static NetworkTemplate sTemplateMobileAll = buildTemplateMobileAll(TEST_IMSI);
@@ -1637,7 +1639,7 @@ public class NetworkPolicyManagerServiceTest {
@Test
public void testOpportunisticQuota() throws Exception {
final Network net = new Network(TEST_NET_ID);
final Network net = TEST_NETWORK;
final NetworkPolicyManagerInternal internal = LocalServices
.getService(NetworkPolicyManagerInternal.class);
@@ -1759,11 +1761,10 @@ public class NetworkPolicyManagerServiceTest {
assertNotNull(callback);
expectNetworkStateSnapshot(true /* roaming */);
callback.onCapabilitiesChanged(
new Network(TEST_NET_ID),
buildNetworkCapabilities(TEST_SUB_ID, true /* roaming */));
TEST_NETWORK, buildNetworkCapabilities(TEST_SUB_ID, true /* roaming */));
assertEquals(0, internal.getSubscriptionOpportunisticQuota(
new Network(TEST_NET_ID), NetworkPolicyManagerInternal.QUOTA_TYPE_MULTIPATH));
TEST_NETWORK, NetworkPolicyManagerInternal.QUOTA_TYPE_MULTIPATH));
}
}
@@ -2013,14 +2014,14 @@ public class NetworkPolicyManagerServiceTest {
}
private NetworkCapabilities buildNetworkCapabilities(int subId, boolean roaming) {
final NetworkCapabilities nc = new NetworkCapabilities();
nc.addTransportType(TRANSPORT_CELLULAR);
final NetworkCapabilities.Builder builder = new NetworkCapabilities.Builder();
builder.addTransportType(TRANSPORT_CELLULAR);
if (!roaming) {
nc.addCapability(NET_CAPABILITY_NOT_ROAMING);
builder.addCapability(NET_CAPABILITY_NOT_ROAMING);
}
nc.setNetworkSpecifier(new TelephonyNetworkSpecifier.Builder()
builder.setNetworkSpecifier(new TelephonyNetworkSpecifier.Builder()
.setSubscriptionId(subId).build());
return nc;
return builder.build();
}
private NetworkPolicy buildDefaultFakeMobilePolicy() {
@@ -2061,10 +2062,9 @@ public class NetworkPolicyManagerServiceTest {
private static NetworkStateSnapshot buildWifi() {
final LinkProperties prop = new LinkProperties();
prop.setInterfaceName(TEST_IFACE);
final NetworkCapabilities networkCapabilities = new NetworkCapabilities();
networkCapabilities.addTransportType(TRANSPORT_WIFI);
networkCapabilities.setSSID(TEST_SSID);
return new NetworkStateSnapshot(new Network(TEST_NET_ID), networkCapabilities, prop,
final NetworkCapabilities networkCapabilities = new NetworkCapabilities.Builder()
.addTransportType(TRANSPORT_WIFI).setSsid(TEST_SSID).build();
return new NetworkStateSnapshot(TEST_NETWORK, networkCapabilities, prop,
null /*subscriberId*/, TYPE_WIFI);
}
@@ -2086,7 +2086,7 @@ public class NetworkPolicyManagerServiceTest {
when(mCarrierConfigManager.getConfigForSubId(eq(TEST_SUB_ID)))
.thenReturn(mCarrierConfig);
List<NetworkStateSnapshot> snapshots = List.of(new NetworkStateSnapshot(
new Network(TEST_NET_ID),
TEST_NETWORK,
buildNetworkCapabilities(TEST_SUB_ID, roaming),
buildLinkProperties(TEST_IFACE), TEST_IMSI, TYPE_MOBILE));
when(mConnManager.getAllNetworkStateSnapshot()).thenReturn(snapshots);