summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRandy Pan <zpan@google.com>2016-11-10 21:40:23 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-11-10 21:40:23 +0000
commit504b3fe45783e37a921554d609abfa0d58aac463 (patch)
treebd945c35093329e29c8e5c660c84fdc25eacff3b /tests
parent7767bd5078d33afd4cfed9ab4c161ed89ab92c5f (diff)
parent6491dffa5242829ccafa59a9a7243d56beafe7e6 (diff)
WNS: less agressive roaming
am: 6491dffa52 Change-Id: I160aeb5c7831a7e1aa06677292783540fff97346
Diffstat (limited to 'tests')
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java52
1 files changed, 51 insertions, 1 deletions
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
index 3127a0132..4167eaeda 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
@@ -489,7 +489,7 @@ public class WifiNetworkSelectorTest {
}
/**
- * No network selection if the currently connected on is already sufficient.
+ * Blacklisted BSSID is filtered out for network selection.
*
* WifiStateMachine is disconnected.
* scanDetails contains a network which is blacklisted.
@@ -520,4 +520,54 @@ public class WifiNetworkSelectorTest {
mWifiInfo, false, true, false);
assertEquals("Expect null configuration", null, candidate);
}
+
+ /**
+ * Wifi network selector doesn't recommend any network if the currently connected one
+ * doesn't show up in the scan results.
+ *
+ * WifiStateMachine is under connected state and 2.4GHz test1 is connected.
+ * The second scan results contains only test2 which now has a stronger RSSI than test1.
+ * Test1 is not in the second scan results.
+ *
+ * Expected behavior: no network recommended by Network Selector
+ */
+ @Test
+ public void noSelectionWhenCurrentNetworkNotInScanResults() {
+ String[] ssids = {"\"test1\"", "\"test2\""};
+ String[] bssids = {"6c:f3:7f:ae:8c:f3", "6c:f3:7f:ae:8c:f4"};
+ int[] freqs = {2437, 2457};
+ String[] caps = {"[WPA2-EAP-CCMP][ESS]", "[WPA2-EAP-CCMP][ESS]"};
+ int[] levels = {mThresholdMinimumRssi2G + 20, mThresholdMinimumRssi2G + 1};
+ int[] securities = {SECURITY_PSK, SECURITY_PSK};
+
+ // Make a network selection to connect to test1.
+ ScanDetailsAndWifiConfigs scanDetailsAndConfigs =
+ WifiNetworkSelectorTestUtil.setupScanDetailsAndConfigStore(ssids, bssids,
+ freqs, caps, levels, securities, mWifiConfigManager, mClock);
+ List<ScanDetail> scanDetails = scanDetailsAndConfigs.getScanDetails();
+ WifiConfiguration candidate = mWifiNetworkSelector.selectNetwork(scanDetails,
+ mWifiInfo, false, true, false);
+
+ when(mWifiInfo.getNetworkId()).thenReturn(0);
+ when(mWifiInfo.getBSSID()).thenReturn(bssids[0]);
+ when(mWifiInfo.is24GHz()).thenReturn(true);
+ when(mWifiInfo.is5GHz()).thenReturn(false);
+ when(mWifiInfo.getRssi()).thenReturn(levels[0]);
+ when(mClock.getElapsedSinceBootMillis()).thenReturn(SystemClock.elapsedRealtime()
+ + WifiNetworkSelector.MINIMUM_NETWORK_SELECTION_INTERVAL_MS + 2000);
+
+ // Prepare the second scan results which have no test1.
+ String[] ssidsNew = {"\"test2\""};
+ String[] bssidsNew = {"6c:f3:7f:ae:8c:f4"};
+ int[] freqsNew = {2457};
+ String[] capsNew = {"[WPA2-EAP-CCMP][ESS]"};
+ int[] levelsNew = {mThresholdMinimumRssi2G + 40};
+ scanDetails = WifiNetworkSelectorTestUtil.buildScanDetails(ssidsNew, bssidsNew,
+ freqsNew, capsNew, levelsNew, mClock);
+ candidate = mWifiNetworkSelector.selectNetwork(scanDetails, mWifiInfo, true, false, false);
+
+ // The second network selection is skipped since current connected network is
+ // missing from the scan results.
+ assertEquals("Expect null configuration", null, candidate);
+ }
}