diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 66e8c5459f4..a87bd19986e 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -340,15 +340,21 @@ public class WifiSettings extends RestrictedSettingsFragment mWifiTracker.startTracking(); if (!isUiRestricted() && mWifiManager.isWifiEnabled()) { - setProgressBarVisible(true); - mWifiTracker.forceUpdate(); - if (DEBUG) Log.d(TAG, "WifiSettings onStart APs: " + mWifiTracker.getAccessPoints()); - - getView().removeCallbacks(mUpdateAccessPointsRunnable); - updateAccessPointPreferences(); + forceUpdateAPs(); } } + private void forceUpdateAPs() { + setProgressBarVisible(true); + mWifiTracker.forceUpdate(); + if (DEBUG) { + Log.d(TAG, "WifiSettings force update APs: " + mWifiTracker.getAccessPoints()); + } + + getView().removeCallbacks(mUpdateAccessPointsRunnable); + updateAccessPointPreferences(); + } + /** * @return new WifiEnabler or null (as overridden by WifiSettingsForSetupWizard) */ @@ -661,7 +667,7 @@ public class WifiSettings extends RestrictedSettingsFragment final int wifiState = mWifiManager.getWifiState(); switch (wifiState) { case WifiManager.WIFI_STATE_ENABLED: - updateAccessPointsDelayed(); + forceUpdateAPs(); break; case WifiManager.WIFI_STATE_ENABLING: diff --git a/tests/app/src/com/android/settings/wifi/WifiSettingsUiTest.java b/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java similarity index 76% rename from tests/app/src/com/android/settings/wifi/WifiSettingsUiTest.java rename to tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java index 11a49fcadec..19c332110d2 100644 --- a/tests/app/src/com/android/settings/wifi/WifiSettingsUiTest.java +++ b/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java @@ -19,18 +19,22 @@ import static android.support.test.espresso.Espresso.onView; import static android.support.test.espresso.action.ViewActions.click; import static android.support.test.espresso.matcher.ViewMatchers.withText; -import android.app.Instrumentation; +import static org.mockito.Mockito.when; + import android.content.Context; import android.content.Intent; +import android.net.wifi.WifiManager; import android.support.test.InstrumentationRegistry; import android.support.test.rule.ActivityTestRule; import android.support.test.runner.AndroidJUnit4; -import com.android.settings.R; import com.android.settings.Settings.WifiSettingsActivity; +import com.android.settingslib.wifi.AccessPoint; import com.android.settingslib.wifi.WifiTracker; import com.android.settingslib.wifi.WifiTrackerFactory; +import com.google.common.collect.Lists; + import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -43,9 +47,13 @@ public class WifiSettingsUiTest { // TODO(sghuman): Investigate why resource ids are not resolving correctly in the test apk, // then remove this manual string entry - private static final String WIFI_PREFERENCES = "Wi\\u2011Fi preferences"; + private static final String WIFI_PREFERENCES = "Wi\u2011Fi preferences"; + @Mock private AccessPoint mockAccessPoint; @Mock private WifiTracker mockWifiTracker; + @Mock private WifiManager mockWifiManager; + + private Context mContext; @Rule public ActivityTestRule mActivityRule = @@ -54,7 +62,14 @@ public class WifiSettingsUiTest { @Before public void setUp() { MockitoAnnotations.initMocks(this); + mContext = InstrumentationRegistry.getTargetContext(); + WifiTrackerFactory.setTestingWifiTracker(mockWifiTracker); + when(mockWifiTracker.getManager()).thenReturn(mockWifiManager); + when(mockWifiTracker.getAccessPoints()).thenReturn( + Lists.asList(mockAccessPoint, new AccessPoint[]{})); + + when(mockWifiManager.isWifiEnabled()).thenReturn(true); } private void launchActivity() {