DownloadManager test will wait until certain progress, is made
during download before moving to next stage of the test.

Increase the timeout for waiting for download to complete.

Change-Id: I61820a9525256f4f2e16571e1ac075d2f5268cae
diff --git a/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerBaseTest.java b/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerBaseTest.java
index fc2897f..f4bab43 100644
--- a/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerBaseTest.java
+++ b/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerBaseTest.java
@@ -466,15 +466,16 @@
      * bytes downloaded so far.
      *
      * @param id DownloadManager download id that needs to be checked.
+     * @param bytesToReceive how many bytes do we need to wait to receive.
      * @throws Exception if timed out while waiting for the file to grow in size.
      */
-    protected void waitToReceiveData(long id) throws Exception {
+    protected void waitToReceiveData(long id, long bytesToReceive) throws Exception {
         int currentWaitTime = 0;
-        long originalSize = getBytesDownloaded(id);
+        long expectedSize = getBytesDownloaded(id) + bytesToReceive;
         long currentSize = 0;
-        while ((currentSize = getBytesDownloaded(id)) <= originalSize) {
-            Log.i(LOG_TAG, String.format("orig: %d, cur: %d. Waiting for file to be written to...",
-                    originalSize, currentSize));
+        while ((currentSize = getBytesDownloaded(id)) <= expectedSize) {
+            Log.i(LOG_TAG, String.format("expect: %d, cur: %d. Waiting for file to be written to...",
+                    expectedSize, currentSize));
             currentWaitTime = timeoutWait(currentWaitTime, WAIT_FOR_DOWNLOAD_POLL_TIME,
                     MAX_WAIT_FOR_DOWNLOAD_TIME, "Timed out waiting for file to be written to.");
         }
diff --git a/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerTestApp.java b/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerTestApp.java
index ef48a18..bcf2e45 100644
--- a/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerTestApp.java
+++ b/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/downloadmanagertests/DownloadManagerTestApp.java
@@ -40,6 +40,9 @@
 
     protected static final String DOWNLOAD_FILENAME = "External93mb.apk";
     protected static final long DOWNLOAD_FILESIZE = 95251708;
+    // Wait until download manager actually start downloading something
+    // Will wait for 1 MB to be downloaded.
+    private static final long EXPECTED_PROGRESS = 1024 * 1024;
 
     private static final String FILE_CONCURRENT_DOWNLOAD_FILE_PREFIX = "file";
     private static final String FILE_CONCURRENT_DOWNLOAD_FILE_EXTENSION = ".bin";
@@ -284,7 +287,7 @@
             dlRequest = mDownloadManager.enqueue(request);
             waitForDownloadToStart(dlRequest);
             // make sure we're starting to download some data...
-            waitToReceiveData(dlRequest);
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // download disable
             setWiFiStateOn(false);
@@ -292,27 +295,29 @@
             // download disable
             Log.i(LOG_TAG, "Turning on airplane mode...");
             setAirplaneModeOn(true);
-            Thread.sleep(30 * 1000);  // wait 30 secs
+            Thread.sleep(5 * 1000);  // wait 5 secs
 
             // download disable
             setWiFiStateOn(true);
-            Thread.sleep(30 * 1000);  // wait 30 secs
+            Thread.sleep(5 * 1000);  // wait 5 secs
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // download enable
             Log.i(LOG_TAG, "Turning off airplane mode...");
             setAirplaneModeOn(false);
             Thread.sleep(5 * 1000);  // wait 5 seconds
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // download disable
             Log.i(LOG_TAG, "Turning off WiFi...");
             setWiFiStateOn(false);
-            Thread.sleep(30 * 1000);  // wait 30 secs
+            Thread.sleep(5 * 1000);  // wait 5 secs
 
             // finally, turn WiFi back on and finish up the download
             Log.i(LOG_TAG, "Turning on WiFi...");
             setWiFiStateOn(true);
-            Log.i(LOG_TAG, "Waiting up to 3 minutes for download to complete...");
-            assertTrue(waitForDownload(dlRequest, 3 * 60 * 1000));
+            Log.i(LOG_TAG, "Waiting up to 10 minutes for download to complete...");
+            assertTrue(waitForDownload(dlRequest, 10 * 60 * 1000));
             ParcelFileDescriptor pfd = mDownloadManager.openDownloadedFile(dlRequest);
             verifyFileSize(pfd, filesize);
         } finally {
@@ -358,7 +363,7 @@
             dlRequest = mDownloadManager.enqueue(request);
             waitForDownloadToStart(dlRequest);
             // are we making any progress?
-            waitToReceiveData(dlRequest);
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // download disable
             Log.i(LOG_TAG, "Turning off WiFi...");
@@ -368,7 +373,7 @@
             // enable download...
             Log.i(LOG_TAG, "Turning on WiFi again...");
             setWiFiStateOn(true);
-            waitToReceiveData(dlRequest);
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // download disable
             Log.i(LOG_TAG, "Turning off WiFi...");
@@ -379,8 +384,8 @@
             Log.i(LOG_TAG, "Turning on WiFi again...");
             setWiFiStateOn(true);
 
-            Log.i(LOG_TAG, "Waiting up to 3 minutes for download to complete...");
-            assertTrue(waitForDownload(dlRequest, 3 * 60 * 1000));
+            Log.i(LOG_TAG, "Waiting up to 10 minutes for download to complete...");
+            assertTrue(waitForDownload(dlRequest, 10 * 60 * 1000));
             ParcelFileDescriptor pfd = mDownloadManager.openDownloadedFile(dlRequest);
             verifyFileSize(pfd, filesize);
         } finally {
@@ -428,7 +433,7 @@
             dlRequest = mDownloadManager.enqueue(request);
             waitForDownloadToStart(dlRequest);
             // are we making any progress?
-            waitToReceiveData(dlRequest);
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // download disable
             Log.i(LOG_TAG, "Turning on Airplane mode...");
@@ -439,7 +444,7 @@
             Log.i(LOG_TAG, "Turning off Airplane mode...");
             setAirplaneModeOn(false);
             // make sure we're starting to download some data...
-            waitToReceiveData(dlRequest);
+            waitToReceiveData(dlRequest, EXPECTED_PROGRESS);
 
             // reenable the connection to start up the download again
             Log.i(LOG_TAG, "Turning on Airplane mode again...");
@@ -450,8 +455,8 @@
             Log.i(LOG_TAG, "Turning off Airplane mode again...");
             setAirplaneModeOn(false);
 
-            Log.i(LOG_TAG, "Waiting up to 3 minutes for donwload to complete...");
-            assertTrue(waitForDownload(dlRequest, 180 * 1000));  // wait up to 3 mins before timeout
+            Log.i(LOG_TAG, "Waiting up to 10 minutes for donwload to complete...");
+            assertTrue(waitForDownload(dlRequest, 10 * 60 * 1000)); // wait up to 10 mins
             ParcelFileDescriptor pfd = mDownloadManager.openDownloadedFile(dlRequest);
             verifyFileSize(pfd, filesize);
         } finally {