diff options
author | Daisuke Niwa <daisuke.niwa@sony.com> | 2018-06-27 13:42:10 +0900 |
---|---|---|
committer | Daichi Ueura <daichi.ueura@sony.com> | 2018-09-11 10:42:40 +0900 |
commit | 8c414b5cc1f930424497bc26e51837070f5af9a8 (patch) | |
tree | fbe3f21f0aa91ee34be982d6b853bd2050617598 /tests | |
parent | 9666cb415d7d44a86cfb0b7ec1df6e6317fe3259 (diff) |
Update SIM status when SIM is removed
The device tries to connect to AP continuously even though
SIM has been already removed. This is because SIM status is
not updated when SIM is removed.
Bug: 113559708
Test: Manual
Test: run unit tests
Change-Id: I1bd0ab918fec1fa2dfc6b21a6e3ffd919e4741d5
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java index a4bc61aa1..4a7ad50d6 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java @@ -3563,6 +3563,90 @@ public class WifiConfigManagerTest { assertEquals(newMac, retrievedConfig.getRandomizedMacAddress()); } + /** + * Verifies that the method resetSimNetworks updates SIM presence status and SIM configs. + */ + @Test + public void testResetSimNetworks() { + String expectedIdentity = "13214561234567890@wlan.mnc456.mcc321.3gppnetwork.org"; + when(mTelephonyManager.getSubscriberId()).thenReturn("3214561234567890"); + when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY); + when(mTelephonyManager.getSimOperator()).thenReturn("321456"); + when(mTelephonyManager.getCarrierInfoForImsiEncryption(anyInt())).thenReturn(null); + + WifiConfiguration network = WifiConfigurationTestUtil.createEapNetwork(); + WifiConfiguration simNetwork = WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.SIM, WifiEnterpriseConfig.Phase2.NONE); + WifiConfiguration peapSimNetwork = WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.PEAP, WifiEnterpriseConfig.Phase2.SIM); + network.enterpriseConfig.setIdentity("identity1"); + network.enterpriseConfig.setAnonymousIdentity("anonymous_identity1"); + simNetwork.enterpriseConfig.setIdentity("identity2"); + simNetwork.enterpriseConfig.setAnonymousIdentity("anonymous_identity2"); + peapSimNetwork.enterpriseConfig.setIdentity("identity3"); + peapSimNetwork.enterpriseConfig.setAnonymousIdentity("anonymous_identity3"); + verifyAddNetworkToWifiConfigManager(network); + verifyAddNetworkToWifiConfigManager(simNetwork); + verifyAddNetworkToWifiConfigManager(peapSimNetwork); + + // Verify SIM is not present initially. + assertFalse(mWifiConfigManager.isSimPresent()); + + // Call resetSimNetworks with true(SIM is present). + mWifiConfigManager.resetSimNetworks(true); + + // Verify SIM is present, SIM configs are reset and non-SIM configs are not changed. + assertTrue(mWifiConfigManager.isSimPresent()); + WifiConfigurationTestUtil.assertConfigurationEqualForConfigManagerAddOrUpdate( + network, + mWifiConfigManager.getConfiguredNetworkWithPassword(network.networkId)); + WifiConfiguration retrievedSimNetwork = + mWifiConfigManager.getConfiguredNetwork(simNetwork.networkId); + assertEquals(expectedIdentity, retrievedSimNetwork.enterpriseConfig.getIdentity()); + assertTrue(retrievedSimNetwork.enterpriseConfig.getAnonymousIdentity().isEmpty()); + WifiConfiguration retrievedPeapSimNetwork = + mWifiConfigManager.getConfiguredNetwork(peapSimNetwork.networkId); + assertEquals(expectedIdentity, retrievedPeapSimNetwork.enterpriseConfig.getIdentity()); + assertFalse(retrievedPeapSimNetwork.enterpriseConfig.getAnonymousIdentity().isEmpty()); + + // Call resetSimNetworks with false(SIM is not present). + when(mTelephonyManager.getSubscriberId()).thenReturn("3214561234567891"); + retrievedSimNetwork.enterpriseConfig.setAnonymousIdentity("anonymous_identity22"); + verifyUpdateNetworkToWifiConfigManagerWithoutIpChange(retrievedSimNetwork); + mWifiConfigManager.resetSimNetworks(false); + + // Verify SIM is not present and all configs are not changed. + assertFalse(mWifiConfigManager.isSimPresent()); + WifiConfigurationTestUtil.assertConfigurationEqualForConfigManagerAddOrUpdate( + network, + mWifiConfigManager.getConfiguredNetworkWithPassword(network.networkId)); + WifiConfigurationTestUtil.assertConfigurationEqualForConfigManagerAddOrUpdate( + retrievedSimNetwork, + mWifiConfigManager.getConfiguredNetworkWithPassword(simNetwork.networkId)); + WifiConfigurationTestUtil.assertConfigurationEqualForConfigManagerAddOrUpdate( + retrievedPeapSimNetwork, + mWifiConfigManager.getConfiguredNetworkWithPassword(peapSimNetwork.networkId)); + } + + /** + * Verifies that the method resetSimNetworks updates SIM presence status if + * getSimIdentity returns null. + */ + @Test + public void testResetSimNetworksWithNullIdentity() { + WifiConfiguration simNetwork = WifiConfigurationTestUtil.createEapNetwork( + WifiEnterpriseConfig.Eap.SIM, WifiEnterpriseConfig.Phase2.NONE); + verifyAddNetworkToWifiConfigManager(simNetwork); + + assertFalse(mWifiConfigManager.isSimPresent()); + + mWifiConfigManager.resetSimNetworks(true); + assertTrue(mWifiConfigManager.isSimPresent()); + + mWifiConfigManager.resetSimNetworks(false); + assertFalse(mWifiConfigManager.isSimPresent()); + } + private NetworkUpdateResult verifyAddOrUpdateNetworkWithProxySettingsAndPermissions( boolean withNetworkSettings, boolean withProfileOwnerPolicy, |