Force update APs when enabling wifi in WifiSettings.

This reverts commit b2bdc8f17b6148495731e4bfdd9968a6840907eb
and fixes a broken Espresso test case.

Reason for revert: Rolling forward after fix in ag/2133493, to fix b/37324736

Bug: b/37324736
Test: runtest --path
packages/apps/Settings/tests/unit/src/com/android/settings/wifi/WifiSettingsUiTest.java

Change-Id: I9cdf8cb1043af5d527eccbd9cc56d3b02419d7ac
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 66e8c54..a87bd19 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -340,15 +340,21 @@
         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 @@
         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 11a49fc..19c3321 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.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 @@
 
     // 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<WifiSettingsActivity> mActivityRule =
@@ -54,7 +62,14 @@
     @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() {