Merge "[Wi-Fi] Can't change EAP method for a saved enterprise Wi-Fi network"

This commit is contained in:
TreeHugger Robot
2019-09-05 10:09:32 +00:00
committed by Android (Google) Code Review
2 changed files with 24 additions and 1 deletions

View File

@@ -1009,7 +1009,10 @@ public class WifiConfigController implements TextWatcher,
} }
mView.findViewById(R.id.eap).setVisibility(View.VISIBLE); mView.findViewById(R.id.eap).setVisibility(View.VISIBLE);
// TODO (b/140541213): Maybe we can remove initiateEnterpriseNetworkUi by moving code block
boolean initiateEnterpriseNetworkUi = false;
if (mEapMethodSpinner == null) { if (mEapMethodSpinner == null) {
initiateEnterpriseNetworkUi = true;
mEapMethodSpinner = (Spinner) mView.findViewById(R.id.method); mEapMethodSpinner = (Spinner) mView.findViewById(R.id.method);
mEapMethodSpinner.setOnItemSelectedListener(this); mEapMethodSpinner.setOnItemSelectedListener(this);
mPhase2Spinner = (Spinner) mView.findViewById(R.id.phase2); mPhase2Spinner = (Spinner) mView.findViewById(R.id.phase2);
@@ -1066,7 +1069,7 @@ public class WifiConfigController implements TextWatcher,
} }
// Modifying an existing network // Modifying an existing network
if (mAccessPoint != null && mAccessPoint.isSaved()) { if (initiateEnterpriseNetworkUi && mAccessPoint != null && mAccessPoint.isSaved()) {
WifiEnterpriseConfig enterpriseConfig = mAccessPoint.getConfig().enterpriseConfig; WifiEnterpriseConfig enterpriseConfig = mAccessPoint.getConfig().enterpriseConfig;
int eapMethod = enterpriseConfig.getEapMethod(); int eapMethod = enterpriseConfig.getEapMethod();
int phase2Method = enterpriseConfig.getPhase2Method(); int phase2Method = enterpriseConfig.getPhase2Method();

View File

@@ -29,6 +29,8 @@ import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiEnterpriseConfig;
import android.net.wifi.WifiEnterpriseConfig.Eap;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.os.ServiceSpecificException; import android.os.ServiceSpecificException;
import android.security.KeyStore; import android.security.KeyStore;
@@ -526,4 +528,22 @@ public class WifiConfigControllerTest {
assertThat(shadowImm.isSoftInputVisible()).isFalse(); assertThat(shadowImm.isSoftInputVisible()).isFalse();
} }
@Test
public void selectEapMethod_savedAccessPoint_shouldGetCorrectPosition() {
when(mAccessPoint.isSaved()).thenReturn(true);
when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_EAP);
final WifiConfiguration mockWifiConfig = mock(WifiConfiguration.class);
final WifiEnterpriseConfig mockWifiEnterpriseConfig = mock(WifiEnterpriseConfig.class);
when(mockWifiEnterpriseConfig.getEapMethod()).thenReturn(Eap.PEAP);
mockWifiConfig.enterpriseConfig = mockWifiEnterpriseConfig ;
when(mAccessPoint.getConfig()).thenReturn(mockWifiConfig);
mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
WifiConfigUiBase.MODE_MODIFY);
final Spinner eapMethodSpinner = mView.findViewById(R.id.method);
eapMethodSpinner.setSelection(Eap.TLS);
assertThat(eapMethodSpinner.getSelectedItemPosition()).isEqualTo(Eap.TLS);
}
} }