diff options
author | Sarah Chin <sarahchin@google.com> | 2020-06-12 13:56:33 -0700 |
---|---|---|
committer | Sarah Chin <sarahchin@google.com> | 2020-06-12 13:56:36 -0700 |
commit | d102c20b247afbe910ca6a3c5c18349017e8a188 (patch) | |
tree | f46e7ac0c0ff733bffbc91706ab5e3079420b7ab /tests/telephonytests | |
parent | 73e9d62d38c7f2c3b094d34a69eceb055985d9fd (diff) | |
download | telephony-d102c20b247afbe910ca6a3c5c18349017e8a188.tar.gz |
Update TelephonyDisplayInfo on preferred network type changed
Test: atest NetworkTypeControllerTest
Bug: 157859849
Change-Id: Id7f2b276b7886f6b23d7e6724e6a161555fc7dcc
Diffstat (limited to 'tests/telephonytests')
-rw-r--r-- | tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java | 57 |
1 files changed, 56 insertions, 1 deletions
diff --git a/tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java b/tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java index d4af1b6498..b34821e702 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/NetworkTypeControllerTest.java @@ -54,6 +54,9 @@ public class NetworkTypeControllerTest extends TelephonyTest { private static final int EVENT_CARRIER_CONFIG_CHANGED = 7; private static final int EVENT_PRIMARY_TIMER_EXPIRED = 8; private static final int EVENT_SECONDARY_TIMER_EXPIRED = 9; + private static final int EVENT_RADIO_OFF_OR_UNAVAILABLE = 10; + private static final int EVENT_DATA_CONNECTION_STATE_CHANGED = 11; + private static final int EVENT_PREFERRED_NETWORK_MODE_CHANGED = 12; private NetworkTypeController mNetworkTypeController; private PersistableBundle mBundle; @@ -88,7 +91,7 @@ public class NetworkTypeControllerTest extends TelephonyTest { broadcastCarrierConfigs(); replaceInstance(Handler.class, "mLooper", mDisplayInfoController, Looper.myLooper()); - doReturn((int) TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA).when(mPhone) + doReturn(TelephonyManager.NETWORK_MODE_NR_LTE_CDMA_EVDO_GSM_WCDMA).when(mPhone) .getCachedPreferredNetworkType(); mNetworkTypeController = new NetworkTypeController(mPhone, mDisplayInfoController); } @@ -317,6 +320,58 @@ public class NetworkTypeControllerTest extends TelephonyTest { } @Test + public void testEventRadioOffOrUnavailable() throws Exception { + testTransitionToCurrentStateNrConnected(); + assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA, + mNetworkTypeController.getOverrideNetworkType()); + + doReturn(NetworkRegistrationInfo.NR_STATE_NONE).when(mServiceState).getNrState(); + doReturn(TelephonyManager.NETWORK_TYPE_UNKNOWN).when(mServiceState).getDataNetworkType(); + + mNetworkTypeController.sendMessage(EVENT_RADIO_OFF_OR_UNAVAILABLE); + processAllMessages(); + assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE, + mNetworkTypeController.getOverrideNetworkType()); + } + + @Test + public void testEventDataConnectionStateChanged() throws Exception { + testTransitionToCurrentStateNrConnected(); + assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA, + mNetworkTypeController.getOverrideNetworkType()); + + // TelephonyDisplayInfo can't be mocked since it's final, so create a new one for testing + TelephonyDisplayInfo telephonyDisplayInfo = new TelephonyDisplayInfo( + TelephonyManager.NETWORK_TYPE_UNKNOWN, + TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE); + + doReturn(NetworkRegistrationInfo.NR_STATE_NONE).when(mServiceState).getNrState(); + doReturn(telephonyDisplayInfo).when(mDisplayInfoController).getTelephonyDisplayInfo(); + doReturn(TelephonyManager.NETWORK_TYPE_HSPAP).when(mServiceState).getDataNetworkType(); + + mNetworkTypeController.sendMessage(EVENT_DATA_CONNECTION_STATE_CHANGED); + processAllMessages(); + assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE, + mNetworkTypeController.getOverrideNetworkType()); + } + + @Test + public void testEventPreferredNetworkModeChanged() throws Exception { + testTransitionToCurrentStateNrConnected(); + assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA, + mNetworkTypeController.getOverrideNetworkType()); + + // remove NR from preferred network types + doReturn(TelephonyManager.NETWORK_MODE_LTE_CDMA_EVDO_GSM_WCDMA).when(mPhone) + .getCachedPreferredNetworkType(); + + mNetworkTypeController.sendMessage(EVENT_PREFERRED_NETWORK_MODE_CHANGED); + processAllMessages(); + assertEquals(TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE, + mNetworkTypeController.getOverrideNetworkType()); + } + + @Test public void testPrimaryTimerExpire() throws Exception { doReturn(NetworkRegistrationInfo.NR_STATE_CONNECTED).when(mServiceState).getNrState(); mBundle.putString(CarrierConfigManager.KEY_5G_ICON_DISPLAY_GRACE_PERIOD_STRING, |