diff options
author | Ecco Park <eccopark@google.com> | 2018-07-23 15:50:56 -0700 |
---|---|---|
committer | Ecco Park <eccopark@google.com> | 2018-07-31 14:02:24 -0700 |
commit | aa7c4ae667d9c2e6d50fcf4acd5453544c854185 (patch) | |
tree | 3ab9f8c0e533b55b7b5ebbf3fdd103233613fc70 /tests | |
parent | 4fc8cdcbb46c788d3e55e23b8cd1dbe061369bc8 (diff) |
passpoint-r1: add the metrics for installed passpoint profile type
add count for each EAP method type for installed passpoint profiles.
Bug: 111473296
Test:./frameworks/opt/net/wifi/tests/wifitests/runtests.sh
Test: adb shell dumpsys wifi
captured the print line like below after intalling passpoint profile for
EAP_TTLS.
mWifiLogProto.installedPasspointProfileType:
EAP_METHOD (2): 1
captured the print line after removing the profile.
mWifiLogProto.installedPasspointProfileType
Merged-In: Ica6cbd87cc003f02da47c58cb51b56cff9433789
Change-Id: Ica6cbd87cc003f02da47c58cb51b56cff9433789
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java | 81 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java | 12 |
2 files changed, 89 insertions, 4 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java index 2a60a1096..5646efc62 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiMetricsTest.java @@ -18,21 +18,26 @@ package com.android.server.wifi; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import android.net.NetworkAgent; +import android.net.wifi.EAPConstants; import android.net.wifi.ScanResult; import android.net.wifi.SupplicantState; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiManager; import android.net.wifi.WifiSsid; +import android.net.wifi.hotspot2.PasspointConfiguration; +import android.net.wifi.hotspot2.pps.Credential; import android.os.Handler; import android.os.test.TestLooper; import android.support.test.filters.SmallTest; import android.util.Base64; import android.util.Pair; +import android.util.SparseIntArray; import com.android.server.wifi.aware.WifiAwareMetrics; import com.android.server.wifi.hotspot2.NetworkDetail; @@ -41,6 +46,7 @@ import com.android.server.wifi.hotspot2.PasspointMatch; import com.android.server.wifi.hotspot2.PasspointProvider; import com.android.server.wifi.nano.WifiMetricsProto; import com.android.server.wifi.nano.WifiMetricsProto.ConnectToNetworkNotificationAndActionCount; +import com.android.server.wifi.nano.WifiMetricsProto.PasspointProfileTypeCount; import com.android.server.wifi.nano.WifiMetricsProto.PnoScanMetrics; import com.android.server.wifi.nano.WifiMetricsProto.SoftApConnectedClientsEvent; import com.android.server.wifi.nano.WifiMetricsProto.StaEvent; @@ -58,7 +64,9 @@ import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; import java.util.BitSet; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -269,12 +277,26 @@ public class WifiMetricsTest { private static final int NUM_SOFTAP_ON_FAILURE_DUE_TO_HOSTAPD = 31; private static final int NUM_SOFTAP_INTERFACE_DOWN = 65; private static final int NUM_CLIENT_INTERFACE_DOWN = 12; - private static final int NUM_PASSPOINT_PROVIDERS = 4; + private static final int NUM_PASSPOINT_PROVIDERS = 7; private static final int NUM_PASSPOINT_PROVIDER_INSTALLATION = 5; private static final int NUM_PASSPOINT_PROVIDER_INSTALL_SUCCESS = 4; private static final int NUM_PASSPOINT_PROVIDER_UNINSTALLATION = 3; private static final int NUM_PASSPOINT_PROVIDER_UNINSTALL_SUCCESS = 2; private static final int NUM_PASSPOINT_PROVIDERS_SUCCESSFULLY_CONNECTED = 1; + private static final int NUM_EAP_SIM_TYPE = 1; + private static final int NUM_EAP_TTLS_TYPE = 2; + private static final int NUM_EAP_TLS_TYPE = 3; + private static final int NUM_EAP_AKA_TYPE = 4; + private static final int NUM_EAP_AKA_PRIME_TYPE = 5; + private static final SparseIntArray SAVED_PASSPOINT_PROVIDERS_TYPE = new SparseIntArray(); + static { + SAVED_PASSPOINT_PROVIDERS_TYPE.put(EAPConstants.EAP_SIM, NUM_EAP_SIM_TYPE); + SAVED_PASSPOINT_PROVIDERS_TYPE.put(EAPConstants.EAP_TTLS, NUM_EAP_TTLS_TYPE); + SAVED_PASSPOINT_PROVIDERS_TYPE.put(EAPConstants.EAP_TLS, NUM_EAP_TLS_TYPE); + SAVED_PASSPOINT_PROVIDERS_TYPE.put(EAPConstants.EAP_AKA, NUM_EAP_AKA_TYPE); + SAVED_PASSPOINT_PROVIDERS_TYPE.put(EAPConstants.EAP_AKA_PRIME, NUM_EAP_AKA_PRIME_TYPE); + } + private static final int NUM_PARTIAL_SCAN_RESULTS = 73; private static final int NUM_PNO_SCAN_ATTEMPTS = 20; private static final int NUM_PNO_SCAN_FAILED = 5; @@ -404,13 +426,48 @@ public class WifiMetricsTest { return testSavedNetworks; } + private PasspointProvider createMockProvider(int eapType) { + PasspointProvider provider = mock(PasspointProvider.class); + PasspointConfiguration config = new PasspointConfiguration(); + Credential credential = new Credential(); + + config.setCredential(credential); + switch (eapType) { + case EAPConstants.EAP_TLS: + credential.setCertCredential(new Credential.CertificateCredential()); + break; + case EAPConstants.EAP_TTLS: + credential.setUserCredential(new Credential.UserCredential()); + break; + case EAPConstants.EAP_AKA: + case EAPConstants.EAP_AKA_PRIME: + case EAPConstants.EAP_SIM: + Credential.SimCredential simCredential = new Credential.SimCredential(); + simCredential.setEapType(eapType); + credential.setSimCredential(simCredential); + break; + } + when(provider.getConfig()).thenReturn(config); + return provider; + } + /** * Set simple metrics, increment others */ public void setAndIncrementMetrics() throws Exception { + Map<String, PasspointProvider> providers = new HashMap<>(); mWifiMetrics.updateSavedNetworks(buildSavedNetworkList()); mWifiMetrics.updateSavedPasspointProfiles(NUM_PASSPOINT_PROVIDERS, NUM_PASSPOINT_PROVIDERS_SUCCESSFULLY_CONNECTED); + for (int i = 0; i < SAVED_PASSPOINT_PROVIDERS_TYPE.size(); i++) { + int eapType = SAVED_PASSPOINT_PROVIDERS_TYPE.keyAt(i); + int count = SAVED_PASSPOINT_PROVIDERS_TYPE.valueAt(i); + for (int j = 0; j < count; j++) { + providers.put(Integer.toString(eapType) + j, createMockProvider(eapType)); + } + } + mWifiMetrics.updateSavedPasspointProfilesInfo(providers); + mWifiMetrics.setIsLocationEnabled(TEST_VAL_IS_LOCATION_ENABLED); mWifiMetrics.setIsScanningAlwaysEnabled(IS_SCANNING_ALWAYS_ENABLED); @@ -898,6 +955,28 @@ public class WifiMetricsTest { assertEquals(NUM_CLIENT_INTERFACE_DOWN, mDecodedProto.numClientInterfaceDown); assertEquals(NUM_SOFTAP_INTERFACE_DOWN, mDecodedProto.numSoftApInterfaceDown); assertEquals(NUM_PASSPOINT_PROVIDERS, mDecodedProto.numPasspointProviders); + for (PasspointProfileTypeCount passpointProfileType : mDecodedProto + .installedPasspointProfileType) { + switch(passpointProfileType.eapMethodType) { + case PasspointProfileTypeCount.TYPE_EAP_AKA: + assertEquals(NUM_EAP_AKA_TYPE, passpointProfileType.count); + break; + case PasspointProfileTypeCount.TYPE_EAP_AKA_PRIME: + assertEquals(NUM_EAP_AKA_PRIME_TYPE, passpointProfileType.count); + break; + case PasspointProfileTypeCount.TYPE_EAP_SIM: + assertEquals(NUM_EAP_SIM_TYPE, passpointProfileType.count); + break; + case PasspointProfileTypeCount.TYPE_EAP_TLS: + assertEquals(NUM_EAP_TLS_TYPE, passpointProfileType.count); + break; + case PasspointProfileTypeCount.TYPE_EAP_TTLS: + assertEquals(NUM_EAP_TTLS_TYPE, passpointProfileType.count); + break; + default: + fail("unknown type counted"); + } + } assertEquals(NUM_PASSPOINT_PROVIDER_INSTALLATION, mDecodedProto.numPasspointProviderInstallation); assertEquals(NUM_PASSPOINT_PROVIDER_INSTALL_SUCCESS, diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java index 2a76d6a32..abcd0bf34 100644 --- a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java @@ -284,6 +284,7 @@ public class PasspointManagerTest { PasspointProvider provider = createMockProvider(config); when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore), eq(mSimAccessor), anyLong(), eq(TEST_CREATOR_UID))).thenReturn(provider); + assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID)); return provider; @@ -1378,9 +1379,10 @@ public class PasspointManagerTest { * @throws Exception */ @Test - public void updateMetrics() throws Exception { + public void updateMetrics() { PasspointProvider provider = addTestProvider(TEST_FQDN); - + ArgumentCaptor<Map<String, PasspointProvider>> argCaptor = ArgumentCaptor.forClass( + Map.class); // Provider have not provided a successful network connection. int expectedInstalledProviders = 1; int expectedConnectedProviders = 0; @@ -1388,7 +1390,10 @@ public class PasspointManagerTest { mManager.updateMetrics(); verify(mWifiMetrics).updateSavedPasspointProfiles( eq(expectedInstalledProviders), eq(expectedConnectedProviders)); - reset(provider); + + verify(mWifiMetrics).updateSavedPasspointProfilesInfo(argCaptor.capture()); + assertEquals(expectedInstalledProviders, argCaptor.getValue().size()); + assertEquals(provider, argCaptor.getValue().get(TEST_FQDN)); reset(mWifiMetrics); // Provider have provided a successful network connection. @@ -1398,6 +1403,7 @@ public class PasspointManagerTest { verify(mWifiMetrics).updateSavedPasspointProfiles( eq(expectedInstalledProviders), eq(expectedConnectedProviders)); } + /** * Verify Passpoint Manager's provisioning APIs by invoking methods in PasspointProvisioner for * initiailization and provisioning a provider. |