Merge "Update network object when wifi meterness is changed"

This commit is contained in:
Chiachang Wang
2020-04-20 13:35:54 +00:00
committed by Gerrit Code Review

View File

@@ -709,7 +709,7 @@ public class ConnectivityManagerTest extends AndroidTestCase {
@AppModeFull(reason = "Cannot get WifiManager in instant app mode") @AppModeFull(reason = "Cannot get WifiManager in instant app mode")
public void testGetMultipathPreference() throws Exception { public void testGetMultipathPreference() throws Exception {
final ContentResolver resolver = mContext.getContentResolver(); final ContentResolver resolver = mContext.getContentResolver();
final Network network = ensureWifiConnected(); ensureWifiConnected();
final String ssid = unquoteSSID(mWifiManager.getConnectionInfo().getSSID()); final String ssid = unquoteSSID(mWifiManager.getConnectionInfo().getSSID());
final String oldMeteredSetting = getWifiMeteredStatus(ssid); final String oldMeteredSetting = getWifiMeteredStatus(ssid);
final String oldMeteredMultipathPreference = Settings.Global.getString( final String oldMeteredMultipathPreference = Settings.Global.getString(
@@ -721,6 +721,10 @@ public class ConnectivityManagerTest extends AndroidTestCase {
Integer.toString(newMeteredPreference)); Integer.toString(newMeteredPreference));
setWifiMeteredStatus(ssid, "true"); setWifiMeteredStatus(ssid, "true");
waitForActiveNetworkMetered(true); waitForActiveNetworkMetered(true);
// Wifi meterness changes from unmetered to metered will disconnect and reconnect since
// R.
final Network network = mCm.getActiveNetwork();
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);
assertMultipathPreferenceIsEventually(network, initialMeteredPreference, assertMultipathPreferenceIsEventually(network, initialMeteredPreference,
@@ -736,6 +740,7 @@ public class ConnectivityManagerTest extends AndroidTestCase {
oldMeteredPreference, newMeteredPreference); oldMeteredPreference, newMeteredPreference);
setWifiMeteredStatus(ssid, "false"); setWifiMeteredStatus(ssid, "false");
// No disconnect from unmetered to metered.
waitForActiveNetworkMetered(false); waitForActiveNetworkMetered(false);
assertEquals(mCm.getNetworkCapabilities(network).hasCapability( assertEquals(mCm.getNetworkCapabilities(network).hasCapability(
NET_CAPABILITY_NOT_METERED), true); NET_CAPABILITY_NOT_METERED), true);