Merge "extending timeout to stabilize tests" into ics-mr1
diff --git a/core/tests/bandwidthtests/src/com/android/bandwidthtest/BandwidthTest.java b/core/tests/bandwidthtests/src/com/android/bandwidthtest/BandwidthTest.java
index a781472..76b702e 100644
--- a/core/tests/bandwidthtests/src/com/android/bandwidthtest/BandwidthTest.java
+++ b/core/tests/bandwidthtests/src/com/android/bandwidthtest/BandwidthTest.java
@@ -90,6 +90,7 @@
      */
     @LargeTest
     public void testWifiDownload() throws Exception {
+        mConnectionUtil.wifiTestInit();
         assertTrue("Could not connect to wifi!", setDeviceWifiAndAirplaneMode(mSsid));
         downloadFile();
     }
@@ -143,6 +144,7 @@
      */
     @LargeTest
     public void testWifiUpload() throws Exception {
+        mConnectionUtil.wifiTestInit();
         assertTrue(setDeviceWifiAndAirplaneMode(mSsid));
         uploadFile();
     }
@@ -197,6 +199,7 @@
      */
     @LargeTest
     public void testWifiDownloadWithDownloadManager() throws Exception {
+        mConnectionUtil.wifiTestInit();
         assertTrue(setDeviceWifiAndAirplaneMode(mSsid));
         downloadFileUsingDownloadManager();
     }
@@ -286,6 +289,8 @@
      * @return true if we successfully connect to mobile data.
      */
     public boolean hasMobileData() {
+        assertTrue(mConnectionUtil.waitForNetworkState(ConnectivityManager.TYPE_MOBILE,
+                State.CONNECTED, ConnectionUtil.LONG_TIMEOUT));
         assertTrue("Not connected to mobile", mConnectionUtil.isConnectedToMobile());
         assertFalse("Still connected to wifi.", mConnectionUtil.isConnectedToWifi());
         return mConnectionUtil.hasData();
diff --git a/core/tests/bandwidthtests/src/com/android/bandwidthtest/util/ConnectionUtil.java b/core/tests/bandwidthtests/src/com/android/bandwidthtest/util/ConnectionUtil.java
index a5e5ab0e..7499f68 100644
--- a/core/tests/bandwidthtests/src/com/android/bandwidthtest/util/ConnectionUtil.java
+++ b/core/tests/bandwidthtests/src/com/android/bandwidthtest/util/ConnectionUtil.java
@@ -57,7 +57,7 @@
     private static final int WAIT_FOR_SCAN_RESULT = 10 * 1000; // 10 seconds
     private static final int WIFI_SCAN_TIMEOUT = 50 * 1000;
     public static final int SHORT_TIMEOUT = 5 * 1000;
-    public static final int LONG_TIMEOUT = 10 * 1000;
+    public static final int LONG_TIMEOUT = 120 * 1000; // 2 minutes
     private ConnectivityReceiver mConnectivityReceiver = null;
     private WifiReceiver mWifiReceiver = null;
     private DownloadReceiver mDownloadReceiver = null;
@@ -118,8 +118,14 @@
 
         initializeNetworkStates();
 
-        mWifiManager.setWifiEnabled(true);
 
+    }
+
+    /**
+     * Additional initialization needed for wifi related tests.
+     */
+    public void wifiTestInit() {
+        mWifiManager.setWifiEnabled(true);
         Log.v(LOG_TAG, "Clear Wifi before we start the test.");
         sleep(SHORT_TIMEOUT);
         removeConfiguredNetworksAndDisableWifi();
@@ -146,10 +152,10 @@
                 Log.v("ConnectivityReceiver", "onReceive() called with " + intent);
                 return;
             }
-            if (intent.hasExtra(ConnectivityManager.EXTRA_NETWORK_INFO)) {
-                mNetworkInfo = (NetworkInfo)
-                        intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
-            }
+
+            final ConnectivityManager connManager = (ConnectivityManager) context
+                    .getSystemService(Context.CONNECTIVITY_SERVICE);
+            mNetworkInfo = connManager.getActiveNetworkInfo();
 
             if (intent.hasExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO)) {
                 mOtherNetworkInfo = (NetworkInfo)
@@ -525,7 +531,7 @@
     /**
      * Connect to Wi-Fi with the given configuration.
      * @param config
-     * @return true if we ar connected to a given
+     * @return true if we are connected to a given AP.
      */
     public boolean connectToWifiWithConfiguration(WifiConfiguration config) {
         //  The SSID in the configuration is a pure string, need to convert it to a quoted string.