Merge "Check target transport type for meterness change" am: ac551dff33

Change-Id: Ie9e3f1c02c9cc6b51c423154561150768614ab44
This commit is contained in:
Chiachang Wang
2020-04-22 06:04:56 +00:00
committed by Automerger Merge Worker

View File

@@ -639,11 +639,14 @@ public class ConnectivityManagerTest extends AndroidTestCase {
} }
} }
private void waitForActiveNetworkMetered(boolean requestedMeteredness) throws Exception { private void waitForActiveNetworkMetered(int targetTransportType, boolean requestedMeteredness)
throws Exception {
final CountDownLatch latch = new CountDownLatch(1); final CountDownLatch latch = new CountDownLatch(1);
final NetworkCallback networkCallback = new NetworkCallback() { final NetworkCallback networkCallback = new NetworkCallback() {
@Override @Override
public void onCapabilitiesChanged(Network network, NetworkCapabilities nc) { public void onCapabilitiesChanged(Network network, NetworkCapabilities nc) {
if (!nc.hasTransport(targetTransportType)) return;
final boolean metered = !nc.hasCapability(NET_CAPABILITY_NOT_METERED); final boolean metered = !nc.hasCapability(NET_CAPABILITY_NOT_METERED);
if (metered == requestedMeteredness) { if (metered == requestedMeteredness) {
latch.countDown(); latch.countDown();
@@ -720,10 +723,10 @@ public class ConnectivityManagerTest extends AndroidTestCase {
Settings.Global.putString(resolver, NETWORK_METERED_MULTIPATH_PREFERENCE, Settings.Global.putString(resolver, NETWORK_METERED_MULTIPATH_PREFERENCE,
Integer.toString(newMeteredPreference)); Integer.toString(newMeteredPreference));
setWifiMeteredStatus(ssid, "true"); setWifiMeteredStatus(ssid, "true");
waitForActiveNetworkMetered(true); waitForActiveNetworkMetered(TRANSPORT_WIFI, true);
// Wifi meterness changes from unmetered to metered will disconnect and reconnect since // Wifi meterness changes from unmetered to metered will disconnect and reconnect since
// R. // R.
final Network network = mCm.getActiveNetwork(); final Network network = ensureWifiConnected();
assertEquals(ssid, unquoteSSID(mWifiManager.getConnectionInfo().getSSID())); assertEquals(ssid, unquoteSSID(mWifiManager.getConnectionInfo().getSSID()));
assertEquals(mCm.getNetworkCapabilities(network).hasCapability( assertEquals(mCm.getNetworkCapabilities(network).hasCapability(
NET_CAPABILITY_NOT_METERED), false); NET_CAPABILITY_NOT_METERED), false);
@@ -741,7 +744,7 @@ public class ConnectivityManagerTest extends AndroidTestCase {
setWifiMeteredStatus(ssid, "false"); setWifiMeteredStatus(ssid, "false");
// No disconnect from unmetered to metered. // No disconnect from unmetered to metered.
waitForActiveNetworkMetered(false); waitForActiveNetworkMetered(TRANSPORT_WIFI, false);
assertEquals(mCm.getNetworkCapabilities(network).hasCapability( assertEquals(mCm.getNetworkCapabilities(network).hasCapability(
NET_CAPABILITY_NOT_METERED), true); NET_CAPABILITY_NOT_METERED), true);
assertMultipathPreferenceIsEventually(network, newMeteredPreference, assertMultipathPreferenceIsEventually(network, newMeteredPreference,