summaryrefslogtreecommitdiffstats
path: root/tests/wifitests/src/com
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-05-12 02:43:06 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-05-12 02:43:06 +0000
commit050acb5eec918f3f0a47f0955815398c15f10ca8 (patch)
tree94527f56b1e031ee2a076a03a3cb5ac3e6caedba /tests/wifitests/src/com
parent8b5cc8afd5b23d70681f0880a7136f0a0646cdb0 (diff)
parent194152febb8c5b726a051469f7368f271dceaaee (diff)
downloadandroid_frameworks_opt_net_wifi-050acb5eec918f3f0a47f0955815398c15f10ca8.tar.gz
android_frameworks_opt_net_wifi-050acb5eec918f3f0a47f0955815398c15f10ca8.tar.bz2
android_frameworks_opt_net_wifi-050acb5eec918f3f0a47f0955815398c15f10ca8.zip
Merge "[WPA3] Fix connectivity issues with PSK-SAE Transtion mode" into qt-dev
Diffstat (limited to 'tests/wifitests/src/com')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/ScanResultMatchInfoTest.java132
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java28
2 files changed, 160 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/ScanResultMatchInfoTest.java b/tests/wifitests/src/com/android/server/wifi/ScanResultMatchInfoTest.java
index e165f77fe..2712ce077 100644
--- a/tests/wifitests/src/com/android/server/wifi/ScanResultMatchInfoTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/ScanResultMatchInfoTest.java
@@ -86,6 +86,129 @@ public class ScanResultMatchInfoTest {
}
/**
+ * Tests equality properties, reflexive, symmetric, transitive, consistent for transition mode
+ * network.
+ */
+ @Test
+ public void testEqualityRulesForTransitionMode() {
+ WifiConfiguration wifiConfiguration =
+ WifiConfigurationTestUtil.createPskNetwork("\"Transition is Hard\"");
+ ScanDetail scanDetail = createScanDetailForWpa2Wpa3TransitionModeNetwork(wifiConfiguration,
+ "AA:BB:CC:DD:CC:BB");
+
+ ScanResultMatchInfo key1 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfiguration);
+ ScanResultMatchInfo key2 = ScanResultMatchInfo.fromScanResult(scanDetail.getScanResult());
+ ScanResultMatchInfo key3 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfiguration);
+
+ // Test a.equals(a)
+ assertTrue(key1.equals(key1));
+
+ // Test if a.equals(b) then b.equals(a)
+ assertTrue(key1.equals(key2));
+ assertTrue(key2.equals(key1));
+
+ // Test transitivity
+ assertTrue(key1.equals(key2));
+ assertTrue(key2.equals(key3));
+ assertTrue(key1.equals(key3));
+
+ // Test consistency
+ assertTrue(key1.equals(key2));
+ assertTrue(key1.equals(key2));
+ assertTrue(key1.equals(key2));
+ assertTrue(key1.equals(key2));
+ }
+
+ /**
+ * Tests equality properties, reflexive, symmetric, transitive, consistent for PSK network.
+ */
+ @Test
+ public void testEqualityRulesForPsk() {
+ WifiConfiguration wifiConfiguration =
+ WifiConfigurationTestUtil.createPskNetwork("\"Psk Tsk\"");
+ ScanDetail scanDetail = createScanDetailForNetwork(wifiConfiguration,
+ "AA:BB:CC:DD:CC:BB");
+
+ ScanResultMatchInfo key1 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfiguration);
+ ScanResultMatchInfo key2 = ScanResultMatchInfo.fromScanResult(scanDetail.getScanResult());
+ ScanResultMatchInfo key3 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfiguration);
+
+ // Test a.equals(a)
+ assertTrue(key1.equals(key1));
+
+ // Test if a.equals(b) then b.equals(a)
+ assertTrue(key1.equals(key2));
+ assertTrue(key2.equals(key1));
+
+ // Test transitivity
+ assertTrue(key1.equals(key2));
+ assertTrue(key2.equals(key3));
+ assertTrue(key1.equals(key3));
+
+ // Test consistency
+ assertTrue(key1.equals(key2));
+ assertTrue(key1.equals(key2));
+ assertTrue(key1.equals(key2));
+ assertTrue(key1.equals(key2));
+ }
+
+
+ /**
+ * Tests equality properties, reflexive, symmetric, transitive, consistent for SAE network.
+ */
+ @Test
+ public void testEqualityRulesForSae() {
+ WifiConfiguration wifiConfiguration =
+ WifiConfigurationTestUtil.createSaeNetwork();
+ ScanDetail scanDetail = createScanDetailForNetwork(wifiConfiguration,
+ "AC:AB:AD:AE:AF:FC");
+
+ ScanResultMatchInfo key1 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfiguration);
+ ScanResultMatchInfo key2 = ScanResultMatchInfo.fromScanResult(scanDetail.getScanResult());
+ ScanResultMatchInfo key3 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfiguration);
+
+ // Test a.equals(a)
+ assertTrue(key1.equals(key1));
+
+ // Test if a.equals(b) then b.equals(a)
+ assertTrue(key1.equals(key2));
+ assertTrue(key2.equals(key1));
+
+ // Test transitivity
+ assertTrue(key1.equals(key2));
+ assertTrue(key2.equals(key3));
+ assertTrue(key1.equals(key3));
+
+ // Test consistency
+ assertTrue(key1.equals(key2));
+ assertTrue(key1.equals(key2));
+ assertTrue(key1.equals(key2));
+ assertTrue(key1.equals(key2));
+ }
+
+ /**
+ * Tests that hashes of various configurations are equal
+ */
+ @Test
+ public void testHashForTransitionMode() {
+ WifiConfiguration wifiConfigurationPsk =
+ WifiConfigurationTestUtil.createPskNetwork("\"Transition is Hard\"");
+ WifiConfiguration wifiConfigurationSae =
+ WifiConfigurationTestUtil.createSaeNetwork("\"Transition is Hard\"");
+ ScanDetail scanDetail = createScanDetailForWpa2Wpa3TransitionModeNetwork(
+ wifiConfigurationPsk, "AA:BB:CC:DD:CC:BB");
+
+ ScanResultMatchInfo key1 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfigurationPsk);
+ ScanResultMatchInfo key2 = ScanResultMatchInfo.fromScanResult(scanDetail.getScanResult());
+ ScanResultMatchInfo key3 = ScanResultMatchInfo.fromWifiConfiguration(wifiConfigurationSae);
+
+ // Assert that all hashes are equal
+ assertEquals(key1.hashCode(), key2.hashCode());
+ assertEquals(key1.hashCode(), key3.hashCode());
+ assertEquals(key2.hashCode(), key3.hashCode());
+ }
+
+ /**
* Creates a scan detail corresponding to the provided network and given BSSID
*/
private ScanDetail createScanDetailForNetwork(
@@ -93,4 +216,13 @@ public class ScanResultMatchInfoTest {
return WifiConfigurationTestUtil.createScanDetailForNetwork(configuration, bssid, -40,
2402, 0, 0);
}
+
+ /**
+ * Creates a scan detail corresponding to the provided network and given BSSID
+ */
+ private ScanDetail createScanDetailForWpa2Wpa3TransitionModeNetwork(
+ WifiConfiguration configuration, String bssid) {
+ return WifiConfigurationTestUtil.createScanDetailForWpa2Wpa3TransitionModeNetwork(
+ configuration, bssid, -40, 2402, 0, 0);
+ }
}
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
index c114aa10d..056df7c37 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java
@@ -300,6 +300,12 @@ public class WifiConfigurationTestUtil {
return configuration;
}
+ public static WifiConfiguration createSaeNetwork(String ssid) {
+ WifiConfiguration configuration =
+ generateWifiConfig(TEST_NETWORK_ID, TEST_UID, ssid, true, true, null,
+ null, SECURITY_SAE);
+ return configuration;
+ }
public static WifiConfiguration createPskHiddenNetwork() {
WifiConfiguration configuration = createPskNetwork();
@@ -500,6 +506,15 @@ public class WifiConfigurationTestUtil {
}
/**
+ * Gets scan result capabilities for a WPA2/WPA3-Transition mode network configuration
+ */
+ private static String
+ getScanResultCapsForWpa2Wpa3TransitionNetwork(WifiConfiguration configuration) {
+ String caps = "[RSN-PSK+SAE-CCMP]";
+ return caps;
+ }
+
+ /**
* Creates a scan detail corresponding to the provided network and given BSSID, etc.
*/
public static ScanDetail createScanDetailForNetwork(
@@ -511,6 +526,19 @@ public class WifiConfigurationTestUtil {
}
/**
+ * Creates a scan detail corresponding to the provided network and given BSSID, but sets
+ * the capabilities to WPA2/WPA3-Transition mode network.
+ */
+ public static ScanDetail createScanDetailForWpa2Wpa3TransitionModeNetwork(
+ WifiConfiguration configuration, String bssid, int level, int frequency,
+ long tsf, long seen) {
+ String caps = getScanResultCapsForWpa2Wpa3TransitionNetwork(configuration);
+ WifiSsid ssid = WifiSsid.createFromAsciiEncoded(configuration.getPrintableSsid());
+ return new ScanDetail(ssid, bssid, caps, level, frequency, tsf, seen);
+ }
+
+
+ /**
* Asserts that the 2 WifiConfigurations are equal in the elements saved for both backup/restore
* and config store.
*/