diff options
author | Hai Shalom <haishalom@google.com> | 2019-12-04 15:50:30 -0800 |
---|---|---|
committer | Hai Shalom <haishalom@google.com> | 2019-12-18 11:48:51 -0800 |
commit | c23e1d94cd58c79d2e996707efdbd89e2a059224 (patch) | |
tree | 64a266b6589b365f9c356fbdbcd7f022114aa679 /tests | |
parent | 1d09a9de33cf6c14ff91b97855d0179cd4609fbf (diff) |
[DPP R2] Added support for DPP R2 events
Added support for DPP R2 events that provide additional
details about the onboarding process of a remote enrollee.
Specifically, DPP R2 configurator waits for response from
the enrollee, which reports back the SSID, tried channels
and band support in case it cannot find the AP. When it
reports success, then it means that it is acutally connected.
Bug: 139381558
Test: Manual tests with DPP R1 and R2 enrollees
Test: atest DppManagerTest
Test: atest WifiManagerTest
Test: atest EasyConnectStatusCallbackTest
Test: act.py -c ../WifiDppConfig.json -tc WifiDppTest
Change-Id: I8d2ac629ce309f615fb53fad0136ad2611fb69fe
Diffstat (limited to 'tests')
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/DppManagerTest.java | 247 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java | 3 |
2 files changed, 177 insertions, 73 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/DppManagerTest.java b/tests/wifitests/src/com/android/server/wifi/DppManagerTest.java index 9aaaca28a..9bfa9b6a2 100644 --- a/tests/wifitests/src/com/android/server/wifi/DppManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/DppManagerTest.java @@ -18,25 +18,38 @@ package com.android.server.wifi; import static android.hardware.wifi.supplicant.V1_2.DppAkm.PSK; import static android.hardware.wifi.supplicant.V1_2.DppAkm.SAE; -import static android.hardware.wifi.supplicant.V1_2.DppFailureCode.AUTHENTICATION; -import static android.hardware.wifi.supplicant.V1_2.DppFailureCode.BUSY; -import static android.hardware.wifi.supplicant.V1_2.DppFailureCode.CONFIGURATION; -import static android.hardware.wifi.supplicant.V1_2.DppFailureCode.FAILURE; -import static android.hardware.wifi.supplicant.V1_2.DppFailureCode.NOT_COMPATIBLE; -import static android.hardware.wifi.supplicant.V1_2.DppFailureCode.NOT_SUPPORTED; -import static android.hardware.wifi.supplicant.V1_2.DppFailureCode.TIMEOUT; -import static android.hardware.wifi.supplicant.V1_2.DppProgressCode.AUTHENTICATION_SUCCESS; -import static android.hardware.wifi.supplicant.V1_2.DppProgressCode.RESPONSE_PENDING; +import static android.hardware.wifi.supplicant.V1_3.DppFailureCode.AUTHENTICATION; +import static android.hardware.wifi.supplicant.V1_3.DppFailureCode.BUSY; +import static android.hardware.wifi.supplicant.V1_3.DppFailureCode.CANNOT_FIND_NETWORK; +import static android.hardware.wifi.supplicant.V1_3.DppFailureCode.CONFIGURATION; +import static android.hardware.wifi.supplicant.V1_3.DppFailureCode.CONFIGURATION_REJECTED; +import static android.hardware.wifi.supplicant.V1_3.DppFailureCode.ENROLLEE_AUTHENTICATION; +import static android.hardware.wifi.supplicant.V1_3.DppFailureCode.FAILURE; +import static android.hardware.wifi.supplicant.V1_3.DppFailureCode.NOT_COMPATIBLE; +import static android.hardware.wifi.supplicant.V1_3.DppFailureCode.NOT_SUPPORTED; +import static android.hardware.wifi.supplicant.V1_3.DppFailureCode.TIMEOUT; +import static android.hardware.wifi.supplicant.V1_3.DppProgressCode.AUTHENTICATION_SUCCESS; +import static android.hardware.wifi.supplicant.V1_3.DppProgressCode.CONFIGURATION_ACCEPTED; +import static android.hardware.wifi.supplicant.V1_3.DppProgressCode.CONFIGURATION_SENT_WAITING_RESPONSE; +import static android.hardware.wifi.supplicant.V1_3.DppProgressCode.RESPONSE_PENDING; +import static android.hardware.wifi.supplicant.V1_3.DppSuccessCode.CONFIGURATION_APPLIED; +import static android.hardware.wifi.supplicant.V1_3.DppSuccessCode.CONFIGURATION_SENT; import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION; import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_BUSY; +import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_CANNOT_FIND_NETWORK; import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_CONFIGURATION; +import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_ENROLLEE_AUTHENTICATION; +import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_ENROLLEE_REJECTED_CONFIGURATION; import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_GENERIC; import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK; import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_NOT_COMPATIBLE; import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_NOT_SUPPORTED; import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_TIMEOUT; import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_PROGRESS_AUTHENTICATION_SUCCESS; +import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_PROGRESS_CONFIGURATION_ACCEPTED; +import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_PROGRESS_CONFIGURATION_SENT_WAITING_RESPONSE; import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_PROGRESS_RESPONSE_PENDING; +import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_APPLIED; import static android.net.wifi.EasyConnectStatusCallback.EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT; import static android.net.wifi.WifiManager.EASY_CONNECT_NETWORK_ROLE_STA; @@ -153,12 +166,13 @@ public class DppManagerTest extends WifiBaseTest { EASY_CONNECT_NETWORK_ROLE_STA, mDppCallback); verify(mDppCallback).onFailure( - EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK); + eq(EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK), eq(null), + eq(null), eq(new int[0])); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mDppMetrics).updateDppConfiguratorInitiatorRequests(); - verify(mDppMetrics).updateDppFailure(EasyConnectStatusCallback - .EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK); + verify(mDppMetrics).updateDppFailure(eq(EasyConnectStatusCallback + .EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK)); verifyNoMoreInteractions(mDppMetrics); } @@ -181,12 +195,13 @@ public class DppManagerTest extends WifiBaseTest { EASY_CONNECT_NETWORK_ROLE_STA, mDppCallback); verify(mDppCallback).onFailure( - EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_INVALID_URI); + eq(EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_INVALID_URI), eq(null), + eq(null), eq(new int[0])); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mDppMetrics).updateDppConfiguratorInitiatorRequests(); - verify(mDppMetrics).updateDppFailure(EasyConnectStatusCallback - .EASY_CONNECT_EVENT_FAILURE_INVALID_URI); + verify(mDppMetrics).updateDppFailure(eq(EasyConnectStatusCallback + .EASY_CONNECT_EVENT_FAILURE_INVALID_URI)); verify(mDppMetrics).updateDppOperationTime(anyInt()); verifyNoMoreInteractions(mDppMetrics); } @@ -198,12 +213,13 @@ public class DppManagerTest extends WifiBaseTest { mDppManager.startDppAsEnrolleeInitiator(0, mBinder, mUri, mDppCallback); verify(mDppCallback).onFailure( - EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_INVALID_URI); + eq(EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_INVALID_URI), eq(null), + eq(null), eq(new int[0])); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mDppMetrics).updateDppEnrolleeInitiatorRequests(); - verify(mDppMetrics).updateDppFailure(EasyConnectStatusCallback - .EASY_CONNECT_EVENT_FAILURE_INVALID_URI); + verify(mDppMetrics).updateDppFailure(eq(EasyConnectStatusCallback + .EASY_CONNECT_EVENT_FAILURE_INVALID_URI)); verify(mDppMetrics).updateDppOperationTime(anyInt()); verifyNoMoreInteractions(mDppMetrics); } @@ -227,11 +243,12 @@ public class DppManagerTest extends WifiBaseTest { mDppManager.startDppAsConfiguratorInitiator(0, mBinder, mUri, 1, EASY_CONNECT_NETWORK_ROLE_STA, mDppCallback); - verify(mDppCallback).onFailure(EASY_CONNECT_EVENT_FAILURE_GENERIC); + verify(mDppCallback).onFailure(eq(EASY_CONNECT_EVENT_FAILURE_GENERIC), eq(null), + eq(null), eq(new int[0])); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mDppMetrics).updateDppConfiguratorInitiatorRequests(); - verify(mDppMetrics).updateDppFailure(EASY_CONNECT_EVENT_FAILURE_GENERIC); + verify(mDppMetrics).updateDppFailure(eq(EASY_CONNECT_EVENT_FAILURE_GENERIC)); verify(mDppMetrics).updateDppOperationTime(anyInt()); verifyNoMoreInteractions(mDppMetrics); } @@ -243,11 +260,12 @@ public class DppManagerTest extends WifiBaseTest { false); mDppManager.startDppAsEnrolleeInitiator(0, mBinder, mUri, mDppCallback); - verify(mDppCallback).onFailure(EASY_CONNECT_EVENT_FAILURE_GENERIC); + verify(mDppCallback).onFailure(eq(EASY_CONNECT_EVENT_FAILURE_GENERIC), eq(null), + eq(null), eq(new int[0])); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mDppMetrics).updateDppEnrolleeInitiatorRequests(); - verify(mDppMetrics).updateDppFailure(EASY_CONNECT_EVENT_FAILURE_GENERIC); + verify(mDppMetrics).updateDppFailure(eq(EASY_CONNECT_EVENT_FAILURE_GENERIC)); verify(mDppMetrics).updateDppOperationTime(anyInt()); verifyNoMoreInteractions(mDppMetrics); } @@ -267,7 +285,7 @@ public class DppManagerTest extends WifiBaseTest { mDppManager.startDppAsConfiguratorInitiator(0, mBinder, mUri, 1, EASY_CONNECT_NETWORK_ROLE_STA, mDppCallback); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mWifiNative).startDppConfiguratorInitiator(eq(TEST_INTERFACE_NAME), @@ -292,7 +310,7 @@ public class DppManagerTest extends WifiBaseTest { mDppManager.startDppAsConfiguratorInitiator(0, mBinder, mUri, 1, EASY_CONNECT_NETWORK_ROLE_STA, mDppCallback); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mWifiNative).startDppConfiguratorInitiator(eq(TEST_INTERFACE_NAME), @@ -316,12 +334,13 @@ public class DppManagerTest extends WifiBaseTest { mDppManager.startDppAsConfiguratorInitiator(0, mBinder, mUri, 1, EASY_CONNECT_NETWORK_ROLE_STA, mDppCallback); - verify(mDppCallback).onFailure(EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK); + verify(mDppCallback).onFailure(eq(EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK), eq(null), + eq(null), eq(new int[0])); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mDppMetrics).updateDppConfiguratorInitiatorRequests(); - verify(mDppMetrics).updateDppFailure(EasyConnectStatusCallback - .EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK); + verify(mDppMetrics).updateDppFailure(eq(EasyConnectStatusCallback + .EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK)); verifyNoMoreInteractions(mDppMetrics); } @@ -339,19 +358,20 @@ public class DppManagerTest extends WifiBaseTest { mDppManager.startDppAsConfiguratorInitiator(0, mBinder, mUri, 1, EASY_CONNECT_NETWORK_ROLE_STA, mDppCallback); - verify(mDppCallback).onFailure(EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK); + verify(mDppCallback).onFailure(eq(EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK), eq(null), + eq(null), eq(new int[0])); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mDppMetrics).updateDppConfiguratorInitiatorRequests(); - verify(mDppMetrics).updateDppFailure(EasyConnectStatusCallback - .EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK); + verify(mDppMetrics).updateDppFailure(eq(EasyConnectStatusCallback + .EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK)); verifyNoMoreInteractions(mDppMetrics); } @Test public void testStartDppAsEnrolleeInitiatorStartCorrectly() throws Exception { mDppManager.startDppAsEnrolleeInitiator(0, mBinder, mUri, mDppCallback); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mWifiNative).startDppEnrolleeInitiator(eq(TEST_INTERFACE_NAME), @@ -374,9 +394,8 @@ public class DppManagerTest extends WifiBaseTest { selectedNetwork); mDppManager.startDppAsConfiguratorInitiator(0, mBinder, mUri, 1, - EASY_CONNECT_NETWORK_ROLE_STA, - mDppCallback); - verify(mDppCallback, never()).onFailure(anyInt()); + EASY_CONNECT_NETWORK_ROLE_STA, mDppCallback); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mWifiNative).startDppConfiguratorInitiator(eq(TEST_INTERFACE_NAME), @@ -386,11 +405,12 @@ public class DppManagerTest extends WifiBaseTest { mDppManager.startDppAsConfiguratorInitiator(1, mBinder, mUri, 1, EASY_CONNECT_NETWORK_ROLE_STA, mDppCallbackConcurrent); - verify(mDppCallbackConcurrent).onFailure(EASY_CONNECT_EVENT_FAILURE_BUSY); + verify(mDppCallbackConcurrent).onFailure(eq(EASY_CONNECT_EVENT_FAILURE_BUSY), eq(null), + eq(null), eq(new int[0])); verify(mDppCallbackConcurrent, never()).onSuccess(anyInt()); verify(mDppCallbackConcurrent, never()).onSuccessConfigReceived(anyInt()); verify(mDppMetrics, times(2)).updateDppConfiguratorInitiatorRequests(); - verify(mDppMetrics).updateDppFailure(EASY_CONNECT_EVENT_FAILURE_BUSY); + verify(mDppMetrics).updateDppFailure(eq(EASY_CONNECT_EVENT_FAILURE_BUSY)); verifyNoMoreInteractions(mDppMetrics); } @@ -398,18 +418,19 @@ public class DppManagerTest extends WifiBaseTest { public void testStartDppAsEnrolleeInitiatorStartCorrectlyAndRejectConcurrentRequest() throws Exception { mDppManager.startDppAsEnrolleeInitiator(0, mBinder, mUri, mDppCallback); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mWifiNative).startDppEnrolleeInitiator(eq(TEST_INTERFACE_NAME), eq(TEST_PEER_ID), anyInt()); mDppManager.startDppAsEnrolleeInitiator(1, mBinder, mUri, mDppCallbackConcurrent); - verify(mDppCallbackConcurrent).onFailure(EASY_CONNECT_EVENT_FAILURE_BUSY); + verify(mDppCallbackConcurrent).onFailure(eq(EASY_CONNECT_EVENT_FAILURE_BUSY), eq(null), + eq(null), eq(new int[0])); verify(mDppCallbackConcurrent, never()).onSuccess(anyInt()); verify(mDppCallbackConcurrent, never()).onSuccessConfigReceived(anyInt()); verify(mDppMetrics, times(2)).updateDppEnrolleeInitiatorRequests(); - verify(mDppMetrics).updateDppFailure(EASY_CONNECT_EVENT_FAILURE_BUSY); + verify(mDppMetrics).updateDppFailure(eq(EASY_CONNECT_EVENT_FAILURE_BUSY)); verifyNoMoreInteractions(mDppMetrics); } @@ -432,7 +453,7 @@ public class DppManagerTest extends WifiBaseTest { mDppManager.startDppAsConfiguratorInitiator(0, mBinder, mUri, 1, EASY_CONNECT_NETWORK_ROLE_STA, mDppCallback); verify(mWifiNative).registerDppEventCallback(dppEventCallbackCaptor.capture()); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mWifiNative).startDppConfiguratorInitiator(eq(TEST_INTERFACE_NAME), @@ -445,17 +466,17 @@ public class DppManagerTest extends WifiBaseTest { // Generate a progress event dppEventCallback.onProgress(AUTHENTICATION_SUCCESS); mLooper.dispatchAll(); - verify(mDppCallback).onProgress(EASY_CONNECT_EVENT_PROGRESS_AUTHENTICATION_SUCCESS); + verify(mDppCallback).onProgress(eq(EASY_CONNECT_EVENT_PROGRESS_AUTHENTICATION_SUCCESS)); // Generate an onSuccess callback - dppEventCallback.onSuccessConfigSent(); + dppEventCallback.onSuccess(CONFIGURATION_SENT); mLooper.dispatchAll(); - verify(mDppCallback).onSuccess(EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT); + verify(mDppCallback).onSuccess(eq(EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT)); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppMetrics).updateDppConfiguratorInitiatorRequests(); - verify(mDppMetrics).updateDppConfiguratorSuccess(EasyConnectStatusCallback - .EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT); + verify(mDppMetrics).updateDppConfiguratorSuccess(eq(EasyConnectStatusCallback + .EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT)); verify(mDppMetrics).updateDppOperationTime(anyInt()); verifyNoMoreInteractions(mDppMetrics); } @@ -468,7 +489,7 @@ public class DppManagerTest extends WifiBaseTest { mDppManager.startDppAsEnrolleeInitiator(0, mBinder, mUri, mDppCallback); verify(mWifiNative).registerDppEventCallback(dppEventCallbackCaptor.capture()); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mWifiNative).startDppEnrolleeInitiator(eq(TEST_INTERFACE_NAME), @@ -487,7 +508,7 @@ public class DppManagerTest extends WifiBaseTest { // Generate a progress event dppEventCallback.onProgress(AUTHENTICATION_SUCCESS); mLooper.dispatchAll(); - verify(mDppCallback).onProgress(EASY_CONNECT_EVENT_PROGRESS_AUTHENTICATION_SUCCESS); + verify(mDppCallback).onProgress(eq(EASY_CONNECT_EVENT_PROGRESS_AUTHENTICATION_SUCCESS)); // Generate result NetworkUpdateResult networkUpdateResult = new NetworkUpdateResult(TEST_NETWORK_ID); @@ -496,9 +517,9 @@ public class DppManagerTest extends WifiBaseTest { dppEventCallback.onSuccessConfigReceived(selectedNetwork); mLooper.dispatchAll(); - verify(mDppCallback).onSuccessConfigReceived(TEST_NETWORK_ID); + verify(mDppCallback).onSuccessConfigReceived(eq(TEST_NETWORK_ID)); verify(mDppCallback, never()).onSuccess(anyInt()); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppMetrics).updateDppEnrolleeInitiatorRequests(); verify(mDppMetrics).updateDppEnrolleeSuccess(); verify(mDppMetrics).updateDppOperationTime(anyInt()); @@ -525,7 +546,7 @@ public class DppManagerTest extends WifiBaseTest { EASY_CONNECT_NETWORK_ROLE_STA, mDppCallback); verify(mWifiNative).registerDppEventCallback(dppEventCallbackCaptor.capture()); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mWifiNative).startDppConfiguratorInitiator(eq(TEST_INTERFACE_NAME), @@ -538,17 +559,18 @@ public class DppManagerTest extends WifiBaseTest { // Generate a progress event dppEventCallback.onProgress(RESPONSE_PENDING); mLooper.dispatchAll(); - verify(mDppCallback).onProgress(EASY_CONNECT_EVENT_PROGRESS_RESPONSE_PENDING); + verify(mDppCallback).onProgress(eq(EASY_CONNECT_EVENT_PROGRESS_RESPONSE_PENDING)); // Generate an onFailure callback - dppEventCallback.onFailure(AUTHENTICATION); + dppEventCallback.onFailure(AUTHENTICATION, null, null, null); mLooper.dispatchAll(); - verify(mDppCallback).onFailure(EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION); + verify(mDppCallback).onFailure(eq(EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION), eq(null), + eq(null), eq(new int[0])); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mDppMetrics).updateDppConfiguratorInitiatorRequests(); - verify(mDppMetrics).updateDppFailure(EasyConnectStatusCallback - .EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION); + verify(mDppMetrics).updateDppFailure(eq(EasyConnectStatusCallback + .EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION)); verify(mDppMetrics).updateDppOperationTime(anyInt()); verifyNoMoreInteractions(mDppMetrics); verifyCleanUpResources(); @@ -575,7 +597,7 @@ public class DppManagerTest extends WifiBaseTest { mDppManager.startDppAsEnrolleeInitiator(0, mBinder, mUri, mDppCallback); verify(mWifiNative).registerDppEventCallback(dppEventCallbackCaptor.capture()); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mWifiNative).startDppEnrolleeInitiator(eq(TEST_INTERFACE_NAME), @@ -586,17 +608,18 @@ public class DppManagerTest extends WifiBaseTest { // Generate a progress event dppEventCallback.onProgress(RESPONSE_PENDING); mLooper.dispatchAll(); - verify(mDppCallback).onProgress(EASY_CONNECT_EVENT_PROGRESS_RESPONSE_PENDING); + verify(mDppCallback).onProgress(eq(EASY_CONNECT_EVENT_PROGRESS_RESPONSE_PENDING)); // Generate an onFailure callback - dppEventCallback.onFailure(AUTHENTICATION); + dppEventCallback.onFailure(AUTHENTICATION, null, null, null); mLooper.dispatchAll(); - verify(mDppCallback).onFailure(EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION); + verify(mDppCallback).onFailure(eq(EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION), eq(null), + eq(null), eq(new int[0])); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mDppMetrics).updateDppEnrolleeInitiatorRequests(); - verify(mDppMetrics).updateDppFailure(EasyConnectStatusCallback - .EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION); + verify(mDppMetrics).updateDppFailure(eq(EasyConnectStatusCallback + .EASY_CONNECT_EVENT_FAILURE_AUTHENTICATION)); verify(mDppMetrics).updateDppOperationTime(anyInt()); verifyNoMoreInteractions(mDppMetrics); verifyCleanUpResources(); @@ -636,7 +659,7 @@ public class DppManagerTest extends WifiBaseTest { // Start with UID 10 mDppManager.startDppAsEnrolleeInitiator(10, mBinder, mUri, mDppCallback); verify(mWifiNative).registerDppEventCallback(dppEventCallbackCaptor.capture()); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mWifiNative).startDppEnrolleeInitiator(eq(TEST_INTERFACE_NAME), @@ -671,7 +694,7 @@ public class DppManagerTest extends WifiBaseTest { // Start with UID 10 mDppManager.startDppAsEnrolleeInitiator(10, mBinder, mUri, mDppCallback); verify(mWifiNative).registerDppEventCallback(dppEventCallbackCaptor.capture()); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mWifiNative).startDppEnrolleeInitiator(eq(TEST_INTERFACE_NAME), @@ -679,7 +702,7 @@ public class DppManagerTest extends WifiBaseTest { // Check that WifiNative is called to stop the DPP session mDppManager.stopDppSession(10); - verify(mWifiNative).stopDppInitiator(TEST_INTERFACE_NAME); + verify(mWifiNative).stopDppInitiator(eq(TEST_INTERFACE_NAME)); verifyCleanUpResources(); } @@ -718,25 +741,46 @@ public class DppManagerTest extends WifiBaseTest { testOnFailureCallback(FAILURE, EASY_CONNECT_EVENT_FAILURE_GENERIC); } - private void testOnFailureCallback(int internalFailure, int appFailure) throws Exception { + @Test + public void testOnFailureCallbackCannotFindNetwork() throws Exception { + int[] bandList = new int[]{1, 6, 11}; + testOnFailureCallback(CANNOT_FIND_NETWORK, "SSID", "1, 3, 6, 8, 11", + bandList, EASY_CONNECT_EVENT_FAILURE_CANNOT_FIND_NETWORK); + } + + @Test + public void testOnFailureCallbackConfigurationRejected() throws Exception { + testOnFailureCallback(CONFIGURATION_REJECTED, + EASY_CONNECT_EVENT_FAILURE_ENROLLEE_REJECTED_CONFIGURATION); + } + + @Test + public void testOnFailureCallbackEnrolleeAuthentication() throws Exception { + int[] bandList = new int[]{1, 6, 11}; + testOnFailureCallback(ENROLLEE_AUTHENTICATION, new String("SSID"), null, + bandList, EASY_CONNECT_EVENT_FAILURE_ENROLLEE_AUTHENTICATION); + } + + @Test + public void testStartDppAsConfiguratorInitiatorStartOnSuccessCallbackR2() throws Exception { // Generate a mock WifiConfiguration object WifiConfiguration selectedNetwork = new WifiConfiguration(); selectedNetwork.SSID = TEST_SSID; - selectedNetwork.networkId = TEST_NETWORK_ID; + selectedNetwork.networkId = 1; selectedNetwork.preSharedKey = TEST_PASSWORD; selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE); when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn( selectedNetwork); + ArgumentCaptor<WifiNative.DppEventCallback> dppEventCallbackCaptor = ArgumentCaptor.forClass( WifiNative.DppEventCallback.class); mDppManager.startDppAsConfiguratorInitiator(0, mBinder, mUri, 1, - EASY_CONNECT_NETWORK_ROLE_STA, - mDppCallback); + EASY_CONNECT_NETWORK_ROLE_STA, mDppCallback); verify(mWifiNative).registerDppEventCallback(dppEventCallbackCaptor.capture()); - verify(mDppCallback, never()).onFailure(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mWifiNative).startDppConfiguratorInitiator(eq(TEST_INTERFACE_NAME), @@ -746,10 +790,65 @@ public class DppManagerTest extends WifiBaseTest { WifiNative.DppEventCallback dppEventCallback = dppEventCallbackCaptor.getValue(); + // Generate a progress events + dppEventCallback.onProgress(AUTHENTICATION_SUCCESS); + mLooper.dispatchAll(); + verify(mDppCallback).onProgress(eq(EASY_CONNECT_EVENT_PROGRESS_AUTHENTICATION_SUCCESS)); + + dppEventCallback.onProgress(CONFIGURATION_ACCEPTED); + mLooper.dispatchAll(); + verify(mDppCallback).onProgress(eq(EASY_CONNECT_EVENT_PROGRESS_CONFIGURATION_ACCEPTED)); + + dppEventCallback.onProgress(CONFIGURATION_SENT_WAITING_RESPONSE); + mLooper.dispatchAll(); + verify(mDppCallback) + .onProgress(eq(EASY_CONNECT_EVENT_PROGRESS_CONFIGURATION_SENT_WAITING_RESPONSE)); + + // Generate an onSuccess callback + dppEventCallback.onSuccess(CONFIGURATION_APPLIED); + mLooper.dispatchAll(); + verify(mDppCallback).onSuccess(eq(EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_APPLIED)); + verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); + verify(mDppMetrics).updateDppConfiguratorInitiatorRequests(); + verify(mDppMetrics).updateDppConfiguratorSuccess(eq(EasyConnectStatusCallback + .EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_APPLIED)); + verify(mDppMetrics).updateDppOperationTime(anyInt()); + verifyNoMoreInteractions(mDppMetrics); + } + + private void testOnFailureCallback(int internalFailure, String ssid, String channelList, + int[] bandList, int appFailure) throws Exception { + // Generate a mock WifiConfiguration object + WifiConfiguration selectedNetwork = new WifiConfiguration(); + selectedNetwork.SSID = TEST_SSID; + selectedNetwork.networkId = TEST_NETWORK_ID; + selectedNetwork.preSharedKey = TEST_PASSWORD; + selectedNetwork.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.SAE); + + when(mWifiConfigManager.getConfiguredNetworkWithoutMasking(anyInt())).thenReturn( + selectedNetwork); + ArgumentCaptor<WifiNative.DppEventCallback> dppEventCallbackCaptor = + ArgumentCaptor.forClass( + WifiNative.DppEventCallback.class); + + mDppManager.startDppAsConfiguratorInitiator(0, mBinder, mUri, 1, + EASY_CONNECT_NETWORK_ROLE_STA, mDppCallback); + verify(mWifiNative).registerDppEventCallback(dppEventCallbackCaptor.capture()); + verify(mDppCallback, never()).onFailure(anyInt(), anyString(), anyString(), any()); + verify(mDppCallback, never()).onSuccess(anyInt()); + verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); + verify(mWifiNative).startDppConfiguratorInitiator(eq(TEST_INTERFACE_NAME), + eq(TEST_PEER_ID), anyInt(), eq(TEST_SSID_ENCODED), eq(TEST_PASSWORD_ENCODED), any(), + eq(EASY_CONNECT_NETWORK_ROLE_STA), eq(SAE)); + + WifiNative.DppEventCallback dppEventCallback = dppEventCallbackCaptor.getValue(); + // Generate an onFailure callback - dppEventCallback.onFailure(internalFailure); + dppEventCallback.onFailure(internalFailure, ssid, channelList, bandList); mLooper.dispatchAll(); - verify(mDppCallback).onFailure(eq(appFailure)); + verify(mDppCallback).onFailure(eq(appFailure), eq(ssid), eq(channelList), + eq(bandList)); verify(mDppCallback, never()).onSuccess(anyInt()); verify(mDppCallback, never()).onSuccessConfigReceived(anyInt()); verify(mDppMetrics).updateDppConfiguratorInitiatorRequests(); @@ -758,4 +857,8 @@ public class DppManagerTest extends WifiBaseTest { verifyNoMoreInteractions(mDppMetrics); verifyCleanUpResources(); } + + private void testOnFailureCallback(int internalFailure, int appFailure) throws Exception { + testOnFailureCallback(internalFailure, null, null, new int[0], appFailure); + } } diff --git a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java index f3cf19fd6..e2c954cdb 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java @@ -380,7 +380,8 @@ public class WifiServiceImplTest extends WifiBaseTest { } @Override - public void onFailure(int status) throws RemoteException { + public void onFailure(int status, String ssid, String channelList, int[] bandList) + throws RemoteException { } |