diff options
author | lesl <lesl@google.com> | 2020-12-03 19:52:18 +0800 |
---|---|---|
committer | lesl <lesl@google.com> | 2020-12-10 18:07:34 +0800 |
commit | d3d17acd9cf92ab47e7fde6cb26483d125524c54 (patch) | |
tree | 48efd2bb9355303d6aca342ff5e4a714dd7461de /wifi/tests | |
parent | 62d862082bf88d217a2b25f7e96136b7defb4ab8 (diff) |
wifi: Add instance identifier in SoftApInfo/WifiClient and infoList callback
1. The framework need to know the instance of the client connected to
know which instance is idled.
2. The framework need to know the instance of the soft AP info.
3. Add infoList callback support for dual APs mode.
AP+AP Part 5 includes:
1. Support forceClientDisconnect in dual AP mode.
2. Support dual SoftApInfo callback
a. New callback onInfoListChanged
b. Add instanceIdentifier in SoftApInfo but it is used only in
framework.
c. Add instanceIdentifier in WifiClient but it is used only in
framework.
Bug: 162686273
Test: FrameworksWifiApiTests
Change-Id: I207831ff15a3044316556d61a72542ff35c94e74
Diffstat (limited to 'wifi/tests')
-rw-r--r-- | wifi/tests/src/android/net/wifi/SoftApInfoTest.java | 45 | ||||
-rw-r--r-- | wifi/tests/src/android/net/wifi/WifiClientTest.java | 14 | ||||
-rw-r--r-- | wifi/tests/src/android/net/wifi/WifiManagerTest.java | 29 |
3 files changed, 71 insertions, 17 deletions
diff --git a/wifi/tests/src/android/net/wifi/SoftApInfoTest.java b/wifi/tests/src/android/net/wifi/SoftApInfoTest.java index 28758432119c..2121d10121b0 100644 --- a/wifi/tests/src/android/net/wifi/SoftApInfoTest.java +++ b/wifi/tests/src/android/net/wifi/SoftApInfoTest.java @@ -32,17 +32,22 @@ import org.junit.Test; */ @SmallTest public class SoftApInfoTest { - + private static final String TEST_AP_INSTANCE = "wlan1"; + private static final int TEST_FREQUENCY = 2412; + private static final int TEST_BANDWIDTH = SoftApInfo.CHANNEL_WIDTH_20MHZ; + private static final int TEST_WIFI_STANDARD = ScanResult.WIFI_STANDARD_LEGACY; + private static final MacAddress TEST_AP_MAC = MacAddress.fromString("aa:bb:cc:dd:ee:ff"); /** * Verifies copy constructor. */ @Test public void testCopyOperator() throws Exception { SoftApInfo info = new SoftApInfo(); - info.setFrequency(2412); - info.setBandwidth(SoftApInfo.CHANNEL_WIDTH_20MHZ); - info.setBssid(MacAddress.fromString("aa:bb:cc:dd:ee:ff")); - info.setWifiStandard(ScanResult.WIFI_STANDARD_LEGACY); + info.setFrequency(TEST_FREQUENCY); + info.setBandwidth(TEST_BANDWIDTH); + info.setBssid(TEST_AP_MAC); + info.setWifiStandard(TEST_WIFI_STANDARD); + info.setApInstanceIdentifier(TEST_AP_INSTANCE); SoftApInfo copiedInfo = new SoftApInfo(info); @@ -57,10 +62,11 @@ public class SoftApInfoTest { @Test public void testParcelOperation() throws Exception { SoftApInfo info = new SoftApInfo(); - info.setFrequency(2412); - info.setBandwidth(SoftApInfo.CHANNEL_WIDTH_20MHZ); - info.setBssid(MacAddress.fromString("aa:bb:cc:dd:ee:ff")); - info.setWifiStandard(ScanResult.WIFI_STANDARD_LEGACY); + info.setFrequency(TEST_FREQUENCY); + info.setBandwidth(TEST_BANDWIDTH); + info.setBssid(TEST_AP_MAC); + info.setWifiStandard(TEST_WIFI_STANDARD); + info.setApInstanceIdentifier(TEST_AP_INSTANCE); Parcel parcelW = Parcel.obtain(); info.writeToParcel(parcelW, 0); @@ -88,6 +94,27 @@ public class SoftApInfoTest { if (SdkLevel.isAtLeastS()) { assertEquals(info.getBssid(), null); assertEquals(info.getWifiStandard(), ScanResult.WIFI_STANDARD_UNKNOWN); + assertEquals(info.getApInstanceIdentifier(), null); + } + } + + /** + * Verifies the set/get method same as expected. + */ + @Test + public void testGetXXXAlignedWithSetXXX() throws Exception { + SoftApInfo info = new SoftApInfo(); + info.setFrequency(TEST_FREQUENCY); + info.setBandwidth(TEST_BANDWIDTH); + info.setBssid(TEST_AP_MAC); + info.setWifiStandard(TEST_WIFI_STANDARD); + info.setApInstanceIdentifier(TEST_AP_INSTANCE); + assertEquals(info.getFrequency(), TEST_FREQUENCY); + assertEquals(info.getBandwidth(), TEST_BANDWIDTH); + if (SdkLevel.isAtLeastS()) { + assertEquals(info.getBssid(), TEST_AP_MAC); + assertEquals(info.getWifiStandard(), TEST_WIFI_STANDARD); + assertEquals(info.getApInstanceIdentifier(), TEST_AP_INSTANCE); } } diff --git a/wifi/tests/src/android/net/wifi/WifiClientTest.java b/wifi/tests/src/android/net/wifi/WifiClientTest.java index 7a3baf9ebaf2..704656320a91 100644 --- a/wifi/tests/src/android/net/wifi/WifiClientTest.java +++ b/wifi/tests/src/android/net/wifi/WifiClientTest.java @@ -42,9 +42,9 @@ public class WifiClientTest { */ @Test public void testWifiClientParcelWriteRead() throws Exception { - WifiClient writeWifiClient = new WifiClient(MAC_ADDRESS); + WifiClient writeWifiClient = new WifiClient(MAC_ADDRESS, INTERFACE_NAME); - assertParcelSane(writeWifiClient, 1); + assertParcelSane(writeWifiClient, 2); } /** @@ -52,12 +52,12 @@ public class WifiClientTest { */ @Test public void testWifiClientEquals() throws Exception { - WifiClient writeWifiClient = new WifiClient(MAC_ADDRESS); - WifiClient writeWifiClientEquals = new WifiClient(MAC_ADDRESS); + WifiClient writeWifiClient = new WifiClient(MAC_ADDRESS, INTERFACE_NAME); + WifiClient writeWifiClientEquals = new WifiClient(MAC_ADDRESS, INTERFACE_NAME); assertEquals(writeWifiClient, writeWifiClientEquals); assertEquals(writeWifiClient.hashCode(), writeWifiClientEquals.hashCode()); - assertFieldCountEquals(1, WifiClient.class); + assertFieldCountEquals(2, WifiClient.class); } /** @@ -66,8 +66,8 @@ public class WifiClientTest { @Test public void testWifiClientNotEquals() throws Exception { final MacAddress macAddressNotEquals = MacAddress.fromString("00:00:00:00:00:00"); - WifiClient writeWifiClient = new WifiClient(MAC_ADDRESS); - WifiClient writeWifiClientNotEquals = new WifiClient(macAddressNotEquals); + WifiClient writeWifiClient = new WifiClient(MAC_ADDRESS, INTERFACE_NAME); + WifiClient writeWifiClientNotEquals = new WifiClient(macAddressNotEquals, INTERFACE_NAME); assertNotEquals(writeWifiClient, writeWifiClientNotEquals); assertNotEquals(writeWifiClient.hashCode(), writeWifiClientNotEquals.hashCode()); diff --git a/wifi/tests/src/android/net/wifi/WifiManagerTest.java b/wifi/tests/src/android/net/wifi/WifiManagerTest.java index 52e91394d8bf..bd56e5b49ee6 100644 --- a/wifi/tests/src/android/net/wifi/WifiManagerTest.java +++ b/wifi/tests/src/android/net/wifi/WifiManagerTest.java @@ -137,6 +137,7 @@ public class WifiManagerTest { private static final int TEST_AP_FREQUENCY = 2412; private static final int TEST_AP_BANDWIDTH = SoftApInfo.CHANNEL_WIDTH_20MHZ; private static final int TEST_SUB_ID = 3; + private static final String TEST_AP_INSTANCE = "wlan1"; @Mock Context mContext; @Mock android.net.wifi.IWifiManager mWifiService; @@ -1111,6 +1112,27 @@ public class WifiManagerTest { verify(mSoftApCallback).onInfoChanged(testSoftApInfo); } + /* + * Verify client-provided callback is being called through callback proxy + */ + @Test + public void softApCallbackProxyCallsOnSoftApInfoListChanged() throws Exception { + SoftApInfo testSoftApInfo = new SoftApInfo(); + testSoftApInfo.setFrequency(TEST_AP_FREQUENCY); + testSoftApInfo.setBandwidth(TEST_AP_BANDWIDTH); + List<SoftApInfo> infoList = new ArrayList<>(); + infoList.add(testSoftApInfo); + ArgumentCaptor<ISoftApCallback.Stub> callbackCaptor = + ArgumentCaptor.forClass(ISoftApCallback.Stub.class); + mWifiManager.registerSoftApCallback(new HandlerExecutor(mHandler), mSoftApCallback); + verify(mWifiService).registerSoftApCallback(any(IBinder.class), callbackCaptor.capture(), + anyInt()); + + callbackCaptor.getValue().onInfoListChanged(infoList); + mLooper.dispatchAll(); + verify(mSoftApCallback).onInfoListChanged(infoList); + } + /* * Verify client-provided callback is being called through callback proxy @@ -1135,7 +1157,8 @@ public class WifiManagerTest { */ @Test public void softApCallbackProxyCallsOnBlockedClientConnecting() throws Exception { - WifiClient testWifiClient = new WifiClient(MacAddress.fromString("22:33:44:55:66:77")); + WifiClient testWifiClient = new WifiClient(MacAddress.fromString("22:33:44:55:66:77"), + TEST_AP_INSTANCE); ArgumentCaptor<ISoftApCallback.Stub> callbackCaptor = ArgumentCaptor.forClass(ISoftApCallback.Stub.class); mWifiManager.registerSoftApCallback(new HandlerExecutor(mHandler), mSoftApCallback); @@ -1157,6 +1180,8 @@ public class WifiManagerTest { SoftApInfo testSoftApInfo = new SoftApInfo(); testSoftApInfo.setFrequency(TEST_AP_FREQUENCY); testSoftApInfo.setBandwidth(TEST_AP_BANDWIDTH); + List<SoftApInfo> infoList = new ArrayList<>(); + infoList.add(testSoftApInfo); SoftApCapability testSoftApCapability = new SoftApCapability(0); testSoftApCapability.setMaxSupportedClients(10); ArgumentCaptor<ISoftApCallback.Stub> callbackCaptor = @@ -1169,6 +1194,7 @@ public class WifiManagerTest { callbackCaptor.getValue().onStateChanged(WIFI_AP_STATE_ENABLING, 0); callbackCaptor.getValue().onConnectedClientsChanged(testClients); callbackCaptor.getValue().onInfoChanged(testSoftApInfo); + callbackCaptor.getValue().onInfoListChanged(infoList); callbackCaptor.getValue().onStateChanged(WIFI_AP_STATE_FAILED, SAP_START_FAILURE_GENERAL); callbackCaptor.getValue().onCapabilityChanged(testSoftApCapability); @@ -1177,6 +1203,7 @@ public class WifiManagerTest { verify(mSoftApCallback).onStateChanged(WIFI_AP_STATE_ENABLING, 0); verify(mSoftApCallback).onConnectedClientsChanged(testClients); verify(mSoftApCallback).onInfoChanged(testSoftApInfo); + verify(mSoftApCallback).onInfoListChanged(infoList); verify(mSoftApCallback).onStateChanged(WIFI_AP_STATE_FAILED, SAP_START_FAILURE_GENERAL); verify(mSoftApCallback).onCapabilityChanged(testSoftApCapability); } |