summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/java/com/android/server/wifi/DppManager.java99
-rw-r--r--service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_2Impl.java5
-rw-r--r--service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_3Impl.java39
-rw-r--r--service/java/com/android/server/wifi/WifiNative.java14
-rw-r--r--tests/wifitests/src/com/android/server/wifi/DppManagerTest.java247
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java3
6 files changed, 306 insertions, 101 deletions
diff --git a/service/java/com/android/server/wifi/DppManager.java b/service/java/com/android/server/wifi/DppManager.java
index e990f9cfb..1f228bcb5 100644
--- a/service/java/com/android/server/wifi/DppManager.java
+++ b/service/java/com/android/server/wifi/DppManager.java
@@ -20,9 +20,10 @@ import static android.net.wifi.WifiManager.EASY_CONNECT_NETWORK_ROLE_AP;
import android.content.Context;
import android.hardware.wifi.supplicant.V1_2.DppAkm;
-import android.hardware.wifi.supplicant.V1_2.DppFailureCode;
import android.hardware.wifi.supplicant.V1_2.DppNetRole;
-import android.hardware.wifi.supplicant.V1_2.DppProgressCode;
+import android.hardware.wifi.supplicant.V1_3.DppFailureCode;
+import android.hardware.wifi.supplicant.V1_3.DppProgressCode;
+import android.hardware.wifi.supplicant.V1_3.DppSuccessCode;
import android.net.wifi.EasyConnectStatusCallback;
import android.net.wifi.IDppCallback;
import android.net.wifi.WifiConfiguration;
@@ -66,9 +67,9 @@ public class DppManager {
}
@Override
- public void onSuccessConfigSent() {
+ public void onSuccess(int dppStatusCode) {
mHandler.post(() -> {
- DppManager.this.onSuccessConfigSent();
+ DppManager.this.onSuccess(dppStatusCode);
});
}
@@ -80,9 +81,9 @@ public class DppManager {
}
@Override
- public void onFailure(int dppStatusCode) {
+ public void onFailure(int dppStatusCode, String ssid, String channelList, int[] bandList) {
mHandler.post(() -> {
- DppManager.this.onFailure(dppStatusCode);
+ DppManager.this.onFailure(dppStatusCode, ssid, channelList, bandList);
});
}
};
@@ -161,7 +162,8 @@ public class DppManager {
mDppMetrics.updateDppFailure(EasyConnectStatusCallback
.EASY_CONNECT_EVENT_FAILURE_BUSY);
// On going DPP. Call the failure callback directly
- callback.onFailure(EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_BUSY);
+ callback.onFailure(EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_BUSY, null,
+ null, new int[0]);
} catch (RemoteException e) {
// Empty
}
@@ -175,7 +177,8 @@ public class DppManager {
// On going DPP. Call the failure callback directly
mDppMetrics.updateDppFailure(EasyConnectStatusCallback
.EASY_CONNECT_EVENT_FAILURE_GENERIC);
- callback.onFailure(EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_GENERIC);
+ callback.onFailure(EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_GENERIC,
+ null, null, new int[0]);
} catch (RemoteException e) {
// Empty
}
@@ -192,7 +195,7 @@ public class DppManager {
mDppMetrics.updateDppFailure(EasyConnectStatusCallback
.EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK);
callback.onFailure(EasyConnectStatusCallback
- .EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK);
+ .EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK, null, null, new int[0]);
} catch (RemoteException e) {
// Empty
}
@@ -224,7 +227,8 @@ public class DppManager {
mDppMetrics.updateDppFailure(EasyConnectStatusCallback
.EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK);
callback.onFailure(
- EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK);
+ EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_INVALID_NETWORK, null,
+ null, new int[0]);
} catch (RemoteException e) {
// Empty
}
@@ -306,7 +310,8 @@ public class DppManager {
mDppMetrics.updateDppFailure(EasyConnectStatusCallback
.EASY_CONNECT_EVENT_FAILURE_BUSY);
// On going DPP. Call the failure callback directly
- callback.onFailure(EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_BUSY);
+ callback.onFailure(EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_BUSY, null,
+ null, new int[0]);
} catch (RemoteException e) {
// Empty
}
@@ -448,7 +453,7 @@ public class DppManager {
mDppMetrics.updateDppFailure(EasyConnectStatusCallback
.EASY_CONNECT_EVENT_FAILURE_CONFIGURATION);
mDppRequestInfo.callback.onFailure(EasyConnectStatusCallback
- .EASY_CONNECT_EVENT_FAILURE_CONFIGURATION);
+ .EASY_CONNECT_EVENT_FAILURE_CONFIGURATION, null, null, new int[0]);
}
} else {
Log.e(TAG, "Unexpected null Wi-Fi configuration object");
@@ -461,22 +466,40 @@ public class DppManager {
cleanupDppResources();
}
- private void onSuccessConfigSent() {
+ private void onSuccess(int dppStatusCode) {
try {
if (mDppRequestInfo == null) {
- Log.e(TAG, "onDppSuccessConfigSent event without a request information object");
+ Log.e(TAG, "onSuccess event without a request information object");
return;
}
- logd("onSuccessConfigSent");
-
+ logd("onSuccess: " + dppStatusCode);
long now = mClock.getElapsedSinceBootMillis();
mDppMetrics.updateDppOperationTime((int) (now - mDppRequestInfo.startTime));
- mDppMetrics.updateDppConfiguratorSuccess(
- EasyConnectStatusCallback.EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT);
- mDppRequestInfo.callback.onSuccess(
- EasyConnectStatusCallback.EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT);
+ int dppSuccessCode;
+
+ // Convert from HAL codes to WifiManager/user codes
+ switch (dppStatusCode) {
+ case DppSuccessCode.CONFIGURATION_SENT:
+ dppSuccessCode = EasyConnectStatusCallback
+ .EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_SENT;
+ break;
+
+ case DppSuccessCode.CONFIGURATION_APPLIED:
+ dppSuccessCode = EasyConnectStatusCallback
+ .EASY_CONNECT_EVENT_SUCCESS_CONFIGURATION_APPLIED;
+ break;
+
+ default:
+ Log.e(TAG, "onSuccess: unknown code " + dppStatusCode);
+ // Success, DPP is complete. Clear the DPP session automatically
+ cleanupDppResources();
+ return;
+ }
+
+ mDppMetrics.updateDppConfiguratorSuccess(dppSuccessCode);
+ mDppRequestInfo.callback.onSuccess(dppSuccessCode);
} catch (RemoteException e) {
Log.e(TAG, "Callback failure");
@@ -509,6 +532,16 @@ public class DppManager {
.EASY_CONNECT_EVENT_PROGRESS_RESPONSE_PENDING;
break;
+ case DppProgressCode.CONFIGURATION_SENT_WAITING_RESPONSE:
+ dppProgressCode = EasyConnectStatusCallback
+ .EASY_CONNECT_EVENT_PROGRESS_CONFIGURATION_SENT_WAITING_RESPONSE;
+ break;
+
+ case DppProgressCode.CONFIGURATION_ACCEPTED:
+ dppProgressCode = EasyConnectStatusCallback
+ .EASY_CONNECT_EVENT_PROGRESS_CONFIGURATION_ACCEPTED;
+ break;
+
default:
Log.e(TAG, "onProgress: unknown code " + dppStatusCode);
return;
@@ -522,6 +555,10 @@ public class DppManager {
}
private void onFailure(int dppStatusCode) {
+ onFailure(dppStatusCode, null, null, null);
+ }
+
+ private void onFailure(int dppStatusCode, String ssid, String channelList, int[] bandList) {
try {
if (mDppRequestInfo == null) {
Log.e(TAG, "onFailure event without a request information object");
@@ -570,6 +607,23 @@ public class DppManager {
EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_NOT_SUPPORTED;
break;
+ case DppFailureCode.CANNOT_FIND_NETWORK:
+ // This is the only case where channel list is populated, according to the
+ // DPP spec section 6.3.5.2 DPP Connection Status Object
+ dppFailureCode = EasyConnectStatusCallback
+ .EASY_CONNECT_EVENT_FAILURE_CANNOT_FIND_NETWORK;
+ break;
+
+ case DppFailureCode.ENROLLEE_AUTHENTICATION:
+ dppFailureCode = EasyConnectStatusCallback
+ .EASY_CONNECT_EVENT_FAILURE_ENROLLEE_AUTHENTICATION;
+ break;
+
+ case DppFailureCode.CONFIGURATION_REJECTED:
+ dppFailureCode = EasyConnectStatusCallback
+ .EASY_CONNECT_EVENT_FAILURE_ENROLLEE_REJECTED_CONFIGURATION;
+ break;
+
case DppFailureCode.FAILURE:
default:
dppFailureCode = EasyConnectStatusCallback.EASY_CONNECT_EVENT_FAILURE_GENERIC;
@@ -577,7 +631,10 @@ public class DppManager {
}
mDppMetrics.updateDppFailure(dppFailureCode);
- mDppRequestInfo.callback.onFailure(dppFailureCode);
+ if (bandList == null) {
+ bandList = new int[0];
+ }
+ mDppRequestInfo.callback.onFailure(dppFailureCode, ssid, channelList, bandList);
} catch (RemoteException e) {
Log.e(TAG, "Callback failure");
diff --git a/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_2Impl.java b/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_2Impl.java
index b80911736..2c3dc61b8 100644
--- a/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_2Impl.java
+++ b/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_2Impl.java
@@ -20,6 +20,7 @@ import android.content.Context;
import android.hardware.wifi.supplicant.V1_0.ISupplicantStaIfaceCallback;
import android.hardware.wifi.supplicant.V1_2.DppAkm;
import android.hardware.wifi.supplicant.V1_2.DppFailureCode;
+import android.hardware.wifi.supplicant.V1_3.DppSuccessCode;
import android.net.wifi.WifiConfiguration;
import android.net.wifi.WifiSsid;
import android.os.Process;
@@ -195,7 +196,7 @@ abstract class SupplicantStaIfaceCallbackV1_2Impl extends
@Override
public void onDppSuccessConfigSent() {
if (mStaIfaceHal.getDppCallback() != null) {
- mStaIfaceHal.getDppCallback().onSuccessConfigSent();
+ mStaIfaceHal.getDppCallback().onSuccess(DppSuccessCode.CONFIGURATION_SENT);
} else {
Log.e(TAG, "onSuccessConfigSent callback is null");
}
@@ -213,7 +214,7 @@ abstract class SupplicantStaIfaceCallbackV1_2Impl extends
@Override
public void onDppFailure(int code) {
if (mStaIfaceHal.getDppCallback() != null) {
- mStaIfaceHal.getDppCallback().onFailure(code);
+ mStaIfaceHal.getDppCallback().onFailure(code, null, null, null);
} else {
Log.e(TAG, "onDppFailure callback is null");
}
diff --git a/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_3Impl.java b/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_3Impl.java
index 97b984a7a..32f04d6e7 100644
--- a/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_3Impl.java
+++ b/service/java/com/android/server/wifi/SupplicantStaIfaceCallbackV1_3Impl.java
@@ -17,6 +17,7 @@ package com.android.server.wifi;
import android.annotation.NonNull;
import android.hardware.wifi.supplicant.V1_0.ISupplicantStaIfaceCallback;
+import android.util.Log;
import java.util.ArrayList;
@@ -163,4 +164,42 @@ abstract class SupplicantStaIfaceCallbackV1_3Impl extends
mStaIfaceHal.logCallback(
"onPmkCacheAdded: update pmk cache for config id " + curNetworkId);
}
+
+ @Override
+ public void onDppProgress_1_3(int code) {
+ if (mStaIfaceHal.getDppCallback() != null) {
+ mStaIfaceHal.getDppCallback().onProgress(code);
+ } else {
+ Log.e(TAG, "onDppProgress callback is null");
+ }
+ }
+
+ @Override
+ public void onDppFailure_1_3(int code, String ssid, String channelList,
+ ArrayList<Short> bandList) {
+ if (mStaIfaceHal.getDppCallback() != null) {
+ int[] bandListArray = null;
+
+ // Convert operating class list to a primitive array
+ if (bandList != null) {
+ bandListArray = new int[bandList.size()];
+
+ for (int i = 0; i < bandList.size(); i++) {
+ bandListArray[i] = bandList.get(i).intValue();
+ }
+ }
+ mStaIfaceHal.getDppCallback().onFailure(code, ssid, channelList, bandListArray);
+ } else {
+ Log.e(TAG, "onDppFailure callback is null");
+ }
+ }
+
+ @Override
+ public void onDppSuccess(int code) {
+ if (mStaIfaceHal.getDppCallback() != null) {
+ mStaIfaceHal.getDppCallback().onSuccess(code);
+ } else {
+ Log.e(TAG, "onDppFailure callback is null");
+ }
+ }
}
diff --git a/service/java/com/android/server/wifi/WifiNative.java b/service/java/com/android/server/wifi/WifiNative.java
index 6225a6134..b38f8b99a 100644
--- a/service/java/com/android/server/wifi/WifiNative.java
+++ b/service/java/com/android/server/wifi/WifiNative.java
@@ -2419,7 +2419,7 @@ public class WifiNative {
*/
public interface DppEventCallback {
/**
- * Called when local DPP Enrollee successfully receives a new Wi-Fi configuratrion from the
+ * Called when local DPP Enrollee successfully receives a new Wi-Fi configuration from the
* peer DPP configurator.
*
* @param newWifiConfiguration New Wi-Fi configuration received from the configurator
@@ -2427,10 +2427,11 @@ public class WifiNative {
void onSuccessConfigReceived(WifiConfiguration newWifiConfiguration);
/**
- * Called when local DPP configurator successfully sends Wi-Fi configuration to a remote
- * Enrollee.
+ * DPP Success event.
+ *
+ * @param dppStatusCode Status code of the success event.
*/
- void onSuccessConfigSent();
+ void onSuccess(int dppStatusCode);
/**
* DPP Progress event.
@@ -2443,8 +2444,11 @@ public class WifiNative {
* DPP Failure event.
*
* @param dppStatusCode Status code of the failure event.
+ * @param ssid SSID of the network the Enrollee tried to connect to.
+ * @param channelList List of channels the Enrollee scanned for the network.
+ * @param bandList List of bands the Enrollee supports.
*/
- void onFailure(int dppStatusCode);
+ void onFailure(int dppStatusCode, String ssid, String channelList, int[] bandList);
}
/**
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 {
}