Merge "[Wi-Fi] Check if domain field is not empty when users choose a ca certificate"
This commit is contained in:
@@ -549,12 +549,11 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
// Disallow submit if the user has not selected a CA certificate for an EAP network
|
// Disallow submit if the user has not selected a CA certificate for an EAP network
|
||||||
// configuration.
|
// configuration.
|
||||||
enabled = false;
|
enabled = false;
|
||||||
}
|
} else if (!caCertSelection.equals(mDoNotValidateEapServerString)
|
||||||
if (caCertSelection.equals(mUseSystemCertsString)
|
|
||||||
&& mEapDomainView != null
|
&& mEapDomainView != null
|
||||||
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
||||||
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
||||||
// Disallow submit if the user chooses to use system certificates for EAP server
|
// Disallow submit if the user chooses to use a certificate for EAP server
|
||||||
// validation, but does not provide a domain.
|
// validation, but does not provide a domain.
|
||||||
enabled = false;
|
enabled = false;
|
||||||
}
|
}
|
||||||
@@ -590,14 +589,12 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
// Display warning if user chooses not to validate the EAP server with a
|
// Display warning if user chooses not to validate the EAP server with a
|
||||||
// user-supplied CA certificate in an EAP network configuration.
|
// user-supplied CA certificate in an EAP network configuration.
|
||||||
mView.findViewById(R.id.no_ca_cert_warning).setVisibility(View.VISIBLE);
|
mView.findViewById(R.id.no_ca_cert_warning).setVisibility(View.VISIBLE);
|
||||||
}
|
} else if (!caCertSelection.equals(mUnspecifiedCertString)
|
||||||
if (caCertSelection.equals(mUseSystemCertsString)
|
|
||||||
&& mEapDomainView != null
|
&& mEapDomainView != null
|
||||||
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
||||||
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
||||||
// Display warning if user chooses to use pre-installed public CA certificates
|
// Display warning if user chooses to use a certificate without restricting the
|
||||||
// without restricting the server domain that these certificates can be used to
|
// server domain that these certificates can be used to validate.
|
||||||
// validate.
|
|
||||||
mView.findViewById(R.id.no_domain_warning).setVisibility(View.VISIBLE);
|
mView.findViewById(R.id.no_domain_warning).setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1703,7 +1700,8 @@ public class WifiConfigController implements TextWatcher,
|
|||||||
mContext.getResources().getStringArray(contentStringArrayResId));
|
mContext.getResources().getStringArray(contentStringArrayResId));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ArrayAdapter<CharSequence> getSpinnerAdapter(
|
@VisibleForTesting
|
||||||
|
ArrayAdapter<CharSequence> getSpinnerAdapter(
|
||||||
String[] contentStringArray) {
|
String[] contentStringArray) {
|
||||||
ArrayAdapter<CharSequence> spinnerAdapter = new ArrayAdapter<>(mContext,
|
ArrayAdapter<CharSequence> spinnerAdapter = new ArrayAdapter<>(mContext,
|
||||||
android.R.layout.simple_spinner_item, contentStringArray);
|
android.R.layout.simple_spinner_item, contentStringArray);
|
||||||
|
@@ -518,12 +518,11 @@ public class WifiConfigController2 implements TextWatcher,
|
|||||||
// Disallow submit if the user has not selected a CA certificate for an EAP network
|
// Disallow submit if the user has not selected a CA certificate for an EAP network
|
||||||
// configuration.
|
// configuration.
|
||||||
enabled = false;
|
enabled = false;
|
||||||
}
|
} else if (!caCertSelection.equals(mDoNotValidateEapServerString)
|
||||||
if (caCertSelection.equals(mUseSystemCertsString)
|
|
||||||
&& mEapDomainView != null
|
&& mEapDomainView != null
|
||||||
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
||||||
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
||||||
// Disallow submit if the user chooses to use system certificates for EAP server
|
// Disallow submit if the user chooses to use a certificate for EAP server
|
||||||
// validation, but does not provide a domain.
|
// validation, but does not provide a domain.
|
||||||
enabled = false;
|
enabled = false;
|
||||||
}
|
}
|
||||||
@@ -559,14 +558,12 @@ public class WifiConfigController2 implements TextWatcher,
|
|||||||
// Display warning if user chooses not to validate the EAP server with a
|
// Display warning if user chooses not to validate the EAP server with a
|
||||||
// user-supplied CA certificate in an EAP network configuration.
|
// user-supplied CA certificate in an EAP network configuration.
|
||||||
mView.findViewById(R.id.no_ca_cert_warning).setVisibility(View.VISIBLE);
|
mView.findViewById(R.id.no_ca_cert_warning).setVisibility(View.VISIBLE);
|
||||||
}
|
} else if (!caCertSelection.equals(mUnspecifiedCertString)
|
||||||
if (caCertSelection.equals(mUseSystemCertsString)
|
|
||||||
&& mEapDomainView != null
|
&& mEapDomainView != null
|
||||||
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
&& mView.findViewById(R.id.l_domain).getVisibility() != View.GONE
|
||||||
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
&& TextUtils.isEmpty(mEapDomainView.getText().toString())) {
|
||||||
// Display warning if user chooses to use pre-installed public CA certificates
|
// Display warning if user chooses to use a certificate without restricting the
|
||||||
// without restricting the server domain that these certificates can be used to
|
// server domain that these certificates can be used to validate.
|
||||||
// validate.
|
|
||||||
mView.findViewById(R.id.no_domain_warning).setVisibility(View.VISIBLE);
|
mView.findViewById(R.id.no_domain_warning).setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1736,7 +1733,8 @@ public class WifiConfigController2 implements TextWatcher,
|
|||||||
mContext.getResources().getStringArray(contentStringArrayResId));
|
mContext.getResources().getStringArray(contentStringArrayResId));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ArrayAdapter<CharSequence> getSpinnerAdapter(
|
@VisibleForTesting
|
||||||
|
ArrayAdapter<CharSequence> getSpinnerAdapter(
|
||||||
String[] contentStringArray) {
|
String[] contentStringArray) {
|
||||||
ArrayAdapter<CharSequence> spinnerAdapter = new ArrayAdapter<>(mContext,
|
ArrayAdapter<CharSequence> spinnerAdapter = new ArrayAdapter<>(mContext,
|
||||||
android.R.layout.simple_spinner_item, contentStringArray);
|
android.R.layout.simple_spinner_item, contentStringArray);
|
||||||
|
@@ -233,6 +233,35 @@ public class WifiConfigController2Test {
|
|||||||
assertThat(mController.isSubmittable()).isTrue();
|
assertThat(mController.isSubmittable()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isSubmittable_caCertWithoutDomain_shouldReturnFalse() {
|
||||||
|
when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
|
||||||
|
mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
|
||||||
|
WifiConfigUiBase2.MODE_CONNECT);
|
||||||
|
mView.findViewById(R.id.l_ca_cert).setVisibility(View.VISIBLE);
|
||||||
|
final Spinner eapCaCertSpinner = mView.findViewById(R.id.ca_cert);
|
||||||
|
eapCaCertSpinner.setAdapter(mController.getSpinnerAdapter(new String[]{"certificate"}));
|
||||||
|
eapCaCertSpinner.setSelection(0);
|
||||||
|
mView.findViewById(R.id.l_domain).setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
assertThat(mController.isSubmittable()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isSubmittable_caCertWithDomain_shouldReturnTrue() {
|
||||||
|
when(mWifiEntry.getSecurity()).thenReturn(WifiEntry.SECURITY_EAP);
|
||||||
|
mController = new TestWifiConfigController2(mConfigUiBase, mView, mWifiEntry,
|
||||||
|
WifiConfigUiBase2.MODE_CONNECT);
|
||||||
|
mView.findViewById(R.id.l_ca_cert).setVisibility(View.VISIBLE);
|
||||||
|
final Spinner eapCaCertSpinner = mView.findViewById(R.id.ca_cert);
|
||||||
|
eapCaCertSpinner.setAdapter(mController.getSpinnerAdapter(new String[]{"certificate"}));
|
||||||
|
eapCaCertSpinner.setSelection(0);
|
||||||
|
mView.findViewById(R.id.l_domain).setVisibility(View.VISIBLE);
|
||||||
|
((TextView) mView.findViewById(R.id.domain)).setText("fakeDomain");
|
||||||
|
|
||||||
|
assertThat(mController.isSubmittable()).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getSignalString_notReachable_shouldHaveNoSignalString() {
|
public void getSignalString_notReachable_shouldHaveNoSignalString() {
|
||||||
when(mWifiEntry.getLevel()).thenReturn(WifiEntry.WIFI_LEVEL_UNREACHABLE);
|
when(mWifiEntry.getLevel()).thenReturn(WifiEntry.WIFI_LEVEL_UNREACHABLE);
|
||||||
|
@@ -220,6 +220,35 @@ public class WifiConfigControllerTest {
|
|||||||
assertThat(mController.isSubmittable()).isTrue();
|
assertThat(mController.isSubmittable()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isSubmittable_caCertWithoutDomain_shouldReturnFalse() {
|
||||||
|
when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_EAP);
|
||||||
|
mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
|
||||||
|
WifiConfigUiBase.MODE_CONNECT);
|
||||||
|
mView.findViewById(R.id.l_ca_cert).setVisibility(View.VISIBLE);
|
||||||
|
final Spinner eapCaCertSpinner = mView.findViewById(R.id.ca_cert);
|
||||||
|
eapCaCertSpinner.setAdapter(mController.getSpinnerAdapter(new String[]{"certificate"}));
|
||||||
|
eapCaCertSpinner.setSelection(0);
|
||||||
|
mView.findViewById(R.id.l_domain).setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
assertThat(mController.isSubmittable()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isSubmittable_caCertWithDomain_shouldReturnTrue() {
|
||||||
|
when(mAccessPoint.getSecurity()).thenReturn(AccessPoint.SECURITY_EAP);
|
||||||
|
mController = new TestWifiConfigController(mConfigUiBase, mView, mAccessPoint,
|
||||||
|
WifiConfigUiBase.MODE_CONNECT);
|
||||||
|
mView.findViewById(R.id.l_ca_cert).setVisibility(View.VISIBLE);
|
||||||
|
final Spinner eapCaCertSpinner = mView.findViewById(R.id.ca_cert);
|
||||||
|
eapCaCertSpinner.setAdapter(mController.getSpinnerAdapter(new String[]{"certificate"}));
|
||||||
|
eapCaCertSpinner.setSelection(0);
|
||||||
|
mView.findViewById(R.id.l_domain).setVisibility(View.VISIBLE);
|
||||||
|
((TextView) mView.findViewById(R.id.domain)).setText("fakeDomain");
|
||||||
|
|
||||||
|
assertThat(mController.isSubmittable()).isTrue();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getSignalString_notReachable_shouldHaveNoSignalString() {
|
public void getSignalString_notReachable_shouldHaveNoSignalString() {
|
||||||
when(mAccessPoint.isReachable()).thenReturn(false);
|
when(mAccessPoint.isReachable()).thenReturn(false);
|
||||||
|
Reference in New Issue
Block a user