[Wi-Fi] Support multi-SIM for SIM dependent EAP methods
Before this change, users are not able to choose SIM
card for SIM dependent EAP methods when a device supports
multi-SIM.
This change support to choose a SIM when adding an EAP
Wi-Fi network. And this change support to show the related
SIM information on Wi-Fi detail screen.
Bug: 142792009
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi.WifiConfigController2Test
make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.wifi.details2.WifiDetailPreferenceController2Test
Manually add an EAP Wi-Fi network of EAP-SIM type, observe the
value in Wi-Fi detail screen.
Change-Id: I2910931166dc6541897663857c46abcc1b3115fa
This commit is contained in:
@@ -53,10 +53,12 @@ import android.net.NetworkRequest;
|
||||
import android.net.RouteInfo;
|
||||
import android.net.Uri;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiEnterpriseConfig;
|
||||
import android.net.wifi.WifiInfo;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Handler;
|
||||
import android.provider.Settings;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.ImageView;
|
||||
@@ -175,6 +177,8 @@ public class WifiDetailPreferenceController2Test {
|
||||
@Mock
|
||||
private Preference mMockSsidPref;
|
||||
@Mock
|
||||
private Preference mMockEapSimSubscriptionPref;
|
||||
@Mock
|
||||
private Preference mMockMacAddressPref;
|
||||
@Mock
|
||||
private Preference mMockIpAddressPref;
|
||||
@@ -374,6 +378,8 @@ public class WifiDetailPreferenceController2Test {
|
||||
.thenReturn(mMockSecurityPref);
|
||||
when(mMockScreen.findPreference(WifiDetailPreferenceController2.KEY_SSID_PREF))
|
||||
.thenReturn(mMockSsidPref);
|
||||
when(mMockScreen.findPreference(WifiDetailPreferenceController2
|
||||
.KEY_EAP_SIM_SUBSCRIPTION_PREF)).thenReturn(mMockEapSimSubscriptionPref);
|
||||
when(mMockScreen.findPreference(WifiDetailPreferenceController2.KEY_MAC_ADDRESS_PREF))
|
||||
.thenReturn(mMockMacAddressPref);
|
||||
when(mMockScreen.findPreference(WifiDetailPreferenceController2.KEY_IP_ADDRESS_PREF))
|
||||
@@ -1582,6 +1588,82 @@ public class WifiDetailPreferenceController2Test {
|
||||
verify(mMockHeaderController).setSummary(expired);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void refreshEapSimSubscription_nonEapSecurity_invisibleEapSimSubscriptionPref() {
|
||||
setUpForDisconnectedNetwork();
|
||||
when(mMockWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_NONE);
|
||||
|
||||
displayAndResume();
|
||||
|
||||
verify(mMockEapSimSubscriptionPref, times(1)).setVisible(false);
|
||||
|
||||
when(mMockWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_OWE);
|
||||
|
||||
displayAndResume();
|
||||
|
||||
verify(mMockEapSimSubscriptionPref, times(2)).setVisible(false);
|
||||
|
||||
when(mMockWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_PSK);
|
||||
|
||||
displayAndResume();
|
||||
|
||||
verify(mMockEapSimSubscriptionPref, times(3)).setVisible(false);
|
||||
|
||||
when(mMockWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_SAE);
|
||||
|
||||
displayAndResume();
|
||||
|
||||
verify(mMockEapSimSubscriptionPref, times(4)).setVisible(false);
|
||||
verify(mMockEapSimSubscriptionPref, never()).setVisible(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void refreshEapSimSubscription_nonSimEapMethod_invisibleEapSimSubscriptionPref() {
|
||||
setUpForDisconnectedNetwork();
|
||||
when(mMockWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
|
||||
final WifiConfiguration mockWifiConfiguration = mock(WifiConfiguration.class);
|
||||
final WifiEnterpriseConfig mockWifiEnterpriseConfig = mock(WifiEnterpriseConfig.class);
|
||||
when(mockWifiEnterpriseConfig.isAuthenticationSimBased()).thenReturn(false);
|
||||
mockWifiConfiguration.enterpriseConfig = mockWifiEnterpriseConfig;
|
||||
when(mMockWifiEntry.getWifiConfiguration()).thenReturn(mockWifiConfiguration);
|
||||
|
||||
displayAndResume();
|
||||
|
||||
verify(mMockEapSimSubscriptionPref, times(1)).setVisible(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void refreshEapSimSubscription_simEapMethod_visibleEapSimSubscriptionPref() {
|
||||
setUpForDisconnectedNetwork();
|
||||
when(mMockWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
|
||||
final WifiConfiguration mockWifiConfiguration = mock(WifiConfiguration.class);
|
||||
final WifiEnterpriseConfig mockWifiEnterpriseConfig = mock(WifiEnterpriseConfig.class);
|
||||
when(mockWifiEnterpriseConfig.isAuthenticationSimBased()).thenReturn(true);
|
||||
mockWifiConfiguration.enterpriseConfig = mockWifiEnterpriseConfig;
|
||||
when(mMockWifiEntry.getWifiConfiguration()).thenReturn(mockWifiConfiguration);
|
||||
|
||||
displayAndResume();
|
||||
|
||||
verify(mMockEapSimSubscriptionPref).setVisible(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void refreshEapSimSubscription_unknownCarrierId_noSimEapSimSubscriptionPref() {
|
||||
setUpForDisconnectedNetwork();
|
||||
when(mMockWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
|
||||
final WifiConfiguration mockWifiConfiguration = mock(WifiConfiguration.class);
|
||||
mockWifiConfiguration.carrierId = TelephonyManager.UNKNOWN_CARRIER_ID;
|
||||
final WifiEnterpriseConfig mockWifiEnterpriseConfig = mock(WifiEnterpriseConfig.class);
|
||||
when(mockWifiEnterpriseConfig.isAuthenticationSimBased()).thenReturn(true);
|
||||
mockWifiConfiguration.enterpriseConfig = mockWifiEnterpriseConfig;
|
||||
when(mMockWifiEntry.getWifiConfiguration()).thenReturn(mockWifiConfiguration);
|
||||
|
||||
displayAndResume();
|
||||
|
||||
verify(mMockEapSimSubscriptionPref).setVisible(true);
|
||||
verify(mMockEapSimSubscriptionPref).setSummary(R.string.wifi_no_related_sim_card);
|
||||
}
|
||||
|
||||
private ActionButtonsPreference createMock() {
|
||||
final ActionButtonsPreference pref = mock(ActionButtonsPreference.class);
|
||||
when(pref.setButton1Text(anyInt())).thenReturn(pref);
|
||||
|
||||
Reference in New Issue
Block a user