summaryrefslogtreecommitdiff
path: root/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java')
-rw-r--r--libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java133
1 files changed, 120 insertions, 13 deletions
diff --git a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java
index 9bbbd4c10..4bb599480 100644
--- a/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java
+++ b/libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java
@@ -16,10 +16,14 @@
package com.android.wifitrackerlib;
+import static android.net.wifi.ScanResult.WIFI_STANDARD_11N;
import static android.net.wifi.WifiInfo.SECURITY_TYPE_PSK;
+import static android.net.wifi.WifiInfo.SECURITY_TYPE_SAE;
import static com.android.wifitrackerlib.WifiEntry.CONNECTED_STATE_CONNECTED;
import static com.android.wifitrackerlib.WifiEntry.CONNECTED_STATE_DISCONNECTED;
+import static com.android.wifitrackerlib.WifiEntry.MIN_FREQ_24GHZ;
+import static com.android.wifitrackerlib.WifiEntry.WIFI_LEVEL_MAX;
import static com.google.common.truth.Truth.assertThat;
@@ -33,6 +37,7 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.content.Context;
+import android.content.res.Resources;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.wifi.WifiInfo;
@@ -55,6 +60,7 @@ public class HotspotNetworkEntryTest {
@Mock private WifiEntry.DisconnectCallback mMockDisconnectCallback;
@Mock private WifiTrackerInjector mMockInjector;
@Mock private Context mMockContext;
+ @Mock private Resources mMockResources;
@Mock private WifiManager mMockWifiManager;
@Mock private SharedConnectivityManager mMockSharedConnectivityManager;
@Mock private WifiInfo mMockWifiInfo;
@@ -75,7 +81,6 @@ public class HotspotNetworkEntryTest {
.setHostNetworkType(HotspotNetwork.NETWORK_TYPE_CELLULAR)
.setNetworkName("Google Fi")
.setHotspotSsid("Instant Hotspot abcde")
- .setHotspotBssid("0a:0b:0c:0d:0e:0f")
.addHotspotSecurityType(SECURITY_TYPE_PSK)
.build();
@@ -88,7 +93,12 @@ public class HotspotNetworkEntryTest {
when(mMockNetworkCapabilities.getTransportInfo()).thenReturn(mMockWifiInfo);
when(mMockWifiInfo.isPrimary()).thenReturn(true);
- when(mMockWifiInfo.getRssi()).thenReturn(WifiInfo.INVALID_RSSI);
+ when(mMockWifiInfo.getSSID()).thenReturn("Instant Hotspot abcde");
+ when(mMockWifiInfo.getCurrentSecurityType()).thenReturn(SECURITY_TYPE_PSK);
+ when(mMockWifiInfo.getRssi()).thenReturn(TestUtils.GOOD_RSSI);
+ when(mMockWifiInfo.getMacAddress()).thenReturn("01:02:03:04:05:06");
+ when(mMockWifiInfo.getWifiStandard()).thenReturn(WIFI_STANDARD_11N);
+ when(mMockWifiInfo.getFrequency()).thenReturn(MIN_FREQ_24GHZ);
when(mMockContext.getString(R.string.wifitrackerlib_hotspot_network_connecting))
.thenReturn("Connecting…");
@@ -104,38 +114,50 @@ public class HotspotNetworkEntryTest {
Object[] args = invocation.getArguments();
return args[1] + " from " + args[2];
});
+ when(mMockContext.getString(R.string.wifitrackerlib_wifi_security_wpa_wpa2))
+ .thenReturn("WPA/WPA2-Personal");
+ when(mMockContext.getString(R.string.wifitrackerlib_wifi_standard_11n))
+ .thenReturn("Wi‑Fi 4");
+ when(mMockContext.getResources()).thenReturn(mMockResources);
+ when(mMockResources.getString(R.string.wifitrackerlib_wifi_band_24_ghz)).thenReturn(
+ "2.4 GHz");
+ when(mMockResources.getString(R.string.wifitrackerlib_multiband_separator)).thenReturn(
+ ", ");
}
@Test
- public void testConnectionInfoMatches_matchesBssid() {
+ public void testConnectionInfoMatches_matchesSsidAndSecurity() {
final HotspotNetworkEntry entry = new HotspotNetworkEntry(
mMockInjector, mMockContext, mTestHandler,
mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
- when(mMockWifiInfo.getBSSID()).thenReturn("00:00:00:00:00:00");
+ when(mMockWifiInfo.getSSID()).thenReturn("Instant Hotspot fghij");
+ when(mMockWifiInfo.getCurrentSecurityType()).thenReturn(SECURITY_TYPE_SAE);
assertThat(entry.connectionInfoMatches(mMockWifiInfo)).isFalse();
- when(mMockWifiInfo.getBSSID()).thenReturn("0a:0b:0c:0d:0e:0f");
+ when(mMockWifiInfo.getSSID()).thenReturn("Instant Hotspot abcde");
+ when(mMockWifiInfo.getCurrentSecurityType()).thenReturn(SECURITY_TYPE_PSK);
assertThat(entry.connectionInfoMatches(mMockWifiInfo)).isTrue();
}
@Test
- public void testOnNetworkCapabilitiesChanged_matchingBSSID_becomesConnected() {
+ public void testOnNetworkCapabilitiesChanged_matchingSsidAndSecurity_becomesConnected() {
final HotspotNetworkEntry entry = new HotspotNetworkEntry(
mMockInjector, mMockContext, mTestHandler,
mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
- when(mMockWifiInfo.getRssi()).thenReturn(TestUtils.GOOD_RSSI);
- // Ignore non-matching BSSID
- when(mMockWifiInfo.getBSSID()).thenReturn("00:00:00:00:00:00");
+ // Ignore non-matching SSID and security type
+ when(mMockWifiInfo.getSSID()).thenReturn("Instant Hotspot fghij");
+ when(mMockWifiInfo.getCurrentSecurityType()).thenReturn(SECURITY_TYPE_SAE);
entry.onNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
assertThat(entry.getConnectedState()).isEqualTo(CONNECTED_STATE_DISCONNECTED);
assertThat(entry.canConnect()).isTrue();
assertThat(entry.canDisconnect()).isFalse();
- // Matching BSSID should result in connected
- when(mMockWifiInfo.getBSSID()).thenReturn("0a:0b:0c:0d:0e:0f");
+ // Matching SSID and security type should result in connected
+ when(mMockWifiInfo.getSSID()).thenReturn("Instant Hotspot abcde");
+ when(mMockWifiInfo.getCurrentSecurityType()).thenReturn(SECURITY_TYPE_PSK);
entry.onNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
assertThat(entry.getConnectedState()).isEqualTo(CONNECTED_STATE_CONNECTED);
assertThat(entry.canConnect()).isFalse();
@@ -147,8 +169,6 @@ public class HotspotNetworkEntryTest {
final HotspotNetworkEntry entry = new HotspotNetworkEntry(
mMockInjector, mMockContext, mTestHandler,
mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
- when(mMockWifiInfo.getBSSID()).thenReturn("0a:0b:0c:0d:0e:0f");
- when(mMockWifiInfo.getRssi()).thenReturn(TestUtils.GOOD_RSSI);
entry.onNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
// Non-matching network loss should be ignored
@@ -228,6 +248,80 @@ public class HotspotNetworkEntryTest {
}
@Test
+ public void testGetSummary_connectionSuccess_resetsConnectingString() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+ entry.setListener(mMockListener);
+ entry.connect(mMockConnectCallback);
+ entry.onConnectionStatusChanged(
+ HotspotNetworkConnectionStatus.CONNECTION_STATUS_ENABLING_HOTSPOT);
+ mTestLooper.dispatchAll();
+
+ entry.onNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
+ entry.onNetworkLost(mMockNetwork);
+
+ assertThat(entry.getSummary()).isNotEqualTo("Connecting…");
+ }
+
+ @Test
+ public void testGetSsid_usesHotspotNetworkData() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+
+ assertThat(entry.getSsid()).isEqualTo("Instant Hotspot abcde");
+ }
+
+ @Test
+ public void testGetMacAddress_usesWifiInfo() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+ entry.onNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
+
+ assertThat(entry.getMacAddress()).isEqualTo("01:02:03:04:05:06");
+ }
+
+ @Test
+ public void testGetPrivacy_returnsRandomized() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+
+ assertThat(entry.getPrivacy()).isEqualTo(HotspotNetworkEntry.PRIVACY_RANDOMIZED_MAC);
+ }
+
+ @Test
+ public void testGetSecurityString_usesHotspotNetworkData() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+
+ assertThat(entry.getSecurityString(false)).isEqualTo("WPA/WPA2-Personal");
+ }
+
+ @Test
+ public void testGetStandardString_usesWifiInfo() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+ entry.onNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
+
+ assertThat(entry.getStandardString()).isEqualTo("Wi‑Fi 4");
+ }
+
+ @Test
+ public void testGetBandString_usesWifiInfo() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+ entry.onNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
+
+ assertThat(entry.getBandString()).isEqualTo("2.4 GHz");
+ }
+
+ @Test
public void testGetUpstreamConnectionStrength_usesHotspotNetworkData() {
final HotspotNetworkEntry entry = new HotspotNetworkEntry(
mMockInjector, mMockContext, mTestHandler,
@@ -264,6 +358,19 @@ public class HotspotNetworkEntryTest {
}
@Test
+ public void testGetLevel_statusNotConnected_returnsMaxValue() {
+ final HotspotNetworkEntry entry = new HotspotNetworkEntry(
+ mMockInjector, mMockContext, mTestHandler,
+ mMockWifiManager, mMockSharedConnectivityManager, TEST_HOTSPOT_NETWORK_DATA);
+
+ when(mMockWifiInfo.getSSID()).thenReturn("Instant Hotspot fghij");
+ when(mMockWifiInfo.getCurrentSecurityType()).thenReturn(SECURITY_TYPE_SAE);
+ entry.onNetworkCapabilitiesChanged(mMockNetwork, mMockNetworkCapabilities);
+
+ assertThat(entry.getLevel()).isEqualTo(WIFI_LEVEL_MAX);
+ }
+
+ @Test
public void testConnect_serviceCalled() {
final HotspotNetworkEntry entry = new HotspotNetworkEntry(
mMockInjector, mMockContext, mTestHandler,