Loading packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +4 −0 Original line number Diff line number Diff line Loading @@ -265,6 +265,9 @@ public class AccessPoint implements Comparable<AccessPoint> { public String toString() { StringBuilder builder = new StringBuilder().append("AccessPoint(") .append(ssid); if (bssid != null) { builder.append(":").append(bssid); } if (isSaved()) { builder.append(',').append("saved"); } Loading @@ -280,6 +283,7 @@ public class AccessPoint implements Comparable<AccessPoint> { if (security != SECURITY_NONE) { builder.append(',').append(securityToString(security, pskType)); } builder.append(",level=").append(getLevel()); builder.append(",rankingScore=").append(mRankingScore); builder.append(",badge=").append(mBadge); Loading packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java +1 −2 Original line number Diff line number Diff line Loading @@ -271,7 +271,6 @@ public class WifiTracker { if (mWifiManager.isWifiEnabled()) { mScanner.resume(); } mWorkHandler.sendEmptyMessage(WorkHandler.MSG_UPDATE_ACCESS_POINTS); } /** Loading Loading @@ -715,9 +714,9 @@ public class WifiTracker { mMainHandler.sendEmptyMessage(MainHandler.MSG_CONNECTED_CHANGED); mWorkHandler.sendEmptyMessage(WorkHandler.MSG_UPDATE_ACCESS_POINTS); mWorkHandler.obtainMessage(WorkHandler.MSG_UPDATE_NETWORK_INFO, info) .sendToTarget(); mWorkHandler.sendEmptyMessage(WorkHandler.MSG_UPDATE_ACCESS_POINTS); } } }; Loading packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java +67 −21 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ */ package com.android.settingslib.wifi; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; Loading @@ -28,6 +30,7 @@ import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkBadging; import android.net.NetworkInfo; import android.net.NetworkKey; import android.net.NetworkScoreManager; import android.net.ScoredNetwork; Loading @@ -35,6 +38,7 @@ import android.net.RssiCurve; import android.net.WifiKey; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.net.wifi.WifiNetworkScoreCache; import android.net.wifi.WifiSsid; Loading Loading @@ -68,6 +72,8 @@ import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; // TODO(sghuman): Change these to robolectric tests b/35766684. @SmallTest @RunWith(AndroidJUnit4.class) public class WifiTrackerTest { Loading Loading @@ -115,9 +121,10 @@ public class WifiTrackerTest { @Before public void setUp() { mContext = InstrumentationRegistry.getTargetContext(); MockitoAnnotations.initMocks(this); mContext = InstrumentationRegistry.getTargetContext(); mWorkerThread = new HandlerThread("TestHandlerWorkerThread"); mWorkerThread.start(); mLooper = mWorkerThread.getLooper(); Loading Loading @@ -221,9 +228,15 @@ public class WifiTrackerTest { SystemClock.elapsedRealtime() * 1000 /* microsecond timestamp */); } private WifiTracker createTrackerAndInjectInitialScanResults() throws InterruptedException { private WifiTracker createTrackerWithImmediateBroadcastsAndInjectInitialScanResults( Intent ... intents) throws InterruptedException { WifiTracker tracker = createMockedWifiTracker(); startTracking(tracker); for (Intent intent : intents) { tracker.mReceiver.onReceive(mContext, intent); } mAccessPointsChangedLatch = new CountDownLatch(1); sendScanResultsAndProcess(tracker); Loading Loading @@ -294,6 +307,31 @@ public class WifiTrackerTest { scoreCache.updateScores(Arrays.asList(sc1, sc2)); } private WifiTracker createTrackerWithScanResultsAndAccessPoint1Connected() throws InterruptedException { int networkId = 123; WifiInfo wifiInfo = new WifiInfo(); wifiInfo.setSSID(WifiSsid.createFromAsciiEncoded(SSID_1)); wifiInfo.setBSSID(BSSID_1); wifiInfo.setNetworkId(networkId); when(mockWifiManager.getConnectionInfo()).thenReturn(wifiInfo); WifiConfiguration configuration = new WifiConfiguration(); configuration.SSID = SSID_1; configuration.BSSID = BSSID_1; configuration.networkId = networkId; when(mockWifiManager.getConfiguredNetworks()).thenReturn(Arrays.asList(configuration)); NetworkInfo networkInfo = new NetworkInfo( ConnectivityManager.TYPE_WIFI, 0, "Type Wifi", "subtype"); networkInfo.setDetailedState(NetworkInfo.DetailedState.CONNECTED, "connected", "test"); Intent intent = new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION); intent.putExtra(WifiManager.EXTRA_NETWORK_INFO, networkInfo); return createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(intent); } @Test public void testAccessPointListenerSetWhenLookingUpUsingScanResults() { ScanResult scanResult = new ScanResult(); Loading Loading @@ -356,13 +394,22 @@ public class WifiTrackerTest { .unregisterNetworkScoreCache(NetworkKey.TYPE_WIFI, scoreCache); } @Test public void startTrackingShouldSetConnectedAccessPointAsActive() throws InterruptedException { WifiTracker tracker = createTrackerWithScanResultsAndAccessPoint1Connected(); List<AccessPoint> aps = tracker.getAccessPoints(); assertThat(aps).hasSize(2); assertThat(aps.get(0).isActive()).isTrue(); } @Test public void startTrackingShouldRequestScoresForCurrentAccessPoints() throws InterruptedException { // Start the tracker and inject the initial scan results and then stop tracking WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); tracker.stopTracking(); android.util.Log.d("WifiTrackerTest", "Clearing previously captured requested keys"); mRequestedKeys.clear(); mRequestScoresLatch = new CountDownLatch(1); Loading @@ -370,7 +417,6 @@ public class WifiTrackerTest { assertTrue("Latch timed out", mRequestScoresLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS)); android.util.Log.d("WifiTrackerTest", "requested keys: " + mRequestedKeys); assertTrue(mRequestedKeys.contains(NETWORK_KEY_1)); assertTrue(mRequestedKeys.contains(NETWORK_KEY_2)); } Loading @@ -394,7 +440,7 @@ public class WifiTrackerTest { @Test public void scoreCacheUpdateScoresShouldChangeSortOrder() throws InterruptedException { WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); List<AccessPoint> aps = tracker.getAccessPoints(); assertTrue(aps.size() == 2); assertEquals(aps.get(0).getSsidStr(), SSID_1); Loading @@ -416,7 +462,7 @@ public class WifiTrackerTest { Settings.Global.NETWORK_SCORING_UI_ENABLED, 0 /* disabled */); WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); List<AccessPoint> aps = tracker.getAccessPoints(); assertTrue(aps.size() == 2); assertEquals(aps.get(0).getSsidStr(), SSID_1); Loading @@ -432,7 +478,7 @@ public class WifiTrackerTest { @Test public void scoreCacheUpdateScoresShouldInsertBadgeIntoAccessPoint() throws InterruptedException { WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); updateScoresAndWaitForAccessPointsChangedCallback(); List<AccessPoint> aps = tracker.getAccessPoints(); Loading @@ -454,7 +500,7 @@ public class WifiTrackerTest { Settings.Global.NETWORK_SCORING_UI_ENABLED, 0 /* disabled */); WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); updateScoresAndWaitForAccessPointsChangedCallback(); List<AccessPoint> aps = tracker.getAccessPoints(); Loading @@ -473,7 +519,7 @@ public class WifiTrackerTest { // Scores can be requested together or serially depending on how the scan results are // processed. mRequestScoresLatch = new CountDownLatch(2); WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); mRequestScoresLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS); mRequestedKeys.clear(); Loading Loading @@ -503,7 +549,7 @@ public class WifiTrackerTest { @Test public void scoreCacheAndListenerShouldBeUnregisteredWhenStopTrackingIsCalled() throws Exception { WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); WifiNetworkScoreCache cache = mScoreCacheCaptor.getValue(); tracker.stopTracking(); Loading Loading
packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +4 −0 Original line number Diff line number Diff line Loading @@ -265,6 +265,9 @@ public class AccessPoint implements Comparable<AccessPoint> { public String toString() { StringBuilder builder = new StringBuilder().append("AccessPoint(") .append(ssid); if (bssid != null) { builder.append(":").append(bssid); } if (isSaved()) { builder.append(',').append("saved"); } Loading @@ -280,6 +283,7 @@ public class AccessPoint implements Comparable<AccessPoint> { if (security != SECURITY_NONE) { builder.append(',').append(securityToString(security, pskType)); } builder.append(",level=").append(getLevel()); builder.append(",rankingScore=").append(mRankingScore); builder.append(",badge=").append(mBadge); Loading
packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java +1 −2 Original line number Diff line number Diff line Loading @@ -271,7 +271,6 @@ public class WifiTracker { if (mWifiManager.isWifiEnabled()) { mScanner.resume(); } mWorkHandler.sendEmptyMessage(WorkHandler.MSG_UPDATE_ACCESS_POINTS); } /** Loading Loading @@ -715,9 +714,9 @@ public class WifiTracker { mMainHandler.sendEmptyMessage(MainHandler.MSG_CONNECTED_CHANGED); mWorkHandler.sendEmptyMessage(WorkHandler.MSG_UPDATE_ACCESS_POINTS); mWorkHandler.obtainMessage(WorkHandler.MSG_UPDATE_NETWORK_INFO, info) .sendToTarget(); mWorkHandler.sendEmptyMessage(WorkHandler.MSG_UPDATE_ACCESS_POINTS); } } }; Loading
packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/WifiTrackerTest.java +67 −21 Original line number Diff line number Diff line Loading @@ -15,6 +15,8 @@ */ package com.android.settingslib.wifi; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; Loading @@ -28,6 +30,7 @@ import android.content.Context; import android.content.Intent; import android.net.ConnectivityManager; import android.net.NetworkBadging; import android.net.NetworkInfo; import android.net.NetworkKey; import android.net.NetworkScoreManager; import android.net.ScoredNetwork; Loading @@ -35,6 +38,7 @@ import android.net.RssiCurve; import android.net.WifiKey; import android.net.wifi.ScanResult; import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.net.wifi.WifiNetworkScoreCache; import android.net.wifi.WifiSsid; Loading Loading @@ -68,6 +72,8 @@ import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; // TODO(sghuman): Change these to robolectric tests b/35766684. @SmallTest @RunWith(AndroidJUnit4.class) public class WifiTrackerTest { Loading Loading @@ -115,9 +121,10 @@ public class WifiTrackerTest { @Before public void setUp() { mContext = InstrumentationRegistry.getTargetContext(); MockitoAnnotations.initMocks(this); mContext = InstrumentationRegistry.getTargetContext(); mWorkerThread = new HandlerThread("TestHandlerWorkerThread"); mWorkerThread.start(); mLooper = mWorkerThread.getLooper(); Loading Loading @@ -221,9 +228,15 @@ public class WifiTrackerTest { SystemClock.elapsedRealtime() * 1000 /* microsecond timestamp */); } private WifiTracker createTrackerAndInjectInitialScanResults() throws InterruptedException { private WifiTracker createTrackerWithImmediateBroadcastsAndInjectInitialScanResults( Intent ... intents) throws InterruptedException { WifiTracker tracker = createMockedWifiTracker(); startTracking(tracker); for (Intent intent : intents) { tracker.mReceiver.onReceive(mContext, intent); } mAccessPointsChangedLatch = new CountDownLatch(1); sendScanResultsAndProcess(tracker); Loading Loading @@ -294,6 +307,31 @@ public class WifiTrackerTest { scoreCache.updateScores(Arrays.asList(sc1, sc2)); } private WifiTracker createTrackerWithScanResultsAndAccessPoint1Connected() throws InterruptedException { int networkId = 123; WifiInfo wifiInfo = new WifiInfo(); wifiInfo.setSSID(WifiSsid.createFromAsciiEncoded(SSID_1)); wifiInfo.setBSSID(BSSID_1); wifiInfo.setNetworkId(networkId); when(mockWifiManager.getConnectionInfo()).thenReturn(wifiInfo); WifiConfiguration configuration = new WifiConfiguration(); configuration.SSID = SSID_1; configuration.BSSID = BSSID_1; configuration.networkId = networkId; when(mockWifiManager.getConfiguredNetworks()).thenReturn(Arrays.asList(configuration)); NetworkInfo networkInfo = new NetworkInfo( ConnectivityManager.TYPE_WIFI, 0, "Type Wifi", "subtype"); networkInfo.setDetailedState(NetworkInfo.DetailedState.CONNECTED, "connected", "test"); Intent intent = new Intent(WifiManager.NETWORK_STATE_CHANGED_ACTION); intent.putExtra(WifiManager.EXTRA_NETWORK_INFO, networkInfo); return createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(intent); } @Test public void testAccessPointListenerSetWhenLookingUpUsingScanResults() { ScanResult scanResult = new ScanResult(); Loading Loading @@ -356,13 +394,22 @@ public class WifiTrackerTest { .unregisterNetworkScoreCache(NetworkKey.TYPE_WIFI, scoreCache); } @Test public void startTrackingShouldSetConnectedAccessPointAsActive() throws InterruptedException { WifiTracker tracker = createTrackerWithScanResultsAndAccessPoint1Connected(); List<AccessPoint> aps = tracker.getAccessPoints(); assertThat(aps).hasSize(2); assertThat(aps.get(0).isActive()).isTrue(); } @Test public void startTrackingShouldRequestScoresForCurrentAccessPoints() throws InterruptedException { // Start the tracker and inject the initial scan results and then stop tracking WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); tracker.stopTracking(); android.util.Log.d("WifiTrackerTest", "Clearing previously captured requested keys"); mRequestedKeys.clear(); mRequestScoresLatch = new CountDownLatch(1); Loading @@ -370,7 +417,6 @@ public class WifiTrackerTest { assertTrue("Latch timed out", mRequestScoresLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS)); android.util.Log.d("WifiTrackerTest", "requested keys: " + mRequestedKeys); assertTrue(mRequestedKeys.contains(NETWORK_KEY_1)); assertTrue(mRequestedKeys.contains(NETWORK_KEY_2)); } Loading @@ -394,7 +440,7 @@ public class WifiTrackerTest { @Test public void scoreCacheUpdateScoresShouldChangeSortOrder() throws InterruptedException { WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); List<AccessPoint> aps = tracker.getAccessPoints(); assertTrue(aps.size() == 2); assertEquals(aps.get(0).getSsidStr(), SSID_1); Loading @@ -416,7 +462,7 @@ public class WifiTrackerTest { Settings.Global.NETWORK_SCORING_UI_ENABLED, 0 /* disabled */); WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); List<AccessPoint> aps = tracker.getAccessPoints(); assertTrue(aps.size() == 2); assertEquals(aps.get(0).getSsidStr(), SSID_1); Loading @@ -432,7 +478,7 @@ public class WifiTrackerTest { @Test public void scoreCacheUpdateScoresShouldInsertBadgeIntoAccessPoint() throws InterruptedException { WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); updateScoresAndWaitForAccessPointsChangedCallback(); List<AccessPoint> aps = tracker.getAccessPoints(); Loading @@ -454,7 +500,7 @@ public class WifiTrackerTest { Settings.Global.NETWORK_SCORING_UI_ENABLED, 0 /* disabled */); WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); updateScoresAndWaitForAccessPointsChangedCallback(); List<AccessPoint> aps = tracker.getAccessPoints(); Loading @@ -473,7 +519,7 @@ public class WifiTrackerTest { // Scores can be requested together or serially depending on how the scan results are // processed. mRequestScoresLatch = new CountDownLatch(2); WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); mRequestScoresLatch.await(LATCH_TIMEOUT, TimeUnit.MILLISECONDS); mRequestedKeys.clear(); Loading Loading @@ -503,7 +549,7 @@ public class WifiTrackerTest { @Test public void scoreCacheAndListenerShouldBeUnregisteredWhenStopTrackingIsCalled() throws Exception { WifiTracker tracker = createTrackerAndInjectInitialScanResults(); WifiTracker tracker = createTrackerWithImmediateBroadcastsAndInjectInitialScanResults(); WifiNetworkScoreCache cache = mScoreCacheCaptor.getValue(); tracker.stopTracking(); Loading