diff options
Diffstat (limited to 'libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java')
-rw-r--r-- | libs/WifiTrackerLib/tests/src/com/android/wifitrackerlib/HotspotNetworkEntryTest.java | 133 |
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, |