diff options
author | Roshan Pius <rpius@google.com> | 2017-03-14 11:30:25 -0700 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2017-03-15 17:37:56 -0700 |
commit | d19743b66ba214a8c4a5166d1fe7d938f97a3f03 (patch) | |
tree | aac9508af6bcb5654e6743fda8d5ff843e73ac93 /tests | |
parent | 1df53b3ec09d8bd1713b55167ebe283bd1c1a9e9 (diff) |
SupplicantHal: Fix Wps PBC/Display setup
For Wps PBC/Display the app can choose to send a null bssid to indicate
that we want to indicate wildcard. So, add support for it.
Change NativeUtil.macAddressToByteArray to allow null/empty strings
which would return all zero'ed bssid.
Bug: 34714021
Test: Unit tests
Test: WPS setup can now be initiated via settings app.
Change-Id: I223eb9666163a0f02fe6b68480b1a05895563803
Diffstat (limited to 'tests')
3 files changed, 35 insertions, 2 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/SupplicantP2pIfaceHalTest.java b/tests/wifitests/src/com/android/server/wifi/SupplicantP2pIfaceHalTest.java index 2ea492e60..19dc521fb 100644 --- a/tests/wifitests/src/com/android/server/wifi/SupplicantP2pIfaceHalTest.java +++ b/tests/wifitests/src/com/android/server/wifi/SupplicantP2pIfaceHalTest.java @@ -90,14 +90,13 @@ public class SupplicantP2pIfaceHalTest { final String mInvalidMacAddress1 = "00:11:22:33:44"; final String mInvalidMacAddress2 = ":::::"; final String mInvalidMacAddress3 = "invalid"; - final String mInvalidMacAddress4 = ""; final byte mInvalidMacAddressBytes1[] = null; final byte mInvalidMacAddressBytes2[] = {}; final byte mInvalidMacAddressBytes3[] = { 0x00, 0x01, 0x02, 0x03, 0x04 }; final byte mInvalidMacAddressBytes4[] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }; HashSet<String> mInvalidMacAddresses = new HashSet<String>(Arrays.asList( mInvalidMacAddress1, mInvalidMacAddress2, - mInvalidMacAddress3, mInvalidMacAddress4)); + mInvalidMacAddress3)); HashSet<byte[]> mInvalidMacAddressesBytes = new HashSet<byte[]>(Arrays.asList( mInvalidMacAddressBytes1, mInvalidMacAddressBytes2, mInvalidMacAddressBytes3, mInvalidMacAddressBytes4)); diff --git a/tests/wifitests/src/com/android/server/wifi/SupplicantStaIfaceHalTest.java b/tests/wifitests/src/com/android/server/wifi/SupplicantStaIfaceHalTest.java index bb5221730..d7c3b93e3 100644 --- a/tests/wifitests/src/com/android/server/wifi/SupplicantStaIfaceHalTest.java +++ b/tests/wifitests/src/com/android/server/wifi/SupplicantStaIfaceHalTest.java @@ -1183,6 +1183,29 @@ public class SupplicantStaIfaceHalTest { verify(mISupplicantStaIfaceMock).startWpsRegistrar(any(byte[].class), anyString()); } + /** + * Tests the start of wps PBC. + */ + @Test + public void testStartWpsPbc() throws Exception { + when(mISupplicantStaIfaceMock.startWpsPbc(any(byte[].class))).thenReturn(mStatusSuccess); + String bssid = "45:23:12:12:12:98"; + byte[] bssidBytes = {0x45, 0x23, 0x12, 0x12, 0x12, (byte) 0x98}; + byte[] anyBssidBytes = {0, 0, 0, 0, 0, 0}; + + // Fail before initialization is performed. + assertFalse(mDut.startWpsPbc(bssid)); + verify(mISupplicantStaIfaceMock, never()).startWpsPbc(any(byte[].class)); + + executeAndValidateInitializationSequence(); + + assertTrue(mDut.startWpsPbc(bssid)); + verify(mISupplicantStaIfaceMock).startWpsPbc(eq(bssidBytes)); + + assertTrue(mDut.startWpsPbc(null)); + verify(mISupplicantStaIfaceMock).startWpsPbc(eq(anyBssidBytes)); + } + private void executeAndValidateHs20DeauthImminentCallback(boolean isEss) throws Exception { executeAndValidateInitializationSequence(); assertNotNull(mISupplicantStaIfaceCallback); diff --git a/tests/wifitests/src/com/android/server/wifi/util/NativeUtilTest.java b/tests/wifitests/src/com/android/server/wifi/util/NativeUtilTest.java index ee48854b1..3f51c5a6a 100644 --- a/tests/wifitests/src/com/android/server/wifi/util/NativeUtilTest.java +++ b/tests/wifitests/src/com/android/server/wifi/util/NativeUtilTest.java @@ -37,6 +37,17 @@ public class NativeUtilTest { } /** + * Test that parsing an empty MAC address works. + */ + @Test + public void testEmptyMacAddressToByteArray() throws Exception { + assertArrayEquals(new byte[]{0, 0, 0, 0, 0, 0}, + NativeUtil.macAddressToByteArray("")); + assertArrayEquals(new byte[]{0, 0, 0, 0, 0, 0}, + NativeUtil.macAddressToByteArray(null)); + } + + /** * Test that conversion of byte array of mac address to typical colon-delimited MAC address * works. */ |