Merge "Add isOpenNetwork() to WifiConfiguration." into oc-mr1-dev

This commit is contained in:
TreeHugger Robot
2017-10-05 01:05:55 +00:00
committed by Android (Google) Code Review
2 changed files with 93 additions and 0 deletions

View File

@@ -788,6 +788,28 @@ public class WifiConfiguration implements Parcelable {
return metered;
}
/**
* @hide
* Returns true if this WiFi config is for an open network.
*/
public boolean isOpenNetwork() {
final int cardinality = allowedKeyManagement.cardinality();
final boolean hasNoKeyMgmt = cardinality == 0
|| (cardinality == 1 && allowedKeyManagement.get(KeyMgmt.NONE));
boolean hasNoWepKeys = true;
if (wepKeys != null) {
for (int i = 0; i < wepKeys.length; i++) {
if (wepKeys[i] != null) {
hasNoWepKeys = false;
break;
}
}
}
return hasNoKeyMgmt && hasNoWepKeys;
}
/**
* @hide
* Setting this value will force scan results associated with this configuration to

View File

@@ -18,6 +18,8 @@ package android.net.wifi;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertFalse;
import android.os.Parcel;
import android.net.wifi.WifiConfiguration.NetworkSelectionStatus;
@@ -98,4 +100,73 @@ public class WifiConfigurationTest {
assertEquals(networkSelectionStatus.isNotRecommended(), copy.isNotRecommended());
}
@Test
public void testIsOpenNetwork_IsOpen_NullWepKeys() {
WifiConfiguration config = new WifiConfiguration();
config.allowedKeyManagement.clear();
config.wepKeys = null;
assertTrue(config.isOpenNetwork());
}
@Test
public void testIsOpenNetwork_IsOpen_ZeroLengthWepKeysArray() {
WifiConfiguration config = new WifiConfiguration();
config.allowedKeyManagement.clear();
config.wepKeys = new String[0];
assertTrue(config.isOpenNetwork());
}
@Test
public void testIsOpenNetwork_IsOpen_NullWepKeysArray() {
WifiConfiguration config = new WifiConfiguration();
config.allowedKeyManagement.clear();
config.wepKeys = new String[1];
assertTrue(config.isOpenNetwork());
}
@Test
public void testIsOpenNetwork_NotOpen_HasWepKeys() {
WifiConfiguration config = new WifiConfiguration();
config.allowedKeyManagement.clear();
config.wepKeys = new String[] {"test"};
assertFalse(config.isOpenNetwork());
}
@Test
public void testIsOpenNetwork_NotOpen_HasNullWepKeyFollowedByNonNullKey() {
WifiConfiguration config = new WifiConfiguration();
config.allowedKeyManagement.clear();
config.wepKeys = new String[] {null, null, "test"};
assertFalse(config.isOpenNetwork());
}
@Test
public void testIsOpenNetwork_NotOpen_HasAuthType() {
for (int keyMgmt = 0; keyMgmt < WifiConfiguration.KeyMgmt.strings.length; keyMgmt++) {
if (keyMgmt == WifiConfiguration.KeyMgmt.NONE) continue;
WifiConfiguration config = new WifiConfiguration();
config.allowedKeyManagement.clear();
config.allowedKeyManagement.set(keyMgmt);
config.wepKeys = null;
assertFalse("Open network reported when key mgmt was set to "
+ WifiConfiguration.KeyMgmt.strings[keyMgmt], config.isOpenNetwork());
}
}
@Test
public void testIsOpenNetwork_NotOpen_HasAuthTypeNoneAndMore() {
WifiConfiguration config = new WifiConfiguration();
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE);
config.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA_EAP);
config.wepKeys = null;
assertFalse(config.isOpenNetwork());
}
}