Add unit tests for WifiPickerTracker
Bug: 275582348
Test: atest com.android.wifitrackerlib.WifiPickerTrackerTest
Change-Id: Ide014c38ff4825d0a3832489c58c4e6aad5e1741
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
index 0df423d..90d82c6 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/BaseWifiTracker.java
@@ -92,7 +92,7 @@
private static boolean sVerboseLogging;
- public static final boolean ENABLE_SHARED_CONNECTIVITY_FEATURE = false;
+ public static boolean mEnableSharedConnectivityFeature = false;
public static boolean isVerboseLoggingEnabled() {
return BaseWifiTracker.sVerboseLogging;
@@ -305,7 +305,7 @@
mConnectivityManager = connectivityManager;
mConnectivityDiagnosticsManager =
context.getSystemService(ConnectivityDiagnosticsManager.class);
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE && BuildCompat.isAtLeastU()) {
+ if (mEnableSharedConnectivityFeature && BuildCompat.isAtLeastU()) {
mSharedConnectivityManager =
context.getSystemService(SharedConnectivityManager.class);
}
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkDetailsTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkDetailsTracker.java
index d66099e..a30dd5e 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkDetailsTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkDetailsTracker.java
@@ -111,7 +111,7 @@
@WorkerThread
@Override
protected void handleServiceConnected() {
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE && mSharedConnectivityManager != null) {
+ if (mEnableSharedConnectivityFeature && mSharedConnectivityManager != null) {
mHotspotNetworkData = mSharedConnectivityManager.getHotspotNetworks().stream().filter(
network -> network.getDeviceId() == mChosenEntry.getHotspotNetworkEntryKey()
.getDeviceId()).findFirst().orElse(null);
@@ -126,7 +126,7 @@
@WorkerThread
@Override
protected void handleHotspotNetworksUpdated(List<HotspotNetwork> networks) {
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE) {
+ if (mEnableSharedConnectivityFeature) {
mHotspotNetworkData = networks.stream().filter(network -> network.getDeviceId()
== mChosenEntry.getHotspotNetworkEntryKey().getDeviceId()).findFirst().orElse(
null);
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java
index 6dfcb0f..735b44b 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/HotspotNetworkEntry.java
@@ -172,6 +172,9 @@
@WorkerThread
protected synchronized boolean connectionInfoMatches(@NonNull WifiInfo wifiInfo) {
+ if (mKey.isVirtualEntry()) {
+ return false;
+ }
return Objects.equals(mKey.getBssid(), wifiInfo.getBSSID());
}
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
index 0f1edb5..81a458d 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/WifiPickerTracker.java
@@ -265,7 +265,7 @@
allEntries.addAll(mSuggestedWifiEntryCache);
allEntries.addAll(mPasspointWifiEntryCache.values());
allEntries.addAll(mOsuWifiEntryCache.values());
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE) {
+ if (mEnableSharedConnectivityFeature) {
allEntries.addAll(mKnownNetworkEntryCache);
allEntries.addAll(mHotspotNetworkEntryCache);
}
@@ -283,7 +283,7 @@
mSuggestedWifiEntryCache.clear();
mPasspointWifiEntryCache.clear();
mOsuWifiEntryCache.clear();
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE) {
+ if (mEnableSharedConnectivityFeature) {
mKnownNetworkEntryCache.clear();
mHotspotNetworkEntryCache.clear();
}
@@ -364,7 +364,7 @@
updateNetworkRequestEntryScans(scanResults);
updatePasspointWifiEntryScans(scanResults);
updateOsuWifiEntryScans(scanResults);
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE && BuildCompat.isAtLeastU()) {
+ if (mEnableSharedConnectivityFeature && BuildCompat.isAtLeastU()) {
updateKnownNetworkEntryScans(scanResults);
// Updating the hotspot entries here makes the UI more reliable when switching pages or
// when toggling settings while the internet picker is shown.
@@ -453,7 +453,7 @@
@WorkerThread
@Override
protected void handleKnownNetworksUpdated(List<KnownNetwork> networks) {
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE) {
+ if (mEnableSharedConnectivityFeature) {
mKnownNetworkDataCache.clear();
mKnownNetworkDataCache.addAll(networks);
updateKnownNetworkEntryScans(mScanResultUpdater.getScanResults());
@@ -465,7 +465,7 @@
@WorkerThread
@Override
protected void handleHotspotNetworksUpdated(List<HotspotNetwork> networks) {
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE) {
+ if (mEnableSharedConnectivityFeature) {
mHotspotNetworkDataCache.clear();
mHotspotNetworkDataCache.addAll(networks);
updateHotspotNetworkEntries();
@@ -498,7 +498,7 @@
@WorkerThread
@Override
protected void handleServiceConnected() {
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE) {
+ if (mEnableSharedConnectivityFeature) {
mKnownNetworkDataCache.clear();
mKnownNetworkDataCache.addAll(mSharedConnectivityManager.getKnownNetworks());
mHotspotNetworkDataCache.clear();
@@ -519,7 +519,7 @@
mActiveWifiEntries.addAll(mStandardWifiEntryCache);
mActiveWifiEntries.addAll(mSuggestedWifiEntryCache);
mActiveWifiEntries.addAll(mPasspointWifiEntryCache.values());
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE) {
+ if (mEnableSharedConnectivityFeature) {
mActiveWifiEntries.addAll(mHotspotNetworkEntryCache);
}
if (mNetworkRequestEntry != null) {
@@ -580,7 +580,7 @@
continue;
}
}
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE) {
+ if (mEnableSharedConnectivityFeature) {
// Filter out any StandardWifiEntry that is matched with a KnownNetworkEntry
if (knownNetworkKeys
.contains(entry.getStandardWifiEntryKey().getScanResultKey())) {
@@ -604,7 +604,7 @@
&& !entry.isAlreadyProvisioned()).collect(toList()));
mWifiEntries.addAll(getContextualWifiEntries().stream().filter(entry ->
entry.getConnectedState() == CONNECTED_STATE_DISCONNECTED).collect(toList()));
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE) {
+ if (mEnableSharedConnectivityFeature) {
mWifiEntries.addAll(mKnownNetworkEntryCache.stream().filter(entry ->
entry.getConnectedState() == CONNECTED_STATE_DISCONNECTED).collect(
toList()));
@@ -1008,7 +1008,7 @@
updateSuggestedWifiEntryScans(Collections.emptyList());
updatePasspointWifiEntryScans(Collections.emptyList());
updateOsuWifiEntryScans(Collections.emptyList());
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE && BuildCompat.isAtLeastU()) {
+ if (mEnableSharedConnectivityFeature && BuildCompat.isAtLeastU()) {
mKnownNetworkEntryCache.clear();
mHotspotNetworkEntryCache.clear();
}
@@ -1032,7 +1032,7 @@
updateSuggestedWifiEntryScans(scanResults);
updatePasspointWifiEntryScans(scanResults);
updateOsuWifiEntryScans(scanResults);
- if (ENABLE_SHARED_CONNECTIVITY_FEATURE && BuildCompat.isAtLeastU()) {
+ if (mEnableSharedConnectivityFeature && BuildCompat.isAtLeastU()) {
updateKnownNetworkEntryScans(scanResults);
// Updating the hotspot entries here makes the UI more reliable when switching pages or
// when toggling settings while the internet picker is shown.
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/TestUtils.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/TestUtils.java
index 85d98cc..71102dd 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/TestUtils.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/TestUtils.java
@@ -57,6 +57,13 @@
return result;
}
+ static ScanResult buildScanResult(
+ String utf8Ssid, String bssid, long timestampMillis, String securityTypesString) {
+ final ScanResult result = buildScanResult(utf8Ssid, bssid, timestampMillis);
+ result.capabilities = securityTypesString;
+ return result;
+ }
+
static WifiConfiguration buildWifiConfiguration(String utf8Ssid) {
final WifiConfiguration config = new WifiConfiguration();
config.SSID = "\"" + utf8Ssid + "\"";
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
index bcacd2c..c77d14a 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/WifiPickerTrackerTest.java
@@ -16,6 +16,9 @@
package com.android.wifitrackerlib;
+import static android.net.wifi.WifiInfo.SECURITY_TYPE_PSK;
+import static android.net.wifi.WifiInfo.SECURITY_TYPE_SAE;
+
import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
@@ -58,6 +61,11 @@
import android.net.wifi.hotspot2.PasspointConfiguration;
import android.net.wifi.hotspot2.pps.Credential;
import android.net.wifi.hotspot2.pps.HomeSp;
+import android.net.wifi.sharedconnectivity.app.HotspotNetwork;
+import android.net.wifi.sharedconnectivity.app.KnownNetwork;
+import android.net.wifi.sharedconnectivity.app.NetworkProviderInfo;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivityClientCallback;
+import android.net.wifi.sharedconnectivity.app.SharedConnectivityManager;
import android.os.Handler;
import android.os.test.TestLooper;
import android.telephony.SubscriptionManager;
@@ -68,6 +76,7 @@
import androidx.annotation.NonNull;
import androidx.lifecycle.Lifecycle;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
@@ -109,6 +118,7 @@
@Mock private NetworkCapabilities mMockNetworkCapabilities;
@Mock private NetworkCapabilities mMockVcnNetworkCapabilities;
@Mock private LinkProperties mMockLinkProperties;
+ @Mock private SharedConnectivityManager mMockSharedConnectivityManager;
private TestLooper mTestLooper;
@@ -120,6 +130,9 @@
private final ArgumentCaptor<ConnectivityManager.NetworkCallback>
mDefaultNetworkCallbackCaptor =
ArgumentCaptor.forClass(ConnectivityManager.NetworkCallback.class);
+ private final ArgumentCaptor<SharedConnectivityClientCallback>
+ mSharedConnectivityCallbackCaptor =
+ ArgumentCaptor.forClass(SharedConnectivityClientCallback.class);
private WifiPickerTracker createTestWifiPickerTracker() {
final Handler testHandler = new Handler(mTestLooper.getLooper());
@@ -185,6 +198,7 @@
.build());
when(mMockConnectivityManager.getLinkProperties(mMockNetwork))
.thenReturn(mMockLinkProperties);
+ when(mMockSharedConnectivityManager.unregisterCallback(any())).thenReturn(true);
when(mMockContext.getResources()).thenReturn(mMockResources);
when(mMockContext.getSystemService(TelephonyManager.class))
.thenReturn(mMockTelephonyManager);
@@ -193,7 +207,16 @@
when(mMockContext.getSystemService(ConnectivityDiagnosticsManager.class))
.thenReturn(mMockConnectivityDiagnosticsManager);
when(mMockContext.getSystemService(WifiScanner.class)).thenReturn(mWifiScanner);
+ when(mMockContext.getSystemService(SharedConnectivityManager.class))
+ .thenReturn(mMockSharedConnectivityManager);
when(mMockContext.getString(anyInt())).thenReturn("");
+
+ BaseWifiTracker.mEnableSharedConnectivityFeature = true;
+ }
+
+ @After
+ public void tearDown() {
+ BaseWifiTracker.mEnableSharedConnectivityFeature = false;
}
/**
@@ -2019,4 +2042,207 @@
mScanListenerCaptor.getValue().onFailure(0, "Reason");
verify(mMockWifiManager).startScan();
}
+
+ @Test
+ public void testSharedConnectivityManager_onStart_registersCallback() {
+ final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+
+ verify(mMockSharedConnectivityManager).registerCallback(any(),
+ mSharedConnectivityCallbackCaptor.capture());
+ }
+
+ @Test
+ public void testSharedConnectivityManager_onServiceConnected_gettersCalled() {
+ final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+ verify(mMockSharedConnectivityManager).registerCallback(any(),
+ mSharedConnectivityCallbackCaptor.capture());
+
+ mSharedConnectivityCallbackCaptor.getValue().onServiceConnected();
+ mTestLooper.dispatchAll();
+
+ verify(mMockSharedConnectivityManager).getKnownNetworks();
+ verify(mMockSharedConnectivityManager).getHotspotNetworks();
+ }
+
+ @Test
+ public void testKnownNetworks_noMatchingScanResult_entryNotIncluded() {
+ final KnownNetwork testKnownNetwork = new KnownNetwork.Builder()
+ .setNetworkSource(KnownNetwork.NETWORK_SOURCE_NEARBY_SELF)
+ .setSsid("ssid")
+ .addSecurityType(SECURITY_TYPE_PSK)
+ .addSecurityType(SECURITY_TYPE_SAE)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Phone", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .build();
+ final ScanResult testScanResult = buildScanResult("other_ssid", "bssid", START_MILLIS);
+ testScanResult.capabilities = "[WEP]";
+ when(mMockSharedConnectivityManager.getKnownNetworks()).thenReturn(
+ List.of(testKnownNetwork));
+ when(mMockWifiManager.getScanResults()).thenReturn(List.of(testScanResult));
+ final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+ verify(mMockSharedConnectivityManager).registerCallback(any(),
+ mSharedConnectivityCallbackCaptor.capture());
+
+ mSharedConnectivityCallbackCaptor.getValue().onServiceConnected();
+ mTestLooper.dispatchAll();
+
+ assertThat(wifiPickerTracker.getWifiEntries().stream().filter(
+ entry -> entry instanceof KnownNetworkEntry).toList()).isEmpty();
+ }
+
+ @Test
+ public void testKnownNetworks_matchingScanResult_entryIncluded() {
+ final KnownNetwork testKnownNetwork = new KnownNetwork.Builder()
+ .setNetworkSource(KnownNetwork.NETWORK_SOURCE_NEARBY_SELF)
+ .setSsid("ssid")
+ .addSecurityType(SECURITY_TYPE_PSK)
+ .addSecurityType(SECURITY_TYPE_SAE)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Phone", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .build();
+ final ScanResult testScanResult = buildScanResult("ssid", "bssid", START_MILLIS);
+ testScanResult.capabilities = "[PSK/SAE]";
+ when(mMockSharedConnectivityManager.getKnownNetworks()).thenReturn(
+ List.of(testKnownNetwork));
+ when(mMockWifiManager.getScanResults()).thenReturn(List.of(testScanResult));
+ final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+ verify(mMockSharedConnectivityManager).registerCallback(any(),
+ mSharedConnectivityCallbackCaptor.capture());
+
+ mSharedConnectivityCallbackCaptor.getValue().onServiceConnected();
+ mTestLooper.dispatchAll();
+
+ assertThat(wifiPickerTracker.getWifiEntries().stream().filter(
+ entry -> entry instanceof KnownNetworkEntry).toList()).hasSize(1);
+ }
+
+ @Test
+ public void testHotspotNetworks_noActiveHotspot_virtualEntryIncluded() {
+ final HotspotNetwork testHotspotNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Phone", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .build();
+ when(mMockSharedConnectivityManager.getHotspotNetworks()).thenReturn(
+ Collections.singletonList(testHotspotNetwork));
+ final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+ verify(mMockSharedConnectivityManager).registerCallback(any(),
+ mSharedConnectivityCallbackCaptor.capture());
+
+ mSharedConnectivityCallbackCaptor.getValue().onServiceConnected();
+ mTestLooper.dispatchAll();
+
+ assertThat(wifiPickerTracker.getWifiEntries().stream().filter(
+ entry -> entry instanceof HotspotNetworkEntry).toList()).hasSize(1);
+ WifiEntry hotspotNetworkEntry = wifiPickerTracker.getWifiEntries().stream().filter(
+ entry -> entry instanceof HotspotNetworkEntry).findFirst().orElseThrow();
+ assertThat(((HotspotNetworkEntry) hotspotNetworkEntry).getHotspotNetworkEntryKey()
+ .isVirtualEntry()).isTrue();
+ }
+
+ @Test
+ public void testHotspotNetworks_activeHotspot_nonVirtualEntryIncluded() {
+ final HotspotNetwork testHotspotNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Phone", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .setHotspotBssid("0a:0b:0c:0d:0e:0f")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .addHotspotSecurityType(SECURITY_TYPE_SAE)
+ .build();
+ when(mMockSharedConnectivityManager.getHotspotNetworks()).thenReturn(
+ Collections.singletonList(testHotspotNetwork));
+ final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+ verify(mMockSharedConnectivityManager).registerCallback(any(),
+ mSharedConnectivityCallbackCaptor.capture());
+
+ mSharedConnectivityCallbackCaptor.getValue().onServiceConnected();
+ mTestLooper.dispatchAll();
+
+ assertThat(wifiPickerTracker.getWifiEntries().stream().filter(
+ entry -> entry instanceof HotspotNetworkEntry).toList()).hasSize(1);
+ WifiEntry hotspotNetworkEntry = wifiPickerTracker.getWifiEntries().stream().filter(
+ entry -> entry instanceof HotspotNetworkEntry).findFirst().orElseThrow();
+ assertThat(((HotspotNetworkEntry) hotspotNetworkEntry).getHotspotNetworkEntryKey()
+ .isVirtualEntry()).isFalse();
+ }
+
+ @Test
+ public void testHotspotNetworks_duplicatesStandardEntry_standardEntryExcluded() {
+ final HotspotNetwork testHotspotNetwork = new HotspotNetwork.Builder()
+ .setDeviceId(1)
+ .setNetworkProviderInfo(new NetworkProviderInfo
+ .Builder("My Phone", "Pixel 7")
+ .setDeviceType(NetworkProviderInfo.DEVICE_TYPE_PHONE)
+ .setBatteryPercentage(100)
+ .setConnectionStrength(3)
+ .build())
+ .setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
+ .setNetworkName("Google Fi")
+ .setHotspotSsid("Instant Hotspot abcde")
+ .setHotspotBssid("0a:0b:0c:0d:0e:0f")
+ .addHotspotSecurityType(SECURITY_TYPE_PSK)
+ .addHotspotSecurityType(SECURITY_TYPE_SAE)
+ .build();
+ when(mMockSharedConnectivityManager.getHotspotNetworks()).thenReturn(
+ Collections.singletonList(testHotspotNetwork));
+ final WifiPickerTracker wifiPickerTracker = createTestWifiPickerTracker();
+ wifiPickerTracker.onStart();
+ mTestLooper.dispatchAll();
+ verify(mMockContext).registerReceiver(mBroadcastReceiverCaptor.capture(),
+ any(), any(), any());
+ when(mMockWifiManager.getScanResults()).thenReturn(List.of(
+ buildScanResult("Instant Hotspot abcde", "0a:0b:0c:0d:0e:0f", START_MILLIS,
+ "[PSK,SAE]")));
+ mBroadcastReceiverCaptor.getValue().onReceive(mMockContext,
+ new Intent(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
+ assertThat(wifiPickerTracker.getWifiEntries().stream().filter(
+ entry -> entry instanceof StandardWifiEntry).toList()).hasSize(1);
+ assertThat(wifiPickerTracker.getWifiEntries().stream().filter(
+ entry -> entry instanceof HotspotNetworkEntry).toList()).isEmpty();
+
+ verify(mMockSharedConnectivityManager).registerCallback(any(),
+ mSharedConnectivityCallbackCaptor.capture());
+ mSharedConnectivityCallbackCaptor.getValue().onServiceConnected();
+ mTestLooper.dispatchAll();
+
+ assertThat(wifiPickerTracker.getWifiEntries().stream().filter(
+ entry -> entry instanceof StandardWifiEntry).toList()).isEmpty();
+ assertThat(wifiPickerTracker.getWifiEntries().stream().filter(
+ entry -> entry instanceof HotspotNetworkEntry).toList()).hasSize(1);
+ }
}