summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbsears <bsears@google.com>2020-12-31 21:16:51 +0000
committerbsears <bsears@google.com>2020-12-31 21:16:51 +0000
commit598ab32345467abedffd72288569e3b92f3bbac7 (patch)
treebb0ef56e9a4a42dd6e24312f9d014533834baa4c
parente0062af10c5bbae36433a660e454cfbcba1b943b (diff)
downloadpackages_apps_Settings-598ab32345467abedffd72288569e3b92f3bbac7.tar.gz
packages_apps_Settings-598ab32345467abedffd72288569e3b92f3bbac7.tar.bz2
packages_apps_Settings-598ab32345467abedffd72288569e3b92f3bbac7.zip
Revert "Add Hotspot WPA3 Settings"
This reverts commit e0062af10c5bbae36433a660e454cfbcba1b943b. Reason for revert: Bug 176569060 - Droidfood blocking crash in Settings app. Change-Id: Id50c96e8ce704b19e5ffb9b9a9fcbb0db2d81aee
-rw-r--r--res/values/arrays.xml8
-rw-r--r--src/com/android/settings/AllInOneTetherSettings.java2
-rw-r--r--src/com/android/settings/wifi/WifiUtils.java6
-rw-r--r--src/com/android/settings/wifi/dpp/WifiDppUtils.java16
-rw-r--r--src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java14
-rw-r--r--src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java87
-rw-r--r--src/com/android/settings/wifi/tether/WifiTetherSettings.java6
-rw-r--r--tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceControllerTest.java105
-rw-r--r--tests/unit/src/com/android/settings/wifi/WifiUtilsTest.java49
-rw-r--r--tests/unit/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceControllerTest.java206
10 files changed, 150 insertions, 349 deletions
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index bf757d113d..f8df920651 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -223,10 +223,6 @@
<!-- Security types for wireless tether -->
<string-array name="wifi_tether_security">
<!-- Do not translate. -->
- <item>@string/wifi_security_sae</item>
- <!-- Do not translate. -->
- <item>@string/wifi_security_psk_sae</item>
- <!-- Do not translate. -->
<item>@string/wifi_security_wpa2</item>
<!-- Do not translate. -->
<item>@string/wifi_security_none</item>
@@ -235,10 +231,6 @@
<!-- Values for security type for wireless tether -->
<string-array name="wifi_tether_security_values" translatable="false">
<!-- Do not translate. -->
- <item>3</item>
- <!-- Do not translate. -->
- <item>2</item>
- <!-- Do not translate. -->
<item>1</item>
<!-- Do not translate. -->
<item>0</item>
diff --git a/src/com/android/settings/AllInOneTetherSettings.java b/src/com/android/settings/AllInOneTetherSettings.java
index 5442ed7fef..82e3206e49 100644
--- a/src/com/android/settings/AllInOneTetherSettings.java
+++ b/src/com/android/settings/AllInOneTetherSettings.java
@@ -355,7 +355,7 @@ public class AllInOneTetherSettings extends RestrictedDashboardFragment
@Override
public void onTetherConfigUpdated(AbstractPreferenceController controller) {
final SoftApConfiguration config = buildNewConfig();
- mPasswordPreferenceController.setSecurityType(config.getSecurityType());
+ mPasswordPreferenceController.updateVisibility(config.getSecurityType());
mWifiManager.setSoftApConfiguration(config);
if (mWifiManager.getWifiApState() == WifiManager.WIFI_AP_STATE_ENABLED) {
diff --git a/src/com/android/settings/wifi/WifiUtils.java b/src/com/android/settings/wifi/WifiUtils.java
index d05260afe1..06f74d54e5 100644
--- a/src/com/android/settings/wifi/WifiUtils.java
+++ b/src/com/android/settings/wifi/WifiUtils.java
@@ -56,12 +56,12 @@ public class WifiUtils {
}
/**
- * Check if the hotspot password is valid.
+ * Check if the WPA2-PSK hotspot password is valid.
*/
- public static boolean isHotspotPasswordValid(String password, int securityType) {
+ public static boolean isHotspotWpa2PasswordValid(String password) {
final SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder();
try {
- configBuilder.setPassphrase(password, securityType);
+ configBuilder.setPassphrase(password, SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
} catch (IllegalArgumentException e) {
return false;
}
diff --git a/src/com/android/settings/wifi/dpp/WifiDppUtils.java b/src/com/android/settings/wifi/dpp/WifiDppUtils.java
index abf5becfbc..2957e1fb8b 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppUtils.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppUtils.java
@@ -301,11 +301,7 @@ public class WifiDppUtils {
final String ssid = removeFirstAndLastDoubleQuotes(softApConfiguration.getSsid());
String security;
- final int securityType = softApConfiguration.getSecurityType();
- if (securityType == SoftApConfiguration.SECURITY_TYPE_WPA3_SAE) {
- security = WifiQrCode.SECURITY_SAE;
- } else if (securityType == SoftApConfiguration.SECURITY_TYPE_WPA2_PSK
- || securityType == SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION) {
+ if (softApConfiguration.getSecurityType() == SoftApConfiguration.SECURITY_TYPE_WPA2_PSK) {
security = WifiQrCode.SECURITY_WPA_PSK;
} else {
security = WifiQrCode.SECURITY_NO_PASSWORD;
@@ -435,11 +431,11 @@ public class WifiDppUtils {
private static boolean isSupportHotspotConfiguratorQrCodeGenerator(
SoftApConfiguration softApConfiguration) {
- final int securityType = softApConfiguration.getSecurityType();
- return securityType == SoftApConfiguration.SECURITY_TYPE_WPA3_SAE
- || securityType == SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION
- || securityType == SoftApConfiguration.SECURITY_TYPE_WPA2_PSK
- || securityType == SoftApConfiguration.SECURITY_TYPE_OPEN;
+ // QR code generator produces QR code with ZXing's Wi-Fi network config format,
+ // it supports PSK and WEP and non security
+ // KeyMgmt.NONE is for WEP or non security
+ return softApConfiguration.getSecurityType() == SoftApConfiguration.SECURITY_TYPE_WPA2_PSK
+ || softApConfiguration.getSecurityType() == SoftApConfiguration.SECURITY_TYPE_OPEN;
}
private static boolean isSupportWifiDpp(Context context, int wifiEntrySecurity) {
diff --git a/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
index 287e97154a..be67d22d96 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java
@@ -43,7 +43,6 @@ public class WifiTetherPasswordPreferenceController extends WifiTetherBasePrefer
private static final String PREF_KEY = "wifi_tether_network_password";
private String mPassword;
- private int mSecurityType;
private final MetricsFeatureProvider mMetricsFeatureProvider;
@@ -69,13 +68,13 @@ public class WifiTetherPasswordPreferenceController extends WifiTetherBasePrefer
@Override
public void updateDisplay() {
final SoftApConfiguration config = mWifiManager.getSoftApConfiguration();
- if (config.getSecurityType() != SoftApConfiguration.SECURITY_TYPE_OPEN
- && TextUtils.isEmpty(config.getPassphrase())) {
+ if (config == null
+ || (config.getSecurityType() == SoftApConfiguration.SECURITY_TYPE_WPA2_PSK
+ && TextUtils.isEmpty(config.getPassphrase()))) {
mPassword = generateRandomPassword();
} else {
mPassword = config.getPassphrase();
}
- mSecurityType = config.getSecurityType();
((ValidatedEditTextPreference) mPreference).setValidator(this);
((ValidatedEditTextPreference) mPreference).setIsPassword(true);
((ValidatedEditTextPreference) mPreference).setIsSummaryPassword(true);
@@ -106,21 +105,20 @@ public class WifiTetherPasswordPreferenceController extends WifiTetherBasePrefer
// don't actually overwrite unless we get a new config in case it was accidentally toggled.
if (securityType == SoftApConfiguration.SECURITY_TYPE_OPEN) {
return "";
- } else if (!WifiUtils.isHotspotPasswordValid(mPassword, securityType)) {
+ } else if (!isTextValid(mPassword)) {
mPassword = generateRandomPassword();
updatePasswordDisplay((EditTextPreference) mPreference);
}
return mPassword;
}
- public void setSecurityType(int securityType) {
- mSecurityType = securityType;
+ public void updateVisibility(int securityType) {
mPreference.setVisible(securityType != SoftApConfiguration.SECURITY_TYPE_OPEN);
}
@Override
public boolean isTextValid(String value) {
- return WifiUtils.isHotspotPasswordValid(value, mSecurityType);
+ return WifiUtils.isHotspotWpa2PasswordValid(value);
}
private static String generateRandomPassword() {
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java
index ec5e6e0ed6..56b50314b6 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceController.java
@@ -1,62 +1,28 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
package com.android.settings.wifi.tether;
import static com.android.settings.AllInOneTetherSettings.DEDUP_POSTFIX;
-import android.annotation.NonNull;
import android.content.Context;
-import android.net.wifi.SoftApCapability;
import android.net.wifi.SoftApConfiguration;
-import android.net.wifi.WifiManager;
import android.util.FeatureFlagUtils;
-import android.util.Log;
-import androidx.annotation.VisibleForTesting;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.FeatureFlags;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-public class WifiTetherSecurityPreferenceController extends WifiTetherBasePreferenceController
- implements WifiManager.SoftApCallback {
+public class WifiTetherSecurityPreferenceController extends WifiTetherBasePreferenceController {
private static final String PREF_KEY = "wifi_tether_security";
- private Map<Integer, String> mSecurityMap = new LinkedHashMap<Integer, String>();
+ private final String[] mSecurityEntries;
private int mSecurityValue;
- @VisibleForTesting
- boolean mIsWpa3Supported = true;
public WifiTetherSecurityPreferenceController(Context context,
OnTetherConfigUpdateListener listener) {
super(context, listener);
- final String[] securityNames = mContext.getResources().getStringArray(
- R.array.wifi_tether_security);
- final String[] securityValues = mContext.getResources().getStringArray(
- R.array.wifi_tether_security_values);
- for (int i = 0; i < securityNames.length; i++) {
- mSecurityMap.put(Integer.parseInt(securityValues[i]), securityNames[i]);
- }
- mWifiManager.registerSoftApCallback(context.getMainExecutor(), this);
+ mSecurityEntries = mContext.getResources().getStringArray(R.array.wifi_tether_security);
}
@Override
@@ -67,48 +33,35 @@ public class WifiTetherSecurityPreferenceController extends WifiTetherBasePrefer
@Override
public void updateDisplay() {
- final ListPreference preference = (ListPreference) mPreference;
- // If the device is not support WPA3 then remove the WPA3 options.
- if (!mIsWpa3Supported && mSecurityMap.keySet()
- .removeIf(key -> key > SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)) {
- preference.setEntries(mSecurityMap.values().stream().toArray(CharSequence[]::new));
- preference.setEntryValues(mSecurityMap.keySet().stream().map(Integer::toBinaryString)
- .toArray(CharSequence[]::new));
+ final SoftApConfiguration config = mWifiManager.getSoftApConfiguration();
+ if (config != null && config.getSecurityType() == SoftApConfiguration.SECURITY_TYPE_OPEN) {
+ mSecurityValue = SoftApConfiguration.SECURITY_TYPE_OPEN;
+ } else {
+ mSecurityValue = SoftApConfiguration.SECURITY_TYPE_WPA2_PSK;
}
- final int securityType = mWifiManager.getSoftApConfiguration().getSecurityType();
- mSecurityValue = mSecurityMap.get(securityType) != null
- ? securityType : SoftApConfiguration.SECURITY_TYPE_WPA2_PSK;
-
- preference.setSummary(mSecurityMap.get(mSecurityValue));
+ final ListPreference preference = (ListPreference) mPreference;
+ preference.setSummary(getSummaryForSecurityType(mSecurityValue));
preference.setValue(String.valueOf(mSecurityValue));
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
mSecurityValue = Integer.parseInt((String) newValue);
- preference.setSummary(mSecurityMap.get(mSecurityValue));
- if (mListener != null) {
- mListener.onTetherConfigUpdated(this);
- }
+ preference.setSummary(getSummaryForSecurityType(mSecurityValue));
+ mListener.onTetherConfigUpdated(this);
return true;
}
- @Override
- public void onCapabilityChanged(@NonNull SoftApCapability softApCapability) {
- final boolean isWpa3Supported =
- softApCapability.areFeaturesSupported(SoftApCapability.SOFTAP_FEATURE_WPA3_SAE);
- if (!isWpa3Supported) {
- Log.i(PREF_KEY, "WPA3 SAE is not supported on this device");
- }
- if (mIsWpa3Supported != isWpa3Supported) {
- mIsWpa3Supported = isWpa3Supported;
- updateDisplay();
- }
- mWifiManager.unregisterSoftApCallback(this);
- }
-
public int getSecurityType() {
return mSecurityValue;
}
+
+ private String getSummaryForSecurityType(int securityType) {
+ if (securityType == SoftApConfiguration.SECURITY_TYPE_OPEN) {
+ return mSecurityEntries[1];
+ }
+ // WPA2 PSK
+ return mSecurityEntries[0];
+ }
}
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
index f260298029..d6c49bcda2 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java
@@ -192,7 +192,7 @@ public class WifiTetherSettings extends RestrictedDashboardFragment
@Override
public void onTetherConfigUpdated(AbstractPreferenceController context) {
final SoftApConfiguration config = buildNewConfig();
- mPasswordPreferenceController.setSecurityType(config.getSecurityType());
+ mPasswordPreferenceController.updateVisibility(config.getSecurityType());
/**
* if soft AP is stopped, bring up
@@ -216,10 +216,10 @@ public class WifiTetherSettings extends RestrictedDashboardFragment
final SoftApConfiguration.Builder configBuilder = new SoftApConfiguration.Builder();
final int securityType = mSecurityPreferenceController.getSecurityType();
configBuilder.setSsid(mSSIDPreferenceController.getSSID());
- if (securityType != SoftApConfiguration.SECURITY_TYPE_OPEN) {
+ if (securityType == SoftApConfiguration.SECURITY_TYPE_WPA2_PSK) {
configBuilder.setPassphrase(
mPasswordPreferenceController.getPasswordValidated(securityType),
- securityType);
+ SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
}
configBuilder.setBand(mApBandPreferenceController.getBandIndex());
return configBuilder.build();
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceControllerTest.java
new file mode 100644
index 0000000000..c7d0695d0f
--- /dev/null
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceControllerTest.java
@@ -0,0 +1,105 @@
+package com.android.settings.wifi.tether;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
+import android.net.ConnectivityManager;
+import android.net.wifi.SoftApConfiguration;
+import android.net.wifi.WifiManager;
+
+import androidx.preference.ListPreference;
+import androidx.preference.PreferenceScreen;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
+
+@RunWith(RobolectricTestRunner.class)
+public class WifiTetherSecurityPreferenceControllerTest {
+
+ private static final String WPA2_PSK =
+ String.valueOf(SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
+ private static final String NONE = String.valueOf(SoftApConfiguration.SECURITY_TYPE_OPEN);
+ @Mock
+ private WifiTetherBasePreferenceController.OnTetherConfigUpdateListener mListener;
+ private Context mContext;
+ @Mock
+ private ConnectivityManager mConnectivityManager;
+ @Mock
+ private WifiManager mWifiManager;
+ @Mock
+ private PreferenceScreen mScreen;
+ private WifiTetherSecurityPreferenceController mController;
+ private ListPreference mPreference;
+ private SoftApConfiguration mConfig;
+
+ @Before
+ public void setUp() {
+ MockitoAnnotations.initMocks(this);
+ mConfig = new SoftApConfiguration.Builder().setSsid("test_1234")
+ .setPassphrase("test_password",
+ SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
+ mContext = spy(RuntimeEnvironment.application);
+
+ when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
+ when(mWifiManager.getSoftApConfiguration()).thenReturn(mConfig);
+ when(mContext.getSystemService(Context.CONNECTIVITY_SERVICE))
+ .thenReturn(mConnectivityManager);
+ when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
+ when(mScreen.findPreference(anyString())).thenReturn(mPreference);
+
+ mController = new WifiTetherSecurityPreferenceController(mContext, mListener);
+ mPreference = new ListPreference(RuntimeEnvironment.application);
+ mController.mPreference = mPreference;
+ }
+
+ @Test
+ public void onPreferenceChange_securityValueUpdated() {
+ mController.onPreferenceChange(mPreference, WPA2_PSK);
+ assertThat(mController.getSecurityType()).isEqualTo(
+ SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
+ assertThat(mPreference.getSummary().toString()).isEqualTo("WPA2-Personal");
+
+ mController.onPreferenceChange(mPreference, NONE);
+ assertThat(mController.getSecurityType()).isEqualTo(
+ SoftApConfiguration.SECURITY_TYPE_OPEN);
+ assertThat(mPreference.getSummary().toString()).isEqualTo("None");
+ }
+
+ @Test
+ public void updateDisplay_preferenceUpdated() {
+ // test defaulting to WPA2-Personal on new config
+ when(mWifiManager.getSoftApConfiguration()).thenReturn(null);
+ mController.updateDisplay();
+ assertThat(mController.getSecurityType()).isEqualTo(
+ SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
+ assertThat(mPreference.getSummary().toString()).isEqualTo("WPA2-Personal");
+
+ // test open tether network
+ SoftApConfiguration config = new SoftApConfiguration.Builder(mConfig)
+ .setPassphrase(null, SoftApConfiguration.SECURITY_TYPE_OPEN).build();
+ when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
+ mController.updateDisplay();
+ assertThat(mController.getSecurityType()).isEqualTo(
+ SoftApConfiguration.SECURITY_TYPE_OPEN);
+ assertThat(mPreference.getSummary().toString()).isEqualTo("None");
+
+ // test WPA2-Personal tether network
+ SoftApConfiguration config2 = new SoftApConfiguration.Builder(mConfig)
+ .setPassphrase("test_password",
+ SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
+ when(mWifiManager.getSoftApConfiguration()).thenReturn(config2);
+ mController.updateDisplay();
+ assertThat(mController.getSecurityType()).isEqualTo(
+ SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
+ assertThat(mPreference.getSummary().toString()).isEqualTo("WPA2-Personal");
+ }
+}
diff --git a/tests/unit/src/com/android/settings/wifi/WifiUtilsTest.java b/tests/unit/src/com/android/settings/wifi/WifiUtilsTest.java
index 1a5e8526dc..7a75443f81 100644
--- a/tests/unit/src/com/android/settings/wifi/WifiUtilsTest.java
+++ b/tests/unit/src/com/android/settings/wifi/WifiUtilsTest.java
@@ -21,7 +21,6 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiConfiguration;
import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -47,48 +46,12 @@ public class WifiUtilsTest {
public void testPassword() {
final String longPassword = "123456789012345678901234567890"
+ "1234567890123456789012345678901234567890";
- assertThat(WifiUtils.isHotspotPasswordValid("123",
- SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)).isFalse();
- assertThat(WifiUtils.isHotspotPasswordValid("12345678",
- SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)).isTrue();
- assertThat(WifiUtils.isHotspotPasswordValid("1234567890",
- SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)).isTrue();
- assertThat(WifiUtils.isHotspotPasswordValid(longPassword,
- SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)).isFalse();
- assertThat(WifiUtils.isHotspotPasswordValid("",
- SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)).isFalse();
- assertThat(WifiUtils.isHotspotPasswordValid("€¥£",
- SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)).isFalse();
-
- // The WPA3_SAE_TRANSITION password limitation should be same as WPA2_PSK
- assertThat(WifiUtils.isHotspotPasswordValid("123",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION)).isFalse();
- assertThat(WifiUtils.isHotspotPasswordValid("12345678",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION)).isTrue();
- assertThat(WifiUtils.isHotspotPasswordValid("1234567890",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION)).isTrue();
- assertThat(WifiUtils.isHotspotPasswordValid(longPassword,
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION)).isFalse();
- assertThat(WifiUtils.isHotspotPasswordValid("",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION)).isFalse();
- assertThat(WifiUtils.isHotspotPasswordValid("€¥£",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION)).isFalse();
-
- // The WA3_SAE password is requested that length > 1 only.
- assertThat(WifiUtils.isHotspotPasswordValid("",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isFalse();
- assertThat(WifiUtils.isHotspotPasswordValid("1",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isTrue();
- assertThat(WifiUtils.isHotspotPasswordValid("123",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isTrue();
- assertThat(WifiUtils.isHotspotPasswordValid("12345678",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isTrue();
- assertThat(WifiUtils.isHotspotPasswordValid("1234567890",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isTrue();
- assertThat(WifiUtils.isHotspotPasswordValid(longPassword,
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isTrue();
- assertThat(WifiUtils.isHotspotPasswordValid("€¥£",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE)).isTrue();
+ assertThat(WifiUtils.isHotspotWpa2PasswordValid("123")).isFalse();
+ assertThat(WifiUtils.isHotspotWpa2PasswordValid("12345678")).isTrue();
+ assertThat(WifiUtils.isHotspotWpa2PasswordValid("1234567890")).isTrue();
+ assertThat(WifiUtils.isHotspotWpa2PasswordValid(longPassword)).isFalse();
+ assertThat(WifiUtils.isHotspotWpa2PasswordValid("")).isFalse();
+ assertThat(WifiUtils.isHotspotWpa2PasswordValid("€¥£")).isFalse();
}
@Test
diff --git a/tests/unit/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceControllerTest.java b/tests/unit/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceControllerTest.java
deleted file mode 100644
index 836d4e4197..0000000000
--- a/tests/unit/src/com/android/settings/wifi/tether/WifiTetherSecurityPreferenceControllerTest.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/*
- * Copyright (C) 2020 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.wifi.tether;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.net.wifi.SoftApConfiguration;
-import android.net.wifi.WifiManager;
-import android.os.Looper;
-
-import androidx.preference.ListPreference;
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-import androidx.test.core.app.ApplicationProvider;
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-public class WifiTetherSecurityPreferenceControllerTest {
-
- private static final String PREF_KEY = "wifi_tether_security";
- private static final String WPA3_SAE =
- String.valueOf(SoftApConfiguration.SECURITY_TYPE_WPA3_SAE);
- private static final String WPA3_SAE_TRANSITION =
- String.valueOf(SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION);
- private static final String WPA2_PSK =
- String.valueOf(SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
- private static final String NONE = String.valueOf(SoftApConfiguration.SECURITY_TYPE_OPEN);
-
- @Rule
- public final MockitoRule mMockitoRule = MockitoJUnit.rule();
- @Mock
- private WifiManager mWifiManager;
- @Mock
- private WifiTetherBasePreferenceController.OnTetherConfigUpdateListener mListener;
-
- private WifiTetherSecurityPreferenceController mController;
- private ListPreference mPreference;
- private SoftApConfiguration mConfig;
-
- @Before
- public void setUp() {
- final Context context = spy(ApplicationProvider.getApplicationContext());
- mConfig = new SoftApConfiguration.Builder().setSsid("test_1234")
- .setPassphrase(null, SoftApConfiguration.SECURITY_TYPE_OPEN).build();
- when(context.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
- when(mWifiManager.getSoftApConfiguration()).thenReturn(mConfig);
-
- mController = new WifiTetherSecurityPreferenceController(context, mListener);
- if (Looper.myLooper() == null) {
- Looper.prepare();
- }
- final PreferenceManager preferenceManager = new PreferenceManager(context);
- final PreferenceScreen screen = preferenceManager.createPreferenceScreen(context);
- mPreference = new ListPreference(context);
- mPreference.setKey(PREF_KEY);
- screen.addPreference(mPreference);
- mController.displayPreference(screen);
- }
-
- @Test
- public void onPreferenceChange_toWpa3Sae_shouldUpdateSecurityValue() {
- mController.onPreferenceChange(mPreference, WPA3_SAE);
-
- assertThat(mController.getSecurityType())
- .isEqualTo(SoftApConfiguration.SECURITY_TYPE_WPA3_SAE);
- assertThat(mPreference.getSummary().toString()).isEqualTo("WPA3-Personal");
- }
-
- @Test
- public void onPreferenceChange_toWpa3SaeTransition_shouldUpdateSecurityValue() {
- mController.onPreferenceChange(mPreference, WPA3_SAE_TRANSITION);
-
- assertThat(mController.getSecurityType())
- .isEqualTo(SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION);
- assertThat(mPreference.getSummary().toString()).isEqualTo("WPA2/WPA3-Personal");
- }
-
- @Test
- public void onPreferenceChange_toWpa2Psk_shouldUpdateSecurityValue() {
- mController.onPreferenceChange(mPreference, WPA2_PSK);
-
- assertThat(mController.getSecurityType())
- .isEqualTo(SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
- assertThat(mPreference.getSummary().toString()).isEqualTo("WPA2-Personal");
- }
-
- @Test
- public void onPreferenceChange_toNone_shouldUpdateSecurityValue() {
- mController.onPreferenceChange(mPreference, NONE);
-
- assertThat(mController.getSecurityType())
- .isEqualTo(SoftApConfiguration.SECURITY_TYPE_OPEN);
- assertThat(mPreference.getSummary().toString()).isEqualTo("None");
- }
-
- @Test
- public void updateDisplay_toWpa3Sae_shouldUpdateSecurityValue() {
- SoftApConfiguration config = new SoftApConfiguration.Builder(mConfig)
- .setPassphrase("test_password",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE).build();
- when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
-
- mController.updateDisplay();
-
- assertThat(mController.getSecurityType())
- .isEqualTo(SoftApConfiguration.SECURITY_TYPE_WPA3_SAE);
- assertThat(mPreference.getSummary().toString()).isEqualTo("WPA3-Personal");
- }
-
- @Test
- public void updateDisplay_toWpa3SaeTransition_shouldUpdateSecurityValue() {
- SoftApConfiguration config = new SoftApConfiguration.Builder(mConfig)
- .setPassphrase("test_password",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION).build();
- when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
-
- mController.updateDisplay();
-
- assertThat(mController.getSecurityType())
- .isEqualTo(SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION);
- assertThat(mPreference.getSummary().toString()).isEqualTo("WPA2/WPA3-Personal");
- }
-
- @Test
- public void updateDisplay_toWpa2Psk_shouldUpdateSecurityValue() {
- SoftApConfiguration config = new SoftApConfiguration.Builder(mConfig)
- .setPassphrase("test_password",
- SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
- when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
-
- mController.updateDisplay();
-
- assertThat(mController.getSecurityType())
- .isEqualTo(SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
- assertThat(mPreference.getSummary().toString()).isEqualTo("WPA2-Personal");
- }
-
- @Test
- public void updateDisplay_toNone_shouldUpdateSecurityValue() {
- SoftApConfiguration config = new SoftApConfiguration.Builder(mConfig)
- .setPassphrase(null, SoftApConfiguration.SECURITY_TYPE_OPEN).build();
- when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
-
- mController.updateDisplay();
-
- assertThat(mController.getSecurityType())
- .isEqualTo(SoftApConfiguration.SECURITY_TYPE_OPEN);
- assertThat(mPreference.getSummary().toString()).isEqualTo("None");
- }
-
- @Test
- public void updateDisplay_toWpa3SaeButNotSupportWpa3_shouldBeDefaultToWpa2() {
- mController.mIsWpa3Supported = false;
- SoftApConfiguration config = new SoftApConfiguration.Builder(mConfig)
- .setPassphrase("test_password",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE).build();
- when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
-
- mController.updateDisplay();
-
- assertThat(mController.getSecurityType())
- .isEqualTo(SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
- assertThat(mPreference.getSummary().toString()).isEqualTo("WPA2-Personal");
- }
-
- @Test
- public void updateDisplay_toWpa3SaeTransitionButNotSupportWpa3_shouldBeDefaultToWpa2() {
- mController.mIsWpa3Supported = false;
- SoftApConfiguration config = new SoftApConfiguration.Builder(mConfig)
- .setPassphrase("test_password",
- SoftApConfiguration.SECURITY_TYPE_WPA3_SAE_TRANSITION).build();
- when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
-
- mController.updateDisplay();
-
- assertThat(mController.getSecurityType())
- .isEqualTo(SoftApConfiguration.SECURITY_TYPE_WPA2_PSK);
- assertThat(mPreference.getSummary().toString()).isEqualTo("WPA2-Personal");
- }
-}