Merge "Add verifyHotspotClientUpdate helper function"
This commit is contained in:
@@ -2988,9 +2988,9 @@ public class TetheringTest {
|
|||||||
final MacAddress testMac1 = MacAddress.fromString("11:11:11:11:11:11");
|
final MacAddress testMac1 = MacAddress.fromString("11:11:11:11:11:11");
|
||||||
final DhcpLeaseParcelable p2pLease = createDhcpLeaseParcelable("clientId1", testMac1,
|
final DhcpLeaseParcelable p2pLease = createDhcpLeaseParcelable("clientId1", testMac1,
|
||||||
"192.168.50.24", 24, Long.MAX_VALUE, "test1");
|
"192.168.50.24", 24, Long.MAX_VALUE, "test1");
|
||||||
final List<TetheredClient> p2pClients = notifyDhcpLeasesChanged(TETHERING_WIFI_P2P,
|
final List<TetheredClient> connectedClients = notifyDhcpLeasesChanged(TETHERING_WIFI_P2P,
|
||||||
eventCallbacks, p2pLease);
|
eventCallbacks, p2pLease);
|
||||||
callback.expectTetheredClientChanged(p2pClients);
|
callback.expectTetheredClientChanged(connectedClients);
|
||||||
reset(mDhcpServer);
|
reset(mDhcpServer);
|
||||||
|
|
||||||
// Run wifi tethering.
|
// Run wifi tethering.
|
||||||
@@ -2999,21 +2999,11 @@ public class TetheringTest {
|
|||||||
verify(mDhcpServer, timeout(DHCPSERVER_START_TIMEOUT_MS)).startWithCallbacks(
|
verify(mDhcpServer, timeout(DHCPSERVER_START_TIMEOUT_MS)).startWithCallbacks(
|
||||||
any(), dhcpEventCbsCaptor.capture());
|
any(), dhcpEventCbsCaptor.capture());
|
||||||
eventCallbacks = dhcpEventCbsCaptor.getValue();
|
eventCallbacks = dhcpEventCbsCaptor.getValue();
|
||||||
// Update mac address from softAp callback before getting dhcp lease.
|
|
||||||
final MacAddress testMac2 = MacAddress.fromString("22:22:22:22:22:22");
|
final MacAddress testMac2 = MacAddress.fromString("22:22:22:22:22:22");
|
||||||
final TetheredClient noAddrClient = notifyConnectedWifiClientsChanged(testMac2,
|
|
||||||
false /* isLocalOnly */);
|
|
||||||
final List<TetheredClient> p2pAndNoAddrClients = new ArrayList<>(p2pClients);
|
|
||||||
p2pAndNoAddrClients.add(noAddrClient);
|
|
||||||
callback.expectTetheredClientChanged(p2pAndNoAddrClients);
|
|
||||||
|
|
||||||
// Update dhcp lease for wifi tethering.
|
|
||||||
final DhcpLeaseParcelable wifiLease = createDhcpLeaseParcelable("clientId2", testMac2,
|
final DhcpLeaseParcelable wifiLease = createDhcpLeaseParcelable("clientId2", testMac2,
|
||||||
"192.168.43.24", 24, Long.MAX_VALUE, "test2");
|
"192.168.43.24", 24, Long.MAX_VALUE, "test2");
|
||||||
final List<TetheredClient> p2pAndWifiClients = new ArrayList<>(p2pClients);
|
verifyHotspotClientUpdate(false /* isLocalOnly */, testMac2, wifiLease, connectedClients,
|
||||||
p2pAndWifiClients.addAll(notifyDhcpLeasesChanged(TETHERING_WIFI,
|
eventCallbacks, callback);
|
||||||
eventCallbacks, wifiLease));
|
|
||||||
callback.expectTetheredClientChanged(p2pAndWifiClients);
|
|
||||||
|
|
||||||
// Test onStarted callback that register second callback when tethering is running.
|
// Test onStarted callback that register second callback when tethering is running.
|
||||||
TestTetheringEventCallback callback2 = new TestTetheringEventCallback();
|
TestTetheringEventCallback callback2 = new TestTetheringEventCallback();
|
||||||
@@ -3021,7 +3011,7 @@ public class TetheringTest {
|
|||||||
mTethering.registerTetheringEventCallback(callback2);
|
mTethering.registerTetheringEventCallback(callback2);
|
||||||
mLooper.dispatchAll();
|
mLooper.dispatchAll();
|
||||||
});
|
});
|
||||||
callback2.expectTetheredClientChanged(p2pAndWifiClients);
|
callback2.expectTetheredClientChanged(connectedClients);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -3043,26 +3033,34 @@ public class TetheringTest {
|
|||||||
verify(mDhcpServer, timeout(DHCPSERVER_START_TIMEOUT_MS)).startWithCallbacks(
|
verify(mDhcpServer, timeout(DHCPSERVER_START_TIMEOUT_MS)).startWithCallbacks(
|
||||||
any(), dhcpEventCbsCaptor.capture());
|
any(), dhcpEventCbsCaptor.capture());
|
||||||
final IDhcpEventCallbacks eventCallbacks = dhcpEventCbsCaptor.getValue();
|
final IDhcpEventCallbacks eventCallbacks = dhcpEventCbsCaptor.getValue();
|
||||||
// Update mac address from softAp callback before getting dhcp lease.
|
|
||||||
final MacAddress testMac = MacAddress.fromString("22:22:22:22:22:22");
|
|
||||||
final TetheredClient noAddrClient = notifyConnectedWifiClientsChanged(testMac,
|
|
||||||
true /* isLocalOnly */);
|
|
||||||
final List<TetheredClient> noAddrLocalOnlyClients = new ArrayList<>();
|
|
||||||
noAddrLocalOnlyClients.add(noAddrClient);
|
|
||||||
callback.expectTetheredClientChanged(noAddrLocalOnlyClients);
|
|
||||||
|
|
||||||
// Update dhcp lease for local only hotspot.
|
final List<TetheredClient> connectedClients = new ArrayList<>();
|
||||||
|
final MacAddress testMac = MacAddress.fromString("22:22:22:22:22:22");
|
||||||
final DhcpLeaseParcelable wifiLease = createDhcpLeaseParcelable("clientId", testMac,
|
final DhcpLeaseParcelable wifiLease = createDhcpLeaseParcelable("clientId", testMac,
|
||||||
"192.168.43.24", 24, Long.MAX_VALUE, "test");
|
"192.168.43.24", 24, Long.MAX_VALUE, "test");
|
||||||
final List<TetheredClient> localOnlyClients = notifyDhcpLeasesChanged(TETHERING_WIFI,
|
verifyHotspotClientUpdate(true /* isLocalOnly */, testMac, wifiLease, connectedClients,
|
||||||
eventCallbacks, wifiLease);
|
eventCallbacks, callback);
|
||||||
callback.expectTetheredClientChanged(localOnlyClients);
|
|
||||||
|
|
||||||
// Client disconnect from local only hotspot.
|
// Client disconnect from local only hotspot.
|
||||||
mLocalOnlyHotspotCallback.onConnectedClientsChanged(Collections.emptyList());
|
mLocalOnlyHotspotCallback.onConnectedClientsChanged(Collections.emptyList());
|
||||||
callback.expectTetheredClientChanged(Collections.emptyList());
|
callback.expectTetheredClientChanged(Collections.emptyList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void verifyHotspotClientUpdate(final boolean isLocalOnly, final MacAddress testMac,
|
||||||
|
final DhcpLeaseParcelable dhcpLease, final List<TetheredClient> currentClients,
|
||||||
|
final IDhcpEventCallbacks dhcpCallback, final TestTetheringEventCallback callback)
|
||||||
|
throws Exception {
|
||||||
|
// Update mac address from softAp callback before getting dhcp lease.
|
||||||
|
final TetheredClient noAddrClient = notifyConnectedWifiClientsChanged(testMac, isLocalOnly);
|
||||||
|
final List<TetheredClient> withNoAddrClients = new ArrayList<>(currentClients);
|
||||||
|
withNoAddrClients.add(noAddrClient);
|
||||||
|
callback.expectTetheredClientChanged(withNoAddrClients);
|
||||||
|
|
||||||
|
// Update dhcp lease for hotspot.
|
||||||
|
currentClients.addAll(notifyDhcpLeasesChanged(TETHERING_WIFI, dhcpCallback, dhcpLease));
|
||||||
|
callback.expectTetheredClientChanged(currentClients);
|
||||||
|
}
|
||||||
|
|
||||||
private TetheredClient notifyConnectedWifiClientsChanged(final MacAddress mac,
|
private TetheredClient notifyConnectedWifiClientsChanged(final MacAddress mac,
|
||||||
boolean isLocalOnly) throws Exception {
|
boolean isLocalOnly) throws Exception {
|
||||||
final ArrayList<WifiClient> wifiClients = new ArrayList<>();
|
final ArrayList<WifiClient> wifiClients = new ArrayList<>();
|
||||||
|
|||||||
Reference in New Issue
Block a user