From f9db9eb1fd52975a6570fdd1bd346efb896b890c Mon Sep 17 00:00:00 2001 From: Jimmy Chen Date: Mon, 15 Jun 2020 15:58:11 +0800 Subject: wifi: remove LTE voice network check for wifi off deferring LTE can also be available with partial registration with voice network type while IMS is registered on IWLAN as voice network. The fact that IMS is registered over IWLAN would suffice the need of delaying the wifi off (or disconnect) Bug: 158821908 Test: atest FrameworksWifiTests Change-Id: Ifdb3fe2ac4d8fd5679e256cde767fe14d5c8944a --- .../android/server/wifi/ClientModeManagerTest.java | 118 ++++----------------- 1 file changed, 20 insertions(+), 98 deletions(-) (limited to 'tests') diff --git a/tests/wifitests/src/com/android/server/wifi/ClientModeManagerTest.java b/tests/wifitests/src/com/android/server/wifi/ClientModeManagerTest.java index 1102d1f26..92f3d9bac 100644 --- a/tests/wifitests/src/com/android/server/wifi/ClientModeManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/ClientModeManagerTest.java @@ -52,7 +52,6 @@ import android.telephony.AccessNetworkConstants; import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; -import android.telephony.TelephonyManager; import android.telephony.ims.ImsMmTelManager; import android.telephony.ims.RegistrationManager; import android.test.suitebuilder.annotation.SmallTest; @@ -96,7 +95,6 @@ public class ClientModeManagerTest extends WifiBaseTest { @Mock SarManager mSarManager; @Mock WakeupController mWakeupController; @Mock ClientModeImpl mClientModeImpl; - @Mock TelephonyManager mTelephonyManager; @Mock CarrierConfigManager mCarrierConfigManager; @Mock PersistableBundle mCarrierConfigBundle; @Mock ImsMmTelManager mImsMmTelManager; @@ -125,7 +123,6 @@ public class ClientModeManagerTest extends WifiBaseTest { * from the context. */ private void setUpSystemServiceForContext() { - when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); when(mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE)) .thenReturn(mCarrierConfigManager); when(mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE)) @@ -199,10 +196,6 @@ public class ClientModeManagerTest extends WifiBaseTest { when(mActiveSubscriptionInfo.getSubscriptionId()).thenReturn(TEST_ACTIVE_SUBSCRIPTION_ID); when(mSubscriptionManager.getActiveSubscriptionInfoList()) .thenReturn(mSubscriptionInfoList); - when(mTelephonyManager.createForSubscriptionId(eq(TEST_ACTIVE_SUBSCRIPTION_ID))) - .thenReturn(mTelephonyManager); - when(mTelephonyManager.getVoiceNetworkType()) - .thenReturn(TelephonyManager.NETWORK_TYPE_UNKNOWN); when(mCarrierConfigManager.getConfigForSubId(anyInt())).thenReturn(mCarrierConfigBundle); when(mCarrierConfigBundle .getInt(eq(CarrierConfigManager.Ims.KEY_WIFI_OFF_DEFERRING_TIME_MILLIS_INT))) @@ -604,7 +597,6 @@ public class ClientModeManagerTest extends WifiBaseTest { private void setUpVoWifiTest( boolean isWifiCallingAvailable, - int voiceNetworkType, int wifiOffDeferringTimeMs) { mCurrentImsRegistrationState = (isWifiCallingAvailable) ? RegistrationManager.REGISTRATION_STATE_REGISTERED @@ -613,8 +605,6 @@ public class ClientModeManagerTest extends WifiBaseTest { ? AccessNetworkConstants.TRANSPORT_TYPE_WLAN : AccessNetworkConstants.TRANSPORT_TYPE_WWAN; when(mImsMmTelManager.isAvailable(anyInt(), anyInt())).thenReturn(isWifiCallingAvailable); - when(mTelephonyManager.getVoiceNetworkType()) - .thenReturn(voiceNetworkType); when(mCarrierConfigBundle .getInt(eq(CarrierConfigManager.Ims.KEY_WIFI_OFF_DEFERRING_TIME_MILLIS_INT))) .thenReturn(wifiOffDeferringTimeMs); @@ -626,7 +616,6 @@ public class ClientModeManagerTest extends WifiBaseTest { @Test public void clientModeStopWithWifiOffDeferringTimeNoWifiCalling() throws Exception { setUpVoWifiTest(false, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); startClientInConnectModeAndVerifyEnabled(); @@ -652,7 +641,6 @@ public class ClientModeManagerTest extends WifiBaseTest { @Test public void clientModeStopWithWifiOffDeferringTimeAndImsOnWwan() throws Exception { setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); mCurrentImsConnectionType = AccessNetworkConstants.TRANSPORT_TYPE_WWAN; @@ -678,41 +666,11 @@ public class ClientModeManagerTest extends WifiBaseTest { } /** - * ClientMode stop properly with IMS deferring time, Wifi calling, and LTE. + * ClientMode stop properly with IMS deferring time, Wifi calling. */ @Test - public void clientModeStopWithWifiOffDeferringTimeWithWifiCallingAndLte() throws Exception { + public void clientModeStopWithWifiOffDeferringTimeWithWifiCalling() throws Exception { setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_LTE, - TEST_WIFI_OFF_DEFERRING_TIME_MS); - - startClientInConnectModeAndVerifyEnabled(); - reset(mContext, mListener); - setUpSystemServiceForContext(); - mClientModeManager.stop(); - mLooper.dispatchAll(); - verify(mListener).onStopped(); - - verify(mImsMmTelManager, never()).registerImsRegistrationCallback(any(), any()); - verify(mImsMmTelManager, never()).unregisterImsRegistrationCallback(any()); - verify(mWifiMetrics).noteWifiOff(eq(false), eq(false), anyInt()); - - verifyConnectModeNotificationsForCleanShutdown(WIFI_STATE_ENABLED); - - // on an explicit stop, we should not trigger the callback - verifyNoMoreInteractions(mListener); - } - - /** - * ClientMode stop properly with IMS deferring time and Wifi calling, but no LTE. - * - * IMS deregistration is done before reaching the timeout. - */ - @Test - public void clientModeStopWithWifiOffDeferringTimeAndWifiCallingNoLteOnImsUnregistered() - throws Exception { - setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); startClientInConnectModeAndVerifyEnabled(); @@ -751,15 +709,14 @@ public class ClientModeManagerTest extends WifiBaseTest { } /** - * ClientMode stop properly with IMS deferring time and Wifi calling, but no LTE. + * ClientMode stop properly with IMS deferring time and Wifi calling. * * IMS deregistration is done before reaching the timeout. */ @Test - public void clientModeStopWithWifiOffDeferringTimeAndWifiCallingNoLteOnImsRegistered() + public void clientModeStopWithWifiOffDeferringTimeAndWifiCallingOnImsRegistered() throws Exception { setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); startClientInConnectModeAndVerifyEnabled(); @@ -795,15 +752,14 @@ public class ClientModeManagerTest extends WifiBaseTest { } /** - * ClientMode stop properly with IMS deferring time and Wifi calling, but no LTE. + * ClientMode stop properly with IMS deferring time and Wifi calling. * * IMS deregistration is NOT done before reaching the timeout. */ @Test - public void clientModeStopWithWifiOffDeferringTimeAndWifiCallingNoLteTimedOut() + public void clientModeStopWithWifiOffDeferringTimeAndWifiCallingTimedOut() throws Exception { setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); startClientInConnectModeAndVerifyEnabled(); @@ -840,15 +796,14 @@ public class ClientModeManagerTest extends WifiBaseTest { } /** - * ClientMode stop properly with IMS deferring time and Wifi calling, but no LTE. + * ClientMode stop properly with IMS deferring time and Wifi calling. * * IMS deregistration is NOT done before reaching the timeout with multiple stop calls. */ @Test - public void clientModeStopWithWifiOffDeferringTimeAndWifiCallingNoLteTimedOutMultipleStop() + public void clientModeStopWithWifiOffDeferringTimeAndWifiCallingTimedOutMultipleStop() throws Exception { setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); startClientInConnectModeAndVerifyEnabled(); @@ -888,17 +843,16 @@ public class ClientModeManagerTest extends WifiBaseTest { } /** - * ClientMode does not stop with IMS deferring time and Wifi calling, but no LTE + * ClientMode does not stop with IMS deferring time and Wifi calling * when the target role is not ROLE_UNSPECIFIED. * * Simulate a user toggle wifi multiple times before doing wifi stop and stay at * ON position. */ @Test - public void clientModeNotStopWithWifiOffDeferringTimeAndWifiCallingNoLteTimedOut() + public void clientModeNotStopWithWifiOffDeferringTimeAndWifiCallingTimedOut() throws Exception { setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); startClientInConnectModeAndVerifyEnabled(); @@ -947,7 +901,6 @@ public class ClientModeManagerTest extends WifiBaseTest { @Test public void switchToScanOnlyModeWithWifiOffDeferringTimeNoWifiCalling() throws Exception { setUpVoWifiTest(false, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); startClientInConnectModeAndVerifyEnabled(); @@ -971,7 +924,6 @@ public class ClientModeManagerTest extends WifiBaseTest { @Test public void switchToScanOnlyModeWithWifiOffDeferringTimeAndImsOnWwan() throws Exception { setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); mCurrentImsConnectionType = AccessNetworkConstants.TRANSPORT_TYPE_WWAN; @@ -996,40 +948,14 @@ public class ClientModeManagerTest extends WifiBaseTest { } /** - * Switch to scan mode properly with IMS deferring time, Wifi calling, and LTE. - */ - @Test - public void - switchToScanOnlyModeWithWifiOffDeferringTimeAndWifiCallingAndLte() throws Exception { - setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_LTE, - TEST_WIFI_OFF_DEFERRING_TIME_MS); - - startClientInConnectModeAndVerifyEnabled(); - reset(mContext, mListener); - setUpSystemServiceForContext(); - when(mWifiNative.switchClientInterfaceToScanMode(any())) - .thenReturn(true); - - mClientModeManager.setRole(ActiveModeManager.ROLE_CLIENT_SCAN_ONLY); - mLooper.dispatchAll(); - - verify(mWifiNative).switchClientInterfaceToScanMode(TEST_INTERFACE_NAME); - verify(mImsMmTelManager, never()).registerImsRegistrationCallback(any(), any()); - verify(mImsMmTelManager, never()).unregisterImsRegistrationCallback(any()); - verify(mWifiMetrics).noteWifiOff(eq(false), eq(false), anyInt()); - } - - /** - * Switch to scan mode properly with IMS deferring time and Wifi calling, but no LTE. + * Switch to scan mode properly with IMS deferring time and Wifi calling. * * IMS deregistration is done before reaching the timeout. */ @Test - public void switchToScanOnlyModeWithWifiOffDeferringTimeAndWifiCallingNoLteOnImsUnregistered() + public void switchToScanOnlyModeWithWifiOffDeferringTimeAndWifiCallingOnImsUnregistered() throws Exception { setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); startClientInConnectModeAndVerifyEnabled(); @@ -1066,15 +992,14 @@ public class ClientModeManagerTest extends WifiBaseTest { } /** - * Switch to scan mode properly with IMS deferring time and Wifi calling, but no LTE. + * Switch to scan mode properly with IMS deferring time and Wifi calling. * * IMS deregistration is done before reaching the timeout. */ @Test - public void switchToScanOnlyModeWithWifiOffDeferringTimeAndWifiCallingNoLteOnImsRegistered() + public void switchToScanOnlyModeWithWifiOffDeferringTimeAndWifiCallingOnImsRegistered() throws Exception { setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); startClientInConnectModeAndVerifyEnabled(); @@ -1108,15 +1033,14 @@ public class ClientModeManagerTest extends WifiBaseTest { } /** - * Switch to scan mode properly with IMS deferring time and Wifi calling, but no LTE. + * Switch to scan mode properly with IMS deferring time and Wifi calling. * * IMS deregistration is NOT done before reaching the timeout. */ @Test - public void switchToScanOnlyModeWithWifiOffDeferringTimeAndWifiCallingNoLteTimedOut() + public void switchToScanOnlyModeWithWifiOffDeferringTimeAndWifiCallingTimedOut() throws Exception { setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); startClientInConnectModeAndVerifyEnabled(); @@ -1152,16 +1076,15 @@ public class ClientModeManagerTest extends WifiBaseTest { } /** - * Switch to scan mode properly with IMS deferring time and Wifi calling, but no LTE. + * Switch to scan mode properly with IMS deferring time and Wifi calling. * * IMS deregistration is NOT done before reaching the timeout with multiple stop calls. */ @Test public void - switchToScanOnlyModeWithWifiOffDeferringTimeAndWifiCallingNoLteTimedOutMultipleSwitch() + switchToScanOnlyModeWithWifiOffDeferringTimeAndWifiCallingTimedOutMultipleSwitch() throws Exception { setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); startClientInConnectModeAndVerifyEnabled(); @@ -1199,7 +1122,7 @@ public class ClientModeManagerTest extends WifiBaseTest { } /** - * Stay at connected mode with IMS deferring time and Wifi calling, but no LTE + * Stay at connected mode with IMS deferring time and Wifi calling * when the target state is not ROLE_CLIENT_SCAN_ONLY. * * Simulate a user toggle wifi multiple times before doing wifi stop and stay at @@ -1207,10 +1130,9 @@ public class ClientModeManagerTest extends WifiBaseTest { */ @Test public void - stayAtConnectedModeWithWifiOffDeferringTimeAndWifiCallingNoLteTimedOutMultipleSwitch() + stayAtConnectedModeWithWifiOffDeferringTimeAndWifiCallingTimedOutMultipleSwitch() throws Exception { setUpVoWifiTest(true, - TelephonyManager.NETWORK_TYPE_UNKNOWN, TEST_WIFI_OFF_DEFERRING_TIME_MS); startClientInConnectModeAndVerifyEnabled(); -- cgit v1.2.3