From 21ec1de1ff8bbc96c1ca42463e84c82f22de2c03 Mon Sep 17 00:00:00 2001 From: Chiachang Wang Date: Fri, 17 Apr 2020 17:26:51 +0800 Subject: [PATCH] Update network object when wifi meterness is changed The new wifi disconnect behavior is introduced. When wifi network is changed from unmetered to metered, the wifi network will disconnect and reconnect. Update the test to verify the same SSID wifi is connected and also update the target network to verfiy the metered preference. Bug: 153400606 Test: atest CtsNetTestCases:android.net.cts.ConnectivityManagerTest\ #testGetMultipathPreference Change-Id: Ic298d3d85d8c6b77c8df7614a945f2c22dcdff38 --- .../net/src/android/net/cts/ConnectivityManagerTest.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java index fa7e1381b3..3a52ee60a3 100644 --- a/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java +++ b/tests/cts/net/src/android/net/cts/ConnectivityManagerTest.java @@ -709,7 +709,7 @@ public class ConnectivityManagerTest extends AndroidTestCase { @AppModeFull(reason = "Cannot get WifiManager in instant app mode") public void testGetMultipathPreference() throws Exception { final ContentResolver resolver = mContext.getContentResolver(); - final Network network = ensureWifiConnected(); + ensureWifiConnected(); final String ssid = unquoteSSID(mWifiManager.getConnectionInfo().getSSID()); final String oldMeteredSetting = getWifiMeteredStatus(ssid); final String oldMeteredMultipathPreference = Settings.Global.getString( @@ -721,6 +721,10 @@ public class ConnectivityManagerTest extends AndroidTestCase { Integer.toString(newMeteredPreference)); setWifiMeteredStatus(ssid, "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( NET_CAPABILITY_NOT_METERED), false); assertMultipathPreferenceIsEventually(network, initialMeteredPreference, @@ -736,6 +740,7 @@ public class ConnectivityManagerTest extends AndroidTestCase { oldMeteredPreference, newMeteredPreference); setWifiMeteredStatus(ssid, "false"); + // No disconnect from unmetered to metered. waitForActiveNetworkMetered(false); assertEquals(mCm.getNetworkCapabilities(network).hasCapability( NET_CAPABILITY_NOT_METERED), true);