diff options
author | Glen Kuhne <kuh@google.com> | 2016-08-01 09:14:29 -0700 |
---|---|---|
committer | Glen Kuhne <kuh@google.com> | 2016-08-26 13:28:13 -0700 |
commit | 59f9a74676831ba4634b35d56a1e2bbe9bf4e322 (patch) | |
tree | 2a28e2860b7d6fce47b1be3d5b20c45f95b6678d /tests | |
parent | f1d69ca299ecdb8c0b2721533c448870a07c2294 (diff) |
WiFiMetrics: Count hidden & passpoint networks
1. Extended the WiFiMetrics proto to include counts for hidden and
passpoint networks, counting these for all saved networks, connections
and scan results.
2. Extended the counting of Open, Personal and Enterprise network to
include scans.
3. Extended ConnectionEvent logging to detect and flag passpoint network
connections.
4. Implemented the checks that detect if a scan Result is a hidden network.
While I was here: Cleaned up a couple old WifiMetrics <TODO>s, which we will not be doing.
BUG=28634987
Change-Id: I2e22bf8d79ccbda84ead700272ff0f1b0f13d2e7
Test: Extended unit tests, executed manually
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java index 6f4e106a9..93742bec5 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java @@ -33,6 +33,8 @@ import org.mockito.MockitoAnnotations; import java.io.ByteArrayOutputStream; import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -143,6 +145,8 @@ public class WifiMetricsTest { private static final int NUM_OPEN_NETWORKS = 2; private static final int NUM_PERSONAL_NETWORKS = 3; private static final int NUM_ENTERPRISE_NETWORKS = 5; + private static final int NUM_HIDDEN_NETWORKS = 3; + private static final int NUM_PASSPOINT_NETWORKS = 4; private static final boolean TEST_VAL_IS_LOCATION_ENABLED = true; private static final boolean IS_SCANNING_ALWAYS_ENABLED = true; private static final int NUM_NEWTORKS_ADDED_BY_USER = 13; @@ -174,6 +178,44 @@ public class WifiMetricsTest { private static final int NUM_LAST_RESORT_WATCHDOG_SUCCESSES = 5; private static final int NUM_RSSI_LEVELS_TO_INCREMENT = 20; private static final int FIRST_RSSI_LEVEL = -80; + private static final int NUM_OPEN_NETWORK_SCAN_RESULTS = 1; + private static final int NUM_PERSONAL_NETWORK_SCAN_RESULTS = 4; + private static final int NUM_ENTERPRISE_NETWORK_SCAN_RESULTS = 3; + private static final int NUM_HIDDEN_NETWORK_SCAN_RESULTS = 1; + private static final int NUM_HOTSPOT2_R1_NETWORK_SCAN_RESULTS = 1; + private static final int NUM_HOTSPOT2_R2_NETWORK_SCAN_RESULTS = 2; + private static final int NUM_SCANS = 5; + private static final int NUM_TOTAL_SCAN_RESULTS = 8; + + private ScanDetail buildMockScanDetail(boolean hidden, NetworkDetail.HSRelease hSRelease, + String capabilities) { + ScanDetail mockScanDetail = mock(ScanDetail.class); + NetworkDetail mockNetworkDetail = mock(NetworkDetail.class); + ScanResult mockScanResult = mock(ScanResult.class); + when(mockScanDetail.getNetworkDetail()).thenReturn(mockNetworkDetail); + when(mockScanDetail.getScanResult()).thenReturn(mockScanResult); + when(mockNetworkDetail.isHiddenBeaconFrame()).thenReturn(hidden); + when(mockNetworkDetail.getHSRelease()).thenReturn(hSRelease); + mockScanResult.capabilities = capabilities; + return mockScanDetail; + } + + private List<ScanDetail> buildMockScanDetailList() { + List<ScanDetail> mockScanDetails = new ArrayList<ScanDetail>(); + mockScanDetails.add(buildMockScanDetail(true, null, "[ESS]")); + mockScanDetails.add(buildMockScanDetail(false, null, "[WPA2-PSK-CCMP][ESS]")); + mockScanDetails.add(buildMockScanDetail(false, null, "[WPA-PSK-CCMP]")); + mockScanDetails.add(buildMockScanDetail(false, null, "[WPA-PSK-CCMP]")); + mockScanDetails.add(buildMockScanDetail(false, null, "[WEP]")); + mockScanDetails.add(buildMockScanDetail(false, NetworkDetail.HSRelease.R2, + "[WPA-EAP-CCMP]")); + mockScanDetails.add(buildMockScanDetail(false, NetworkDetail.HSRelease.R2, + "[WPA2-EAP+FT/EAP-CCMP]")); + mockScanDetails.add(buildMockScanDetail(false, NetworkDetail.HSRelease.R1, + "[WPA-EAP-CCMP]")); + return mockScanDetails; + } + /** * Set simple metrics, increment others */ @@ -182,6 +224,8 @@ public class WifiMetricsTest { mWifiMetrics.setNumOpenNetworks(NUM_OPEN_NETWORKS); mWifiMetrics.setNumPersonalNetworks(NUM_PERSONAL_NETWORKS); mWifiMetrics.setNumEnterpriseNetworks(NUM_ENTERPRISE_NETWORKS); + mWifiMetrics.setNumHiddenNetworks(NUM_HIDDEN_NETWORKS); + mWifiMetrics.setNumPasspointNetworks(NUM_PASSPOINT_NETWORKS); mWifiMetrics.setNumNetworksAddedByUser(NUM_NEWTORKS_ADDED_BY_USER); mWifiMetrics.setNumNetworksAddedByApps(NUM_NEWTORKS_ADDED_BY_APPS); mWifiMetrics.setIsLocationEnabled(TEST_VAL_IS_LOCATION_ENABLED); @@ -272,6 +316,10 @@ public class WifiMetricsTest { mWifiMetrics.incrementAlertReasonCount(1); mWifiMetrics.incrementAlertReasonCount(1); mWifiMetrics.incrementAlertReasonCount(2); + List<ScanDetail> mockScanDetails = buildMockScanDetailList(); + for (int i = 0; i < NUM_SCANS; i++) { + mWifiMetrics.countScanResults(mockScanDetails); + } } /** @@ -290,6 +338,8 @@ public class WifiMetricsTest { assertEquals("mDeserializedWifiMetrics.numNetworksAddedByUser " + "== NUM_NEWTORKS_ADDED_BY_USER", mDeserializedWifiMetrics.numNetworksAddedByUser, NUM_NEWTORKS_ADDED_BY_USER); + assertEquals(NUM_HIDDEN_NETWORKS, mDeserializedWifiMetrics.numHiddenNetworks); + assertEquals(NUM_PASSPOINT_NETWORKS, mDeserializedWifiMetrics.numPasspointNetworks); assertEquals("mDeserializedWifiMetrics.numNetworksAddedByApps " + "== NUM_NEWTORKS_ADDED_BY_APPS", mDeserializedWifiMetrics.numNetworksAddedByApps, NUM_NEWTORKS_ADDED_BY_APPS); @@ -359,6 +409,22 @@ public class WifiMetricsTest { assertEquals(3, mDeserializedWifiMetrics.alertReasonCount[1].count); assertEquals(1, mDeserializedWifiMetrics.alertReasonCount[2].count); assertEquals(3, mDeserializedWifiMetrics.alertReasonCount.length); + assertEquals(NUM_TOTAL_SCAN_RESULTS * NUM_SCANS, + mDeserializedWifiMetrics.numTotalScanResults); + assertEquals(NUM_OPEN_NETWORK_SCAN_RESULTS * NUM_SCANS, + mDeserializedWifiMetrics.numOpenNetworkScanResults); + assertEquals(NUM_PERSONAL_NETWORK_SCAN_RESULTS * NUM_SCANS, + mDeserializedWifiMetrics.numPersonalNetworkScanResults); + assertEquals(NUM_ENTERPRISE_NETWORK_SCAN_RESULTS * NUM_SCANS, + mDeserializedWifiMetrics.numEnterpriseNetworkScanResults); + assertEquals(NUM_HIDDEN_NETWORK_SCAN_RESULTS * NUM_SCANS, + mDeserializedWifiMetrics.numHiddenNetworkScanResults); + assertEquals(NUM_HOTSPOT2_R1_NETWORK_SCAN_RESULTS * NUM_SCANS, + mDeserializedWifiMetrics.numHotspot2R1NetworkScanResults); + assertEquals(NUM_HOTSPOT2_R2_NETWORK_SCAN_RESULTS * NUM_SCANS, + mDeserializedWifiMetrics.numHotspot2R2NetworkScanResults); + assertEquals(NUM_SCANS, + mDeserializedWifiMetrics.numScans); } /** |