diff options
Diffstat (limited to 'tests/wifitests/src/com')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/ScanResultMatchInfoTest.java | 132 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiConfigurationTestUtil.java | 28 |
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. */ |