summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java69
1 files changed, 68 insertions, 1 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java
index eb1bae018..8d578b3d9 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java
@@ -346,6 +346,7 @@ public class WifiStateMachineTest {
@Mock IpManager mIpManager;
@Mock TelephonyManager mTelephonyManager;
@Mock WrongPasswordNotifier mWrongPasswordNotifier;
+ @Mock Clock mClock;
public WifiStateMachineTest() throws Exception {
}
@@ -387,6 +388,7 @@ public class WifiStateMachineTest {
when(mWifiInjector.getWifiNative()).thenReturn(mWifiNative);
when(mWifiInjector.getSelfRecovery()).thenReturn(mSelfRecovery);
when(mWifiInjector.makeTelephonyManager()).thenReturn(mTelephonyManager);
+ when(mWifiInjector.getClock()).thenReturn(mClock);
when(mWifiNative.setupForClientMode())
.thenReturn(Pair.create(WifiNative.SETUP_SUCCESS, mClientInterface));
@@ -2028,7 +2030,7 @@ public class WifiStateMachineTest {
verify(mWifiNative, never()).resetTxPowerLimit();
}
- /*
+ /**
* Verifies that a network disconnection event will result in WifiStateMachine invoking
* {@link WifiConfigManager#removeAllEphemeralOrPasspointConfiguredNetworks()} to remove
* any ephemeral or passpoint networks from it's internal database.
@@ -2075,4 +2077,69 @@ public class WifiStateMachineTest {
verify(mWifiConfigManager).clearRecentFailureReason(eq(0));
verify(mWifiConfigManager, never()).setRecentFailureAssociationStatus(anyInt(), anyInt());
}
+
+ /**
+ * Test that the helper method
+ * {@link WifiStateMachine#shouldEvaluateWhetherToSendExplicitlySelected(WifiConfiguration)}
+ * returns true when we connect to the last selected network before expiration of
+ * {@link WifiStateMachine#LAST_SELECTED_NETWORK_EXPIRATION_AGE_MILLIS}.
+ */
+ @Test
+ public void testShouldEvaluateWhetherToSendExplicitlySelected_SameNetworkNotExpired() {
+ long lastSelectedTimestamp = 45666743454L;
+ int lastSelectedNetworkId = 5;
+
+ when(mClock.getElapsedSinceBootMillis()).thenReturn(
+ lastSelectedTimestamp
+ + WifiStateMachine.LAST_SELECTED_NETWORK_EXPIRATION_AGE_MILLIS - 1);
+ when(mWifiConfigManager.getLastSelectedTimeStamp()).thenReturn(lastSelectedTimestamp);
+ when(mWifiConfigManager.getLastSelectedNetwork()).thenReturn(lastSelectedNetworkId);
+
+ WifiConfiguration currentConfig = new WifiConfiguration();
+ currentConfig.networkId = lastSelectedNetworkId;
+ assertTrue(mWsm.shouldEvaluateWhetherToSendExplicitlySelected(currentConfig));
+ }
+
+ /**
+ * Test that the helper method
+ * {@link WifiStateMachine#shouldEvaluateWhetherToSendExplicitlySelected(WifiConfiguration)}
+ * returns false when we connect to the last selected network after expiration of
+ * {@link WifiStateMachine#LAST_SELECTED_NETWORK_EXPIRATION_AGE_MILLIS}.
+ */
+ @Test
+ public void testShouldEvaluateWhetherToSendExplicitlySelected_SameNetworkExpired() {
+ long lastSelectedTimestamp = 45666743454L;
+ int lastSelectedNetworkId = 5;
+
+ when(mClock.getElapsedSinceBootMillis()).thenReturn(
+ lastSelectedTimestamp
+ + WifiStateMachine.LAST_SELECTED_NETWORK_EXPIRATION_AGE_MILLIS + 1);
+ when(mWifiConfigManager.getLastSelectedTimeStamp()).thenReturn(lastSelectedTimestamp);
+ when(mWifiConfigManager.getLastSelectedNetwork()).thenReturn(lastSelectedNetworkId);
+
+ WifiConfiguration currentConfig = new WifiConfiguration();
+ currentConfig.networkId = lastSelectedNetworkId;
+ assertFalse(mWsm.shouldEvaluateWhetherToSendExplicitlySelected(currentConfig));
+ }
+
+ /**
+ * Test that the helper method
+ * {@link WifiStateMachine#shouldEvaluateWhetherToSendExplicitlySelected(WifiConfiguration)}
+ * returns false when we connect to a different network to the last selected network.
+ */
+ @Test
+ public void testShouldEvaluateWhetherToSendExplicitlySelected_DifferentNetwork() {
+ long lastSelectedTimestamp = 45666743454L;
+ int lastSelectedNetworkId = 5;
+
+ when(mClock.getElapsedSinceBootMillis()).thenReturn(
+ lastSelectedTimestamp
+ + WifiStateMachine.LAST_SELECTED_NETWORK_EXPIRATION_AGE_MILLIS - 1);
+ when(mWifiConfigManager.getLastSelectedTimeStamp()).thenReturn(lastSelectedTimestamp);
+ when(mWifiConfigManager.getLastSelectedNetwork()).thenReturn(lastSelectedNetworkId);
+
+ WifiConfiguration currentConfig = new WifiConfiguration();
+ currentConfig.networkId = lastSelectedNetworkId - 1;
+ assertFalse(mWsm.shouldEvaluateWhetherToSendExplicitlySelected(currentConfig));
+ }
}