diff options
author | Sohani Rao <sohanirao@google.com> | 2017-02-06 14:02:17 -0800 |
---|---|---|
committer | Sohani Rao <sohanirao@google.com> | 2017-03-30 17:27:20 -0700 |
commit | efab6719309021b890dc39b1a7434ea6b7f7bb64 (patch) | |
tree | bcdd4eb5f86adea76f862d4f1c7ddcf0c9379f9d /tests | |
parent | 6236c87501a724cdb4e727b1631ee11db106460c (diff) |
Send Auth failure reason in broadcast intent
SupplicantStateChange broadcast intent for authentication failure
doesn't capture the reason for authentication failure. To indicate this
reason to the user, use the newly defined (but hidden), auth failure
codes to make the intent richer.
Bug: 33245941
Test: Unit test
Change-Id: I76496cfc7365103d9ec74b12d60bde772fcba801
Diffstat (limited to 'tests')
3 files changed, 90 insertions, 7 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/SupplicantStaIfaceHalTest.java b/tests/wifitests/src/com/android/server/wifi/SupplicantStaIfaceHalTest.java index d747c113b..f1897c8b2 100644 --- a/tests/wifitests/src/com/android/server/wifi/SupplicantStaIfaceHalTest.java +++ b/tests/wifitests/src/com/android/server/wifi/SupplicantStaIfaceHalTest.java @@ -50,6 +50,7 @@ import android.hidl.manager.V1_0.IServiceNotification; import android.net.IpConfiguration; import android.net.wifi.SupplicantState; import android.net.wifi.WifiConfiguration; +import android.net.wifi.WifiManager; import android.net.wifi.WifiSsid; import android.os.IHwBinder; import android.os.RemoteException; @@ -962,7 +963,7 @@ public class SupplicantStaIfaceHalTest { NativeUtil.macAddressToByteArray(BSSID), false, reasonCode); verify(mWifiMonitor, times(2)).broadcastAuthenticationFailureEvent(eq(WLAN_IFACE_NAME), - eq(WifiMonitor.AUTHENTICATION_FAILURE_REASON_WRONG_PSWD)); + eq(WifiManager.ERROR_AUTH_FAILURE_WRONG_PSWD)); } @@ -1015,7 +1016,7 @@ public class SupplicantStaIfaceHalTest { mISupplicantStaIfaceCallback.onAuthenticationTimeout( NativeUtil.macAddressToByteArray(BSSID)); verify(mWifiMonitor).broadcastAuthenticationFailureEvent(eq(WLAN_IFACE_NAME), - eq(WifiMonitor.AUTHENTICATION_FAILURE_REASON_TIMEOUT)); + eq(WifiManager.ERROR_AUTH_FAILURE_TIMEOUT)); } /** @@ -1054,7 +1055,7 @@ public class SupplicantStaIfaceHalTest { mISupplicantStaIfaceCallback.onEapFailure(); verify(mWifiMonitor).broadcastAuthenticationFailureEvent(eq(WLAN_IFACE_NAME), - eq(WifiMonitor.AUTHENTICATION_FAILURE_REASON_EAP_FAILURE)); + eq(WifiManager.ERROR_AUTH_FAILURE_EAP_FAILURE)); } /** diff --git a/tests/wifitests/src/com/android/server/wifi/SupplicantStateTrackerTest.java b/tests/wifitests/src/com/android/server/wifi/SupplicantStateTrackerTest.java index f1a9e945d..98fa80046 100644 --- a/tests/wifitests/src/com/android/server/wifi/SupplicantStateTrackerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/SupplicantStateTrackerTest.java @@ -52,7 +52,6 @@ public class SupplicantStateTrackerTest { private SupplicantStateTracker mSupplicantStateTracker; private TestLooper mLooper; private FrameworkFacade mFacade; - private BroadcastReceiver mWifiBroadcastReceiver; private FrameworkFacade getFrameworkFacade() { FrameworkFacade facade = mock(FrameworkFacade.class); @@ -83,7 +82,7 @@ public class SupplicantStateTrackerTest { */ @Test public void testSupplicantStateChangeIntent() { - mWifiBroadcastReceiver = new BroadcastReceiver() { + BroadcastReceiver wifiBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); @@ -95,8 +94,91 @@ public class SupplicantStateTrackerTest { }; IntentFilter mIntentFilter = new IntentFilter(); mIntentFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION); - mContext.registerReceiver(mWifiBroadcastReceiver, mIntentFilter); + mContext.registerReceiver(wifiBroadcastReceiver, mIntentFilter); mSupplicantStateTracker.sendMessage(getSupplicantStateChangeMessage(0, sWifiSsid, sBSSID, SupplicantState.SCANNING)); } + + /** + * This test verifies that the current auth status is sent in the Broadcast intent + */ + @Test + public void testAuthPassInSupplicantStateChangeIntent() { + BroadcastReceiver wifiBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + assertTrue(action.equals(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION)); + SupplicantState recvdState = + (SupplicantState) intent.getExtra(WifiManager.EXTRA_NEW_STATE, -1); + assertEquals(SupplicantState.AUTHENTICATING, recvdState); + boolean authStatus = + (boolean) intent.getExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, -1); + assertEquals(authStatus, true); + } + }; + IntentFilter mIntentFilter = new IntentFilter(); + mIntentFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION); + mContext.registerReceiver(wifiBroadcastReceiver, mIntentFilter); + mSupplicantStateTracker.sendMessage(getSupplicantStateChangeMessage(0, sWifiSsid, + sBSSID, SupplicantState.AUTHENTICATING)); + mSupplicantStateTracker.sendMessage(WifiMonitor.AUTHENTICATION_FAILURE_EVENT); + } + + /** + * This test verifies that the current auth status is sent in the Broadcast intent + */ + @Test + public void testAuthFailedInSupplicantStateChangeIntent() { + BroadcastReceiver wifiBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + assertTrue(action.equals(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION)); + SupplicantState recvdState = + (SupplicantState) intent.getExtra(WifiManager.EXTRA_NEW_STATE, -1); + assertEquals(SupplicantState.AUTHENTICATING, recvdState); + boolean authStatus = + (boolean) intent.getExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, -1); + assertEquals(authStatus, false); + } + }; + IntentFilter mIntentFilter = new IntentFilter(); + mIntentFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION); + mContext.registerReceiver(wifiBroadcastReceiver, mIntentFilter); + mSupplicantStateTracker.sendMessage(WifiMonitor.AUTHENTICATION_FAILURE_EVENT); + mSupplicantStateTracker.sendMessage(getSupplicantStateChangeMessage(0, sWifiSsid, + sBSSID, SupplicantState.AUTHENTICATING)); + } + + /** + * This test verifies the correct reasonCode for auth failure is sent in Broadcast + * intent. + */ + @Test + public void testReasonCodeInSupplicantStateChangeIntent() { + BroadcastReceiver wifiBroadcastReceiver = new BroadcastReceiver() { + @Override + public void onReceive(Context context, Intent intent) { + String action = intent.getAction(); + assertTrue(action.equals(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION)); + SupplicantState recvdState = + (SupplicantState) intent.getExtra(WifiManager.EXTRA_NEW_STATE, -1); + assertEquals(SupplicantState.AUTHENTICATING, recvdState); + boolean authStatus = + (boolean) intent.getExtra(WifiManager.EXTRA_SUPPLICANT_ERROR, -1); + assertEquals(authStatus, false); + int reasonCode = (int) + intent.getExtra(WifiManager.EXTRA_SUPPLICANT_ERROR_REASON, -1); + assertEquals(reasonCode, WifiManager.ERROR_AUTH_FAILURE_WRONG_PSWD); + } + }; + IntentFilter mIntentFilter = new IntentFilter(); + mIntentFilter.addAction(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION); + mContext.registerReceiver(wifiBroadcastReceiver, mIntentFilter); + mSupplicantStateTracker.sendMessage(WifiMonitor.AUTHENTICATION_FAILURE_EVENT, 0, + WifiManager.ERROR_AUTH_FAILURE_WRONG_PSWD); + mSupplicantStateTracker.sendMessage(getSupplicantStateChangeMessage(0, sWifiSsid, + sBSSID, SupplicantState.AUTHENTICATING)); + } } diff --git a/tests/wifitests/src/com/android/server/wifi/WifiMonitorTest.java b/tests/wifitests/src/com/android/server/wifi/WifiMonitorTest.java index 6e3dbbbcf..4b4a17dce 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiMonitorTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiMonitorTest.java @@ -343,7 +343,7 @@ public class WifiMonitorTest { public void testBroadcastAuthenticationFailureEvent() { mWifiMonitor.registerHandler( WLAN_IFACE_NAME, WifiMonitor.AUTHENTICATION_FAILURE_EVENT, mHandlerSpy); - int reason = WifiMonitor.AUTHENTICATION_FAILURE_REASON_WRONG_PSWD; + int reason = WifiManager.ERROR_AUTH_FAILURE_WRONG_PSWD; mWifiMonitor.broadcastAuthenticationFailureEvent(WLAN_IFACE_NAME, reason); mLooper.dispatchAll(); |