summaryrefslogtreecommitdiffstats
path: root/core/tests/hosttests
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2010-09-08 11:07:30 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-09-08 11:07:30 -0700
commitcf67abbc48d6d56538dd6f2412d6aa9863a31637 (patch)
tree05d6de193cf3fa73777e518d5dfeb40c4cd2d3b8 /core/tests/hosttests
parentd41b037c6b645768bf55d4d9efb4904373bd61b0 (diff)
parent6ffee9bbba53700d33456261b986ac8a3f333b9e (diff)
downloadframeworks_base-cf67abbc48d6d56538dd6f2412d6aa9863a31637.zip
frameworks_base-cf67abbc48d6d56538dd6f2412d6aa9863a31637.tar.gz
frameworks_base-cf67abbc48d6d56538dd6f2412d6aa9863a31637.tar.bz2
am 6ffee9bb: Merge "Revert "resolve conflicts"" into gingerbread-plus-aosp
Merge commit '6ffee9bbba53700d33456261b986ac8a3f333b9e' * commit '6ffee9bbba53700d33456261b986ac8a3f333b9e': Revert "resolve conflicts"
Diffstat (limited to 'core/tests/hosttests')
-rw-r--r--core/tests/hosttests/src/android/content/pm/PackageManagerHostTestUtils.java54
-rw-r--r--core/tests/hosttests/src/android/net/DownloadManagerHostTests.java201
-rw-r--r--core/tests/hosttests/test-apps/DownloadManagerTestApp/Android.mk29
-rw-r--r--core/tests/hosttests/test-apps/DownloadManagerTestApp/AndroidManifest.xml35
-rw-r--r--core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/DownloadManagerTestApp.java463
-rw-r--r--core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/DownloadManagerTestRunner.java63
6 files changed, 7 insertions, 838 deletions
diff --git a/core/tests/hosttests/src/android/content/pm/PackageManagerHostTestUtils.java b/core/tests/hosttests/src/android/content/pm/PackageManagerHostTestUtils.java
index f962bab..38191b0 100644
--- a/core/tests/hosttests/src/android/content/pm/PackageManagerHostTestUtils.java
+++ b/core/tests/hosttests/src/android/content/pm/PackageManagerHostTestUtils.java
@@ -37,9 +37,7 @@ import java.io.InputStreamReader;
import java.io.StringReader;
import java.lang.Runtime;
import java.lang.Process;
-import java.util.Hashtable;
import java.util.Map;
-import java.util.Map.Entry;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -119,14 +117,7 @@ public class PackageManagerHostTestUtils extends Assert {
/**
* Helper method to run tests and return the listener that collected the results.
- *
- * For the optional params, pass null to use the default values.
-
* @param pkgName Android application package for tests
- * @param className (optional) The class containing the method to test
- * @param methodName (optional) The method in the class of which to test
- * @param runnerName (optional) The name of the TestRunner of the test on the device to be run
- * @param params (optional) Any additional parameters to pass into the Test Runner
* @return the {@link CollectingTestRunListener}
* @throws TimeoutException in case of a timeout on the connection.
* @throws AdbCommandRejectedException if adb rejects the command
@@ -134,24 +125,10 @@ public class PackageManagerHostTestUtils extends Assert {
* a period longer than the max time to output.
* @throws IOException if connection to device was lost.
*/
- private CollectingTestRunListener doRunTests(String pkgName, String className, String
- methodName, String runnerName, Map<String, String> params) throws IOException,
- TimeoutException, AdbCommandRejectedException, ShellCommandUnresponsiveException {
-
- RemoteAndroidTestRunner testRunner = new RemoteAndroidTestRunner(pkgName, runnerName,
- mDevice);
-
- if (className != null && methodName != null) {
- testRunner.setMethodName(className, methodName);
- }
-
- // Add in any additional args to pass into the test
- if (params != null) {
- for (Entry<String, String> argPair : params.entrySet()) {
- testRunner.addInstrumentationArg(argPair.getKey(), argPair.getValue());
- }
- }
-
+ private CollectingTestRunListener doRunTests(String pkgName) throws IOException,
+ TimeoutException, AdbCommandRejectedException, ShellCommandUnresponsiveException {
+ RemoteAndroidTestRunner testRunner = new RemoteAndroidTestRunner(
+ pkgName, mDevice);
CollectingTestRunListener listener = new CollectingTestRunListener();
try {
testRunner.run(listener);
@@ -165,23 +142,6 @@ public class PackageManagerHostTestUtils extends Assert {
* Runs the specified packages tests, and returns whether all tests passed or not.
*
* @param pkgName Android application package for tests
- * @param className The class containing the method to test
- * @param methodName The method in the class of which to test
- * @param runnerName The name of the TestRunner of the test on the device to be run
- * @param params Any additional parameters to pass into the Test Runner
- * @return true if test passed, false otherwise.
- */
- public boolean runDeviceTestsDidAllTestsPass(String pkgName, String className,
- String methodName, String runnerName, Map<String, String> params) throws IOException {
- CollectingTestRunListener listener = doRunTests(pkgName, className, methodName,
- runnerName, params);
- return listener.didAllTestsPass();
- }
-
- /**
- * Runs the specified packages tests, and returns whether all tests passed or not.
- *
- * @param pkgName Android application package for tests
* @return true if every test passed, false otherwise.
* @throws TimeoutException in case of a timeout on the connection.
* @throws AdbCommandRejectedException if adb rejects the command
@@ -189,9 +149,9 @@ public class PackageManagerHostTestUtils extends Assert {
* a period longer than the max time to output.
* @throws IOException if connection to device was lost.
*/
- public boolean runDeviceTestsDidAllTestsPass(String pkgName) throws IOException,
+ public boolean runDeviceTestsDidAllTestsPass(String pkgName) throws IOException,
TimeoutException, AdbCommandRejectedException, ShellCommandUnresponsiveException {
- CollectingTestRunListener listener = doRunTests(pkgName, null, null, null, null);
+ CollectingTestRunListener listener = doRunTests(pkgName);
return listener.didAllTestsPass();
}
@@ -575,7 +535,7 @@ public class PackageManagerHostTestUtils extends Assert {
}
// For collecting results from running device tests
- public static class CollectingTestRunListener implements ITestRunListener {
+ private static class CollectingTestRunListener implements ITestRunListener {
private boolean mAllTestsPassed = true;
private String mTestRunErrorMessage = null;
diff --git a/core/tests/hosttests/src/android/net/DownloadManagerHostTests.java b/core/tests/hosttests/src/android/net/DownloadManagerHostTests.java
deleted file mode 100644
index ed280c9..0000000
--- a/core/tests/hosttests/src/android/net/DownloadManagerHostTests.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package android.net;
-
-import android.content.pm.PackageManagerHostTestUtils;
-import android.content.pm.PackageManagerHostTestUtils.CollectingTestRunListener;
-
-import com.android.ddmlib.IDevice;
-import com.android.ddmlib.IShellOutputReceiver;
-import com.android.ddmlib.Log;
-import com.android.ddmlib.MultiLineReceiver;
-import com.android.ddmlib.SyncService;
-import com.android.ddmlib.SyncService.ISyncProgressMonitor;
-import com.android.ddmlib.SyncService.SyncResult;
-import com.android.hosttest.DeviceTestCase;
-import com.android.hosttest.DeviceTestSuite;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Hashtable;
-
-import junit.framework.Test;
-
-/**
- * Host-based tests of the DownloadManager API. (Uses a device-based app to actually invoke the
- * various tests.)
- */
-public class DownloadManagerHostTests extends DeviceTestCase {
- protected PackageManagerHostTestUtils mPMUtils = null;
-
- private static final String LOG_TAG = "android.net.DownloadManagerHostTests";
- private static final String FILE_DOWNLOAD_APK = "DownloadManagerTestApp.apk";
- private static final String FILE_DOWNLOAD_PKG = "com.android.frameworks.downloadmanagertests";
- private static final String FILE_DOWNLOAD_CLASS =
- "com.android.frameworks.downloadmanagertests.DownloadManagerTestApp";
- private static final String DOWNLOAD_TEST_RUNNER_NAME =
- "com.android.frameworks.downloadmanagertests.DownloadManagerTestRunner";
-
- // Extra parameters to pass to the TestRunner
- private static final String EXTERNAL_DOWNLOAD_URI_KEY = "external_download_uri";
- // Note: External environment variable ANDROID_TEST_EXTERNAL_URI must be set to point to the
- // external URI under which the files downloaded by the tests can be found. Note that the Uri
- // must be accessible by the device during a test run.
- private static String EXTERNAL_DOWNLOAD_URI_VALUE = null;
-
- Hashtable<String, String> mExtraParams = null;
-
- public static Test suite() {
- return new DeviceTestSuite(DownloadManagerHostTests.class);
- }
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- // ensure apk path has been set before test is run
- assertNotNull(getTestAppPath());
- mPMUtils = new PackageManagerHostTestUtils(getDevice());
- EXTERNAL_DOWNLOAD_URI_VALUE = System.getenv("ANDROID_TEST_EXTERNAL_URI");
- assertNotNull(EXTERNAL_DOWNLOAD_URI_VALUE);
- mExtraParams = getExtraParams();
- }
-
- /**
- * Helper function to get extra params that can be used to pass into the helper app.
- */
- protected Hashtable<String, String> getExtraParams() {
- Hashtable<String, String> extraParams = new Hashtable<String, String>();
- extraParams.put(EXTERNAL_DOWNLOAD_URI_KEY, EXTERNAL_DOWNLOAD_URI_VALUE);
- return extraParams;
- }
-
- /**
- * Tests that a large download over WiFi
- * @throws Exception if the test failed at any point
- */
- public void testLargeDownloadOverWiFi() throws Exception {
- mPMUtils.installAppAndVerifyExistsOnDevice(String.format("%s%s%s", getTestAppPath(),
- File.separator, FILE_DOWNLOAD_APK), FILE_DOWNLOAD_PKG, true);
-
- boolean testPassed = mPMUtils.runDeviceTestsDidAllTestsPass(FILE_DOWNLOAD_PKG,
- FILE_DOWNLOAD_CLASS, "runLargeDownloadOverWiFi", DOWNLOAD_TEST_RUNNER_NAME,
- mExtraParams);
-
- assertTrue("Failed to install large file over WiFi in < 10 minutes!", testPassed);
- }
-
- /**
- * Spawns a device-based function to initiate a download on the device, reboots the device,
- * then waits and verifies the download succeeded.
- *
- * @throws Exception if the test failed at any point
- */
- public void testDownloadManagerSingleReboot() throws Exception {
- mPMUtils.installAppAndVerifyExistsOnDevice(String.format("%s%s%s", getTestAppPath(),
- File.separator, FILE_DOWNLOAD_APK), FILE_DOWNLOAD_PKG, true);
-
- boolean testPassed = mPMUtils.runDeviceTestsDidAllTestsPass(FILE_DOWNLOAD_PKG,
- FILE_DOWNLOAD_CLASS, "initiateDownload", DOWNLOAD_TEST_RUNNER_NAME,
- mExtraParams);
-
- assertTrue("Failed to initiate download properly!", testPassed);
- mPMUtils.rebootDevice();
- testPassed = mPMUtils.runDeviceTestsDidAllTestsPass(FILE_DOWNLOAD_PKG,
- FILE_DOWNLOAD_CLASS, "verifyFileDownloadSucceeded", DOWNLOAD_TEST_RUNNER_NAME,
- mExtraParams);
- assertTrue("Failed to verify initiated download completed properyly!", testPassed);
- }
-
- /**
- * Spawns a device-based function to initiate a download on the device, reboots the device three
- * times (using different intervals), then waits and verifies the download succeeded.
- *
- * @throws Exception if the test failed at any point
- */
- public void testDownloadManagerMultipleReboots() throws Exception {
- mPMUtils.installAppAndVerifyExistsOnDevice(String.format("%s%s%s", getTestAppPath(),
- File.separator, FILE_DOWNLOAD_APK), FILE_DOWNLOAD_PKG, true);
-
- boolean testPassed = mPMUtils.runDeviceTestsDidAllTestsPass(FILE_DOWNLOAD_PKG,
- FILE_DOWNLOAD_CLASS, "initiateDownload", DOWNLOAD_TEST_RUNNER_NAME,
- mExtraParams);
-
- assertTrue("Failed to initiate download properly!", testPassed);
- Thread.sleep(5000);
-
- // Do 3 random reboots - after 13, 9, and 19 seconds
- Log.i(LOG_TAG, "First reboot...");
- mPMUtils.rebootDevice();
- Thread.sleep(13000);
- Log.i(LOG_TAG, "Second reboot...");
- mPMUtils.rebootDevice();
- Thread.sleep(9000);
- Log.i(LOG_TAG, "Third reboot...");
- mPMUtils.rebootDevice();
- Thread.sleep(19000);
- testPassed = mPMUtils.runDeviceTestsDidAllTestsPass(FILE_DOWNLOAD_PKG,
- FILE_DOWNLOAD_CLASS, "verifyFileDownloadSucceeded", DOWNLOAD_TEST_RUNNER_NAME,
- mExtraParams);
- assertTrue("Failed to verify initiated download completed properyly!", testPassed);
- }
-
- /**
- * Spawns a device-based function to test download while WiFi is enabled/disabled multiple times
- * during the download.
- *
- * @throws Exception if the test failed at any point
- */
- public void testDownloadMultipleWiFiEnableDisable() throws Exception {
- mPMUtils.installAppAndVerifyExistsOnDevice(String.format("%s%s%s", getTestAppPath(),
- File.separator, FILE_DOWNLOAD_APK), FILE_DOWNLOAD_PKG, true);
-
- boolean testPassed = mPMUtils.runDeviceTestsDidAllTestsPass(FILE_DOWNLOAD_PKG,
- FILE_DOWNLOAD_CLASS, "runDownloadMultipleWiFiEnableDisable",
- DOWNLOAD_TEST_RUNNER_NAME, mExtraParams);
- assertTrue(testPassed);
- }
-
- /**
- * Spawns a device-based function to test switching on/off both airplane mode and WiFi
- *
- * @throws Exception if the test failed at any point
- */
- public void testDownloadMultipleSwitching() throws Exception {
- mPMUtils.installAppAndVerifyExistsOnDevice(String.format("%s%s%s", getTestAppPath(),
- File.separator, FILE_DOWNLOAD_APK), FILE_DOWNLOAD_PKG, true);
-
- boolean testPassed = mPMUtils.runDeviceTestsDidAllTestsPass(FILE_DOWNLOAD_PKG,
- FILE_DOWNLOAD_CLASS, "runDownloadMultipleSwitching",
- DOWNLOAD_TEST_RUNNER_NAME, mExtraParams);
- assertTrue(testPassed);
- }
-
- /**
- * Spawns a device-based function to test switching on/off airplane mode multiple times
- *
- * @throws Exception if the test failed at any point
- */
- public void testDownloadMultipleAirplaneModeEnableDisable() throws Exception {
- mPMUtils.installAppAndVerifyExistsOnDevice(String.format("%s%s%s", getTestAppPath(),
- File.separator, FILE_DOWNLOAD_APK), FILE_DOWNLOAD_PKG, true);
-
- boolean testPassed = mPMUtils.runDeviceTestsDidAllTestsPass(FILE_DOWNLOAD_PKG,
- FILE_DOWNLOAD_CLASS, "runDownloadMultipleAirplaneModeEnableDisable",
- DOWNLOAD_TEST_RUNNER_NAME, mExtraParams);
- assertTrue(testPassed);
- }
-}
diff --git a/core/tests/hosttests/test-apps/DownloadManagerTestApp/Android.mk b/core/tests/hosttests/test-apps/DownloadManagerTestApp/Android.mk
deleted file mode 100644
index 576765c..0000000
--- a/core/tests/hosttests/test-apps/DownloadManagerTestApp/Android.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (C) 2010 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE_TAGS := tests
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src) \
- ../../../coretests/src/android/net/DownloadManagerBaseTest.java
-
-LOCAL_STATIC_JAVA_LIBRARIES := android-common frameworks-core-util-lib
-LOCAL_SDK_VERSION := current
-
-LOCAL_PACKAGE_NAME := DownloadManagerTestApp
-
-include $(BUILD_PACKAGE)
diff --git a/core/tests/hosttests/test-apps/DownloadManagerTestApp/AndroidManifest.xml b/core/tests/hosttests/test-apps/DownloadManagerTestApp/AndroidManifest.xml
deleted file mode 100644
index 3f2be3c..0000000
--- a/core/tests/hosttests/test-apps/DownloadManagerTestApp/AndroidManifest.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2010 The Android Open Source Project
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.frameworks.downloadmanagertests">
-
- <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
- <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
- <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
- <uses-permission android:name="android.permission.INTERNET" />
- <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
- <uses-permission android:name="android.permission.WRITE_SETTINGS" />
-
- <application android:label="DownloadManagerTestApp">
- <uses-library android:name="android.test.runner" />
- </application>
-
- <instrumentation
- android:name=".DownloadManagerTestRunner"
- android:targetPackage="com.android.frameworks.downloadmanagertests"
- android:label="Frameworks Download Manager Test App" />
-
-</manifest>
diff --git a/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/DownloadManagerTestApp.java b/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/DownloadManagerTestApp.java
deleted file mode 100644
index ef81353..0000000
--- a/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/DownloadManagerTestApp.java
+++ /dev/null
@@ -1,463 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.frameworks.downloadmanagertests;
-
-import android.content.Context;
-import android.content.Intent;
-import android.database.Cursor;
-import android.net.DownloadManager;
-import android.net.DownloadManager.Query;
-import android.net.DownloadManager.Request;
-import android.net.DownloadManagerBaseTest;
-import android.net.Uri;
-import android.os.Environment;
-import android.os.ParcelFileDescriptor;
-import android.provider.Settings;
-import android.test.suitebuilder.annotation.LargeTest;
-import android.util.Log;
-
-import java.io.DataInputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.FileWriter;
-
-import coretestutils.http.MockResponse;
-import coretestutils.http.MockWebServer;
-import coretestutils.http.RecordedRequest;
-
-/**
- * Class to test downloading files from a real (not mock) external server.
- */
-public class DownloadManagerTestApp extends DownloadManagerBaseTest {
- protected static String DOWNLOAD_STARTED_FLAG = "DMTEST_DOWNLOAD_STARTED";
- protected static String LOG_TAG =
- "com.android.frameworks.downloadmanagertests.DownloadManagerTestApp";
-
- protected static String DOWNLOAD_500K_FILENAME = "External541kb.apk";
- protected static long DOWNLOAD_500K_FILESIZE = 570927;
- protected static String DOWNLOAD_1MB_FILENAME = "External1mb.apk";
- protected static long DOWNLOAD_1MB_FILESIZE = 1041262;
- protected static String DOWNLOAD_10MB_FILENAME = "External10mb.apk";
- protected static long DOWNLOAD_10MB_FILESIZE = 10258741;
-
- // Values to be obtained from TestRunner
- private String externalDownloadUriValue = null;
-
- /**
- * {@inheritDoc }
- */
- @Override
- public void setUp() throws Exception {
- super.setUp();
- DownloadManagerTestRunner mRunner = (DownloadManagerTestRunner)getInstrumentation();
- externalDownloadUriValue = mRunner.externalDownloadUriValue;
- assertNotNull(externalDownloadUriValue);
-
- if (!externalDownloadUriValue.endsWith("/")) {
- externalDownloadUriValue += "/";
- }
- }
-
- /**
- * Gets the external URL of the file to download
- *
- * @return the Uri of the external file to download
- */
- private Uri getExternalFileUri(String file) {
- return Uri.parse(externalDownloadUriValue + file);
- }
-
- /**
- * Gets the path to the file that flags that a download has started. The file contains the
- * DownloadManager id of the download being trackted between reboot sessions.
- *
- * @return The path of the file tracking that a download has started
- * @throws InterruptedException if interrupted
- * @throws Exception if timed out while waiting for SD card to mount
- */
- protected String getDownloadStartedFilePath() {
- String path = Environment.getExternalStorageDirectory().getPath();
- return path + File.separatorChar + DOWNLOAD_STARTED_FLAG;
- }
-
- /**
- * Common setup steps for downloads.
- *
- * Note that these are not included in setUp, so that individual tests can control their own
- * state between reboots, etc.
- */
- protected void doCommonDownloadSetup() throws Exception {
- setWiFiStateOn(true);
- setAirplaneModeOn(false);
- waitForExternalStoreMount();
- removeAllCurrentDownloads();
- }
-
- /**
- * Initiates a download.
- *
- * Queues up a download to the download manager, and saves the DownloadManager's assigned
- * download ID for this download to a file.
- *
- * @throws Exception if unsuccessful
- */
- public void initiateDownload() throws Exception {
- String filename = DOWNLOAD_1MB_FILENAME;
- mContext.deleteFile(DOWNLOAD_STARTED_FLAG);
- FileOutputStream fileOutput = mContext.openFileOutput(DOWNLOAD_STARTED_FLAG, 0);
- DataOutputStream outputFile = null;
- doCommonDownloadSetup();
-
- try {
- long dlRequest = -1;
-
- // Make sure there are no pending downloads currently going on
- removeAllCurrentDownloads();
-
- Uri remoteUri = getExternalFileUri(filename);
- Request request = new Request(remoteUri);
-
- dlRequest = mDownloadManager.enqueue(request);
- waitForDownloadToStart(dlRequest);
- assertTrue(dlRequest != -1);
-
- // Store ID of download for later retrieval
- outputFile = new DataOutputStream(fileOutput);
- outputFile.writeLong(dlRequest);
- } finally {
- if (outputFile != null) {
- outputFile.flush();
- outputFile.close();
- }
- }
- }
-
- /**
- * Waits for a previously-initiated download and verifies it has completed successfully.
- *
- * @throws Exception if unsuccessful
- */
- public void verifyFileDownloadSucceeded() throws Exception {
- String filename = DOWNLOAD_1MB_FILENAME;
- long filesize = DOWNLOAD_1MB_FILESIZE;
- long dlRequest = -1;
- boolean rebootMarkerValid = false;
- DataInputStream dataInputFile = null;
-
- setWiFiStateOn(true);
- setAirplaneModeOn(false);
-
- try {
- FileInputStream inFile = mContext.openFileInput(DOWNLOAD_STARTED_FLAG);
- dataInputFile = new DataInputStream(inFile);
- dlRequest = dataInputFile.readLong();
- } catch (Exception e) {
- // The file was't valid so we just leave the flag false
- Log.i(LOG_TAG, "Unable to determine initial download id.");
- throw e;
- } finally {
- if (dataInputFile != null) {
- dataInputFile.close();
- }
- mContext.deleteFile(DOWNLOAD_STARTED_FLAG);
- }
-
- assertTrue(dlRequest != -1);
- Cursor cursor = getCursor(dlRequest);
- ParcelFileDescriptor pfd = null;
- try {
- assertTrue("Unable to query last initiated download!", cursor.moveToFirst());
-
- int columnIndex = cursor.getColumnIndex(DownloadManager.COLUMN_STATUS);
- int status = cursor.getInt(columnIndex);
- int currentWaitTime = 0;
-
- // Wait until the download finishes
- waitForDownloadOrTimeout(dlRequest);
-
- Log.i(LOG_TAG, "Verifying download information...");
- // Verify specific info about the file (size, name, etc)...
- pfd = mDownloadManager.openDownloadedFile(dlRequest);
- verifyFileSize(pfd, filesize);
- } catch (Exception e) {
- Log.i(LOG_TAG, "error: " + e.toString());
- throw e;
- } finally {
- // Clean up...
- cursor.close();
- mDownloadManager.remove(dlRequest);
- if (pfd != null) {
- pfd.close();
- }
- }
- }
-
- /**
- * Tests downloading a large file over WiFi (~10 Mb).
- *
- * @throws Exception if unsuccessful
- */
- public void runLargeDownloadOverWiFi() throws Exception {
- String filename = DOWNLOAD_10MB_FILENAME;
- long filesize = DOWNLOAD_10MB_FILESIZE;
- long dlRequest = -1;
- doCommonDownloadSetup();
-
- // Make sure there are no pending downloads currently going on
- removeAllCurrentDownloads();
-
- Uri remoteUri = getExternalFileUri(filename);
- Request request = new Request(remoteUri);
- request.setMediaType(getMimeMapping(DownloadFileType.APK));
-
- dlRequest = mDownloadManager.enqueue(request);
-
- // Rather large file, so wait up to 15 mins...
- waitForDownloadOrTimeout(dlRequest, WAIT_FOR_DOWNLOAD_POLL_TIME, 15 * 60 * 1000);
-
- Cursor cursor = getCursor(dlRequest);
- ParcelFileDescriptor pfd = null;
- try {
- Log.i(LOG_TAG, "Verifying download information...");
- // Verify specific info about the file (size, name, etc)...
- pfd = mDownloadManager.openDownloadedFile(dlRequest);
- verifyFileSize(pfd, filesize);
- } finally {
- if (pfd != null) {
- pfd.close();
- }
- mDownloadManager.remove(dlRequest);
- cursor.close();
- }
- }
-
- /**
- * Tests that downloads resume when switching back and forth from having connectivity to
- * having no connectivity using both WiFi and airplane mode.
- *
- * Note: Device has no mobile access when running this test.
- *
- * @throws Exception if unsuccessful
- */
- public void runDownloadMultipleSwitching() throws Exception {
- String filename = DOWNLOAD_500K_FILENAME;
- long filesize = DOWNLOAD_500K_FILESIZE;
- doCommonDownloadSetup();
-
- String localDownloadDirectory = Environment.getExternalStorageDirectory().getPath();
- File downloadedFile = new File(localDownloadDirectory, filename);
-
- long dlRequest = -1;
- try {
- downloadedFile.delete();
-
- // Make sure there are no pending downloads currently going on
- removeAllCurrentDownloads();
-
- Uri remoteUri = getExternalFileUri(filename);
- Request request = new Request(remoteUri);
-
- // Local destination of downloaded file
- Uri localUri = Uri.fromFile(downloadedFile);
- Log.i(LOG_TAG, "setting localUri to: " + localUri.getPath());
- request.setDestinationUri(localUri);
-
- request.setAllowedNetworkTypes(Request.NETWORK_MOBILE | Request.NETWORK_WIFI);
-
- dlRequest = mDownloadManager.enqueue(request);
- waitForDownloadToStart(dlRequest);
- // make sure we're starting to download some data...
- waitForFileToGrow(downloadedFile);
-
- // download disable
- setWiFiStateOn(false);
-
- // download disable
- Log.i(LOG_TAG, "Turning on airplane mode...");
- setAirplaneModeOn(true);
- Thread.sleep(30 * 1000); // wait 30 secs
-
- // download disable
- setWiFiStateOn(true);
- Thread.sleep(30 * 1000); // wait 30 secs
-
- // download enable
- Log.i(LOG_TAG, "Turning off airplane mode...");
- setAirplaneModeOn(false);
- Thread.sleep(5 * 1000); // wait 5 seconds
-
- // download disable
- Log.i(LOG_TAG, "Turning off WiFi...");
- setWiFiStateOn(false);
- Thread.sleep(30 * 1000); // wait 30 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...");
- waitForDownloadsOrTimeout(dlRequest, 3 * 60 * 1000);
- ParcelFileDescriptor pfd = mDownloadManager.openDownloadedFile(dlRequest);
- verifyFileSize(pfd, filesize);
- } finally {
- Log.i(LOG_TAG, "Cleaning up files...");
- if (dlRequest != -1) {
- mDownloadManager.remove(dlRequest);
- }
- downloadedFile.delete();
- }
- }
-
- /**
- * Tests that downloads resume when switching on/off WiFi at various intervals.
- *
- * Note: Device has no mobile access when running this test.
- *
- * @throws Exception if unsuccessful
- */
- public void runDownloadMultipleWiFiEnableDisable() throws Exception {
- String filename = DOWNLOAD_500K_FILENAME;
- long filesize = DOWNLOAD_500K_FILESIZE;
- doCommonDownloadSetup();
-
- String localDownloadDirectory = Environment.getExternalStorageDirectory().getPath();
- File downloadedFile = new File(localDownloadDirectory, filename);
- long dlRequest = -1;
- try {
- downloadedFile.delete();
-
- // Make sure there are no pending downloads currently going on
- removeAllCurrentDownloads();
-
- Uri remoteUri = getExternalFileUri(filename);
- Request request = new Request(remoteUri);
-
- // Local destination of downloaded file
- Uri localUri = Uri.fromFile(downloadedFile);
- Log.i(LOG_TAG, "setting localUri to: " + localUri.getPath());
- request.setDestinationUri(localUri);
-
- request.setAllowedNetworkTypes(Request.NETWORK_WIFI);
-
- dlRequest = mDownloadManager.enqueue(request);
- waitForDownloadToStart(dlRequest);
- // are we making any progress?
- waitForFileToGrow(downloadedFile);
-
- // download disable
- Log.i(LOG_TAG, "Turning off WiFi...");
- setWiFiStateOn(false);
- Thread.sleep(40 * 1000); // wait 40 seconds
-
- // enable download...
- Log.i(LOG_TAG, "Turning on WiFi again...");
- setWiFiStateOn(true);
- waitForFileToGrow(downloadedFile);
-
- // download disable
- Log.i(LOG_TAG, "Turning off WiFi...");
- setWiFiStateOn(false);
- Thread.sleep(20 * 1000); // wait 20 seconds
-
- // enable download...
- Log.i(LOG_TAG, "Turning on WiFi again...");
- setWiFiStateOn(true);
-
- Log.i(LOG_TAG, "Waiting up to 3 minutes for download to complete...");
- waitForDownloadsOrTimeout(dlRequest, 3 * 60 * 1000);
- ParcelFileDescriptor pfd = mDownloadManager.openDownloadedFile(dlRequest);
- verifyFileSize(pfd, filesize);
- } finally {
- Log.i(LOG_TAG, "Cleaning up files...");
- if (dlRequest != -1) {
- mDownloadManager.remove(dlRequest);
- }
- downloadedFile.delete();
- }
- }
-
- /**
- * Tests that downloads resume when switching on/off Airplane mode numerous times at
- * various intervals.
- *
- * Note: Device has no mobile access when running this test.
- *
- * @throws Exception if unsuccessful
- */
- public void runDownloadMultipleAirplaneModeEnableDisable() throws Exception {
- String filename = DOWNLOAD_500K_FILENAME;
- long filesize = DOWNLOAD_500K_FILESIZE;
- // make sure WiFi is enabled, and airplane mode is not on
- doCommonDownloadSetup();
-
- String localDownloadDirectory = Environment.getExternalStorageDirectory().getPath();
- File downloadedFile = new File(localDownloadDirectory, filename);
- long dlRequest = -1;
- try {
- downloadedFile.delete();
-
- // Make sure there are no pending downloads currently going on
- removeAllCurrentDownloads();
-
- Uri remoteUri = getExternalFileUri(filename);
- Request request = new Request(remoteUri);
-
- // Local destination of downloaded file
- Uri localUri = Uri.fromFile(downloadedFile);
- Log.i(LOG_TAG, "setting localUri to: " + localUri.getPath());
- request.setDestinationUri(localUri);
-
- request.setAllowedNetworkTypes(Request.NETWORK_WIFI);
-
- dlRequest = mDownloadManager.enqueue(request);
- waitForDownloadToStart(dlRequest);
- // are we making any progress?
- waitForFileToGrow(downloadedFile);
-
- // download disable
- Log.i(LOG_TAG, "Turning on Airplane mode...");
- setAirplaneModeOn(true);
- Thread.sleep(60 * 1000); // wait 1 minute
-
- // download enable
- Log.i(LOG_TAG, "Turning off Airplane mode...");
- setAirplaneModeOn(false);
- // make sure we're starting to download some data...
- waitForFileToGrow(downloadedFile);
-
- // reenable the connection to start up the download again
- Log.i(LOG_TAG, "Turning on Airplane mode again...");
- setAirplaneModeOn(true);
- Thread.sleep(20 * 1000); // wait 20 seconds
-
- // Finish up the download...
- Log.i(LOG_TAG, "Turning off Airplane mode again...");
- setAirplaneModeOn(false);
-
- Log.i(LOG_TAG, "Waiting up to 3 minutes for donwload to complete...");
- waitForDownloadsOrTimeout(dlRequest, 180 * 1000); // wait up to 3 mins before timeout
- ParcelFileDescriptor pfd = mDownloadManager.openDownloadedFile(dlRequest);
- verifyFileSize(pfd, filesize);
- } finally {
- Log.i(LOG_TAG, "Cleaning up files...");
- if (dlRequest != -1) {
- mDownloadManager.remove(dlRequest);
- }
- downloadedFile.delete();
- }
- }
-}
diff --git a/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/DownloadManagerTestRunner.java b/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/DownloadManagerTestRunner.java
deleted file mode 100644
index 0f16619..0000000
--- a/core/tests/hosttests/test-apps/DownloadManagerTestApp/src/com/android/frameworks/DownloadManagerTestRunner.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2010, The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.frameworks.downloadmanagertests;
-
-import android.os.Bundle;
-import android.test.InstrumentationTestRunner;
-import android.test.InstrumentationTestSuite;
-import android.util.Log;
-
-import com.android.frameworks.downloadmanagertests.DownloadManagerTestApp;
-
-import junit.framework.TestSuite;
-
-/**
- * Instrumentation Test Runner for all download manager tests.
- *
- * To run the download manager tests:
- *
- * adb shell am instrument -e external_download_1mb_uri <uri> external_download_500k_uri <uri> \
- * -w com.android.frameworks.downloadmanagertests/.DownloadManagerTestRunner
- */
-
-public class DownloadManagerTestRunner extends InstrumentationTestRunner {
- private static final String EXTERNAL_DOWNLOAD_URI_KEY = "external_download_uri";
- public String externalDownloadUriValue = null;
-
- @Override
- public TestSuite getAllTests() {
- TestSuite suite = new InstrumentationTestSuite(this);
- suite.addTestSuite(DownloadManagerTestApp.class);
- return suite;
- }
-
- @Override
- public ClassLoader getLoader() {
- return DownloadManagerTestRunner.class.getClassLoader();
- }
-
- @Override
- public void onCreate(Bundle icicle) {
- // Extract the extra params passed in from the bundle...
- String externalDownloadUri = (String) icicle.get(EXTERNAL_DOWNLOAD_URI_KEY);
- if (externalDownloadUri != null) {
- externalDownloadUriValue = externalDownloadUri;
- }
- super.onCreate(icicle);
- }
-
-}