summaryrefslogtreecommitdiffstats
path: root/tests/src/com/android/providers
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/com/android/providers')
-rw-r--r--tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java46
-rw-r--r--tests/src/com/android/providers/downloads/AbstractPublicApiTest.java21
-rw-r--r--tests/src/com/android/providers/downloads/DownloadProviderFunctionalTest.java11
-rw-r--r--tests/src/com/android/providers/downloads/FakeSystemFacade.java76
-rw-r--r--tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java54
-rw-r--r--tests/src/com/android/providers/downloads/StorageTest.java2
-rw-r--r--tests/src/com/android/providers/downloads/ThreadingTest.java17
7 files changed, 149 insertions, 78 deletions
diff --git a/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java b/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java
index 28c5dc7d..0330fd38 100644
--- a/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java
+++ b/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java
@@ -17,12 +17,15 @@
package com.android.providers.downloads;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import android.app.DownloadManager;
import android.app.NotificationManager;
-import android.content.ComponentName;
+import android.app.job.JobParameters;
+import android.app.job.JobScheduler;
import android.content.ContentResolver;
import android.content.Context;
-import android.content.Intent;
+import android.content.pm.ProviderInfo;
import android.database.ContentObserver;
import android.database.Cursor;
import android.net.Uri;
@@ -47,7 +50,7 @@ import java.net.MalformedURLException;
import java.net.UnknownHostException;
public abstract class AbstractDownloadProviderFunctionalTest extends
- ServiceTestCase<DownloadService> {
+ ServiceTestCase<DownloadJobService> {
protected static final String LOG_TAG = "DownloadProviderFunctionalTest";
private static final String PROVIDER_AUTHORITY = "downloads";
@@ -99,13 +102,15 @@ public abstract class AbstractDownloadProviderFunctionalTest extends
private final ContentResolver mResolver;
private final NotificationManager mNotifManager;
-
- boolean mHasServiceBeenStarted = false;
+ private final DownloadManager mDownloadManager;
+ private final JobScheduler mJobScheduler;
public TestContext(Context realContext) {
super(realContext, FILENAME_PREFIX);
mResolver = new MockContentResolverWithNotify(this);
mNotifManager = mock(NotificationManager.class);
+ mDownloadManager = mock(DownloadManager.class);
+ mJobScheduler = mock(JobScheduler.class);
}
/**
@@ -123,26 +128,18 @@ public abstract class AbstractDownloadProviderFunctionalTest extends
public Object getSystemService(String name) {
if (Context.NOTIFICATION_SERVICE.equals(name)) {
return mNotifManager;
+ } else if (Context.DOWNLOAD_SERVICE.equals(name)) {
+ return mDownloadManager;
+ } else if (Context.JOB_SCHEDULER_SERVICE.equals(name)) {
+ return mJobScheduler;
}
return super.getSystemService(name);
}
-
- /**
- * Record when DownloadProvider starts DownloadService.
- */
- @Override
- public ComponentName startService(Intent service) {
- if (service.getComponent().getClassName().equals(DownloadService.class.getName())) {
- mHasServiceBeenStarted = true;
- return service.getComponent();
- }
- throw new UnsupportedOperationException("Unexpected service: " + service);
- }
}
public AbstractDownloadProviderFunctionalTest(FakeSystemFacade systemFacade) {
- super(DownloadService.class);
+ super(DownloadJobService.class);
mSystemFacade = systemFacade;
}
@@ -162,13 +159,16 @@ public abstract class AbstractDownloadProviderFunctionalTest extends
final DownloadProvider provider = new DownloadProvider();
provider.mSystemFacade = mSystemFacade;
- provider.attachInfo(mTestContext, null);
+
+ ProviderInfo info = new ProviderInfo();
+ info.authority = "downloads";
+ provider.attachInfo(mTestContext, info);
mResolver.addProvider(PROVIDER_AUTHORITY, provider);
setContext(mTestContext);
setupService();
- getService().mSystemFacade = mSystemFacade;
+ Helpers.setSystemFacade(mSystemFacade);
mSystemFacade.setUp();
assertTrue(isDatabaseEmpty()); // ensure we're not messing with real data
@@ -184,6 +184,12 @@ public abstract class AbstractDownloadProviderFunctionalTest extends
super.tearDown();
}
+ protected void startDownload(long id) {
+ final JobParameters params = mock(JobParameters.class);
+ when(params.getJobId()).thenReturn((int) id);
+ getService().onStartJob(params);
+ }
+
private boolean isDatabaseEmpty() {
Cursor cursor = mResolver.query(Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI,
null, null, null, null);
diff --git a/tests/src/com/android/providers/downloads/AbstractPublicApiTest.java b/tests/src/com/android/providers/downloads/AbstractPublicApiTest.java
index 2846c7af..3a585b47 100644
--- a/tests/src/com/android/providers/downloads/AbstractPublicApiTest.java
+++ b/tests/src/com/android/providers/downloads/AbstractPublicApiTest.java
@@ -22,6 +22,8 @@ import static android.text.format.DateUtils.MINUTE_IN_MILLIS;
import static android.text.format.DateUtils.SECOND_IN_MILLIS;
import android.app.DownloadManager;
+import android.content.ContentResolver;
+import android.content.ContextWrapper;
import android.database.Cursor;
import android.net.Uri;
import android.os.ParcelFileDescriptor;
@@ -113,13 +115,13 @@ public abstract class AbstractPublicApiTest extends AbstractDownloadProviderFunc
void runUntilStatus(int status) throws TimeoutException {
final long startMillis = mSystemFacade.currentTimeMillis();
- startService(null);
+ startDownload(mId);
waitForStatus(status, startMillis);
}
void runUntilStatus(int status, long timeout) throws TimeoutException {
final long startMillis = mSystemFacade.currentTimeMillis();
- startService(null);
+ startDownload(mId);
waitForStatus(status, startMillis, timeout);
}
@@ -167,7 +169,7 @@ public abstract class AbstractPublicApiTest extends AbstractDownloadProviderFunc
// waits until progress_so_far is >= (progress)%
boolean runUntilProgress(int progress) throws InterruptedException {
- startService(null);
+ startDownload(mId);
int sleepCounter = MAX_TIME_TO_WAIT_FOR_OPERATION * 1000 / TIME_TO_SLEEP;
int numBytesReceivedSoFar = 0;
@@ -217,7 +219,18 @@ public abstract class AbstractPublicApiTest extends AbstractDownloadProviderFunc
@Override
protected void setUp() throws Exception {
super.setUp();
- mManager = new DownloadManager(mResolver, PACKAGE_NAME);
+ mManager = new DownloadManager(new ContextWrapper(mContext) {
+ @Override
+ public ContentResolver getContentResolver() {
+ return mResolver;
+ }
+
+ @Override
+ public String getPackageName() {
+ return PACKAGE_NAME;
+ }
+ });
+ mManager.setAccessFilename(true);
}
protected DownloadManager.Request getRequest()
diff --git a/tests/src/com/android/providers/downloads/DownloadProviderFunctionalTest.java b/tests/src/com/android/providers/downloads/DownloadProviderFunctionalTest.java
index 41dff672..9a4e6444 100644
--- a/tests/src/com/android/providers/downloads/DownloadProviderFunctionalTest.java
+++ b/tests/src/com/android/providers/downloads/DownloadProviderFunctionalTest.java
@@ -17,8 +17,10 @@
package com.android.providers.downloads;
import static android.text.format.DateUtils.SECOND_IN_MILLIS;
+
import static java.net.HttpURLConnection.HTTP_OK;
+import android.content.ContentUris;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.ConnectivityManager;
@@ -56,7 +58,6 @@ public class DownloadProviderFunctionalTest extends AbstractDownloadProviderFunc
String path = "/download_manager_test_path";
Uri downloadUri = requestDownload(path);
assertEquals(Downloads.Impl.STATUS_PENDING, getDownloadStatus(downloadUri));
- assertTrue(mTestContext.mHasServiceBeenStarted);
runUntilStatus(downloadUri, Downloads.Impl.STATUS_SUCCESS);
RecordedRequest request = takeRequest();
@@ -108,13 +109,11 @@ public class DownloadProviderFunctionalTest extends AbstractDownloadProviderFunc
// Assert that HTTP request succeeds when cleartext traffic is permitted
mSystemFacade.mCleartextTrafficPermitted = true;
Uri downloadUri = requestDownload("/path");
- assertEquals("http", downloadUri.getScheme());
runUntilStatus(downloadUri, Downloads.Impl.STATUS_SUCCESS);
// Assert that HTTP request fails when cleartext traffic is not permitted
mSystemFacade.mCleartextTrafficPermitted = false;
downloadUri = requestDownload("/path");
- assertEquals("http", downloadUri.getScheme());
runUntilStatus(downloadUri, Downloads.Impl.STATUS_BAD_REQUEST);
}
@@ -131,8 +130,8 @@ public class DownloadProviderFunctionalTest extends AbstractDownloadProviderFunc
}
private void runUntilStatus(Uri downloadUri, int expected) throws Exception {
- startService(null);
-
+ startDownload(ContentUris.parseId(downloadUri));
+
int actual = -1;
final long timeout = SystemClock.elapsedRealtime() + (15 * SECOND_IN_MILLIS);
@@ -149,7 +148,7 @@ public class DownloadProviderFunctionalTest extends AbstractDownloadProviderFunc
}
protected int getDownloadStatus(Uri downloadUri) {
- return Integer.valueOf(getDownloadField(downloadUri, Downloads.Impl.COLUMN_STATUS));
+ return Integer.parseInt(getDownloadField(downloadUri, Downloads.Impl.COLUMN_STATUS));
}
private String getDownloadFilename(Uri downloadUri) {
diff --git a/tests/src/com/android/providers/downloads/FakeSystemFacade.java b/tests/src/com/android/providers/downloads/FakeSystemFacade.java
index 7581e6fa..b6b800a2 100644
--- a/tests/src/com/android/providers/downloads/FakeSystemFacade.java
+++ b/tests/src/com/android/providers/downloads/FakeSystemFacade.java
@@ -1,33 +1,54 @@
package com.android.providers.downloads;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager.NameNotFoundException;
import android.net.ConnectivityManager;
+import android.net.Network;
import android.net.NetworkInfo;
import android.net.NetworkInfo.DetailedState;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
+import java.io.IOException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.security.GeneralSecurityException;
import java.util.ArrayList;
import java.util.List;
+import javax.net.ssl.SSLContext;
+
public class FakeSystemFacade implements SystemFacade {
long mTimeMillis = 0;
Integer mActiveNetworkType = ConnectivityManager.TYPE_WIFI;
boolean mIsRoaming = false;
boolean mIsMetered = false;
- Long mMaxBytesOverMobile = null;
- Long mRecommendedMaxBytesOverMobile = null;
+ long mMaxBytesOverMobile = Long.MAX_VALUE;
+ long mRecommendedMaxBytesOverMobile = Long.MAX_VALUE;
List<Intent> mBroadcastsSent = new ArrayList<Intent>();
boolean mCleartextTrafficPermitted = true;
private boolean mReturnActualTime = false;
+ private SSLContext mSSLContext = null;
public void setUp() {
mTimeMillis = 0;
mActiveNetworkType = ConnectivityManager.TYPE_WIFI;
mIsRoaming = false;
mIsMetered = false;
- mMaxBytesOverMobile = null;
- mRecommendedMaxBytesOverMobile = null;
+ mMaxBytesOverMobile = Long.MAX_VALUE;
+ mRecommendedMaxBytesOverMobile = Long.MAX_VALUE;
mBroadcastsSent.clear();
mReturnActualTime = false;
+ try {
+ mSSLContext = SSLContext.getDefault();
+ } catch (GeneralSecurityException e) {
+ throw new RuntimeException(e);
+ }
}
void incrementTimeMillis(long delta) {
@@ -43,33 +64,45 @@ public class FakeSystemFacade implements SystemFacade {
}
@Override
- public NetworkInfo getActiveNetworkInfo(int uid) {
+ public Network getActiveNetwork(int uid, boolean ignoreBlocked) {
if (mActiveNetworkType == null) {
return null;
} else {
- final NetworkInfo info = new NetworkInfo(mActiveNetworkType, 0, null, null);
- info.setDetailedState(DetailedState.CONNECTED, null, null);
- return info;
+ final Network network = mock(Network.class);
+ try {
+ when(network.openConnection(any())).then(new Answer<URLConnection>() {
+ @Override
+ public URLConnection answer(InvocationOnMock invocation) throws Throwable {
+ final URL url = (URL) invocation.getArguments()[0];
+ return url.openConnection();
+ }
+ });
+ } catch (IOException ignored) {
+ }
+ return network;
}
}
@Override
- public boolean isActiveNetworkMetered() {
- return mIsMetered;
- }
-
- @Override
- public boolean isNetworkRoaming() {
- return mIsRoaming;
+ public NetworkInfo getNetworkInfo(Network network, int uid, boolean ignoreBlocked) {
+ if (mActiveNetworkType == null) {
+ return null;
+ } else {
+ final NetworkInfo info = new NetworkInfo(mActiveNetworkType, 0, null, null);
+ info.setDetailedState(DetailedState.CONNECTED, null, null);
+ info.setRoaming(mIsRoaming);
+ info.setMetered(mIsMetered);
+ return info;
+ }
}
@Override
- public Long getMaxBytesOverMobile() {
+ public long getMaxBytesOverMobile() {
return mMaxBytesOverMobile;
}
@Override
- public Long getRecommendedMaxBytesOverMobile() {
+ public long getRecommendedMaxBytesOverMobile() {
return mRecommendedMaxBytesOverMobile;
}
@@ -88,6 +121,15 @@ public class FakeSystemFacade implements SystemFacade {
return mCleartextTrafficPermitted;
}
+ @Override
+ public SSLContext getSSLContextForPackage(Context context, String pckg) {
+ return mSSLContext;
+ }
+
+ public void setSSLContext(SSLContext context) {
+ mSSLContext = context;
+ }
+
public void setReturnActualTime(boolean flag) {
mReturnActualTime = flag;
}
diff --git a/tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java b/tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java
index d1048b02..97bc4a22 100644
--- a/tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java
+++ b/tests/src/com/android/providers/downloads/PublicApiFunctionalTest.java
@@ -20,12 +20,7 @@ import static android.app.DownloadManager.STATUS_FAILED;
import static android.app.DownloadManager.STATUS_PAUSED;
import static android.net.TrafficStats.GB_IN_BYTES;
import static android.text.format.DateUtils.SECOND_IN_MILLIS;
-import static java.net.HttpURLConnection.HTTP_MOVED_TEMP;
-import static java.net.HttpURLConnection.HTTP_NOT_FOUND;
-import static java.net.HttpURLConnection.HTTP_OK;
-import static java.net.HttpURLConnection.HTTP_PARTIAL;
-import static java.net.HttpURLConnection.HTTP_PRECON_FAILED;
-import static java.net.HttpURLConnection.HTTP_UNAVAILABLE;
+
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.isA;
@@ -34,10 +29,16 @@ import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static java.net.HttpURLConnection.HTTP_MOVED_TEMP;
+import static java.net.HttpURLConnection.HTTP_NOT_FOUND;
+import static java.net.HttpURLConnection.HTTP_OK;
+import static java.net.HttpURLConnection.HTTP_PARTIAL;
+import static java.net.HttpURLConnection.HTTP_PRECON_FAILED;
+import static java.net.HttpURLConnection.HTTP_UNAVAILABLE;
+
import android.app.DownloadManager;
import android.app.Notification;
import android.app.NotificationManager;
-import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.ConnectivityManager;
@@ -49,12 +50,12 @@ import android.test.suitebuilder.annotation.LargeTest;
import android.test.suitebuilder.annotation.Suppress;
import android.text.format.DateUtils;
+import libcore.io.IoUtils;
+
import com.google.mockwebserver.MockResponse;
import com.google.mockwebserver.RecordedRequest;
import com.google.mockwebserver.SocketPolicy;
-import libcore.io.IoUtils;
-
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
@@ -71,6 +72,7 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest {
protected File mTestDirectory;
private NotificationManager mNotifManager;
+ private DownloadManager mDownloadManager;
public PublicApiFunctionalTest() {
super(new FakeSystemFacade());
@@ -80,8 +82,8 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest {
protected void setUp() throws Exception {
super.setUp();
- mNotifManager = (NotificationManager) getContext()
- .getSystemService(Context.NOTIFICATION_SERVICE);
+ mNotifManager = getContext().getSystemService(NotificationManager.class);
+ mDownloadManager = getContext().getSystemService(DownloadManager.class);
mTestDirectory = new File(Environment.getExternalStorageDirectory() + File.separator
+ "download_manager_functional_test");
@@ -393,10 +395,12 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest {
mSystemFacade.mMaxBytesOverMobile = (long) FILE_CONTENT.length() - 1;
mSystemFacade.mActiveNetworkType = ConnectivityManager.TYPE_MOBILE;
+ mSystemFacade.mIsMetered = true;
Download download = enqueueRequest(getRequest());
download.runUntilStatus(DownloadManager.STATUS_PAUSED);
mSystemFacade.mActiveNetworkType = ConnectivityManager.TYPE_WIFI;
+ mSystemFacade.mIsMetered = false;
// first response was read, but aborted after the DL manager processed the Content-Length
// header, so we need to enqueue a second one
download.runUntilStatus(DownloadManager.STATUS_SUCCESSFUL);
@@ -539,7 +543,7 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest {
Download download = enqueueRequest(getRequest());
DownloadReceiver receiver = new DownloadReceiver();
- receiver.mSystemFacade = mSystemFacade;
+ Helpers.setSystemFacade(mSystemFacade);
Intent intent = new Intent(Constants.ACTION_LIST);
intent.setData(Uri.parse(Downloads.Impl.CONTENT_URI + "/" + download.mId));
intent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS,
@@ -552,6 +556,23 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest {
assertEquals(PACKAGE_NAME, broadcast.getPackage());
}
+ public void testNotificationCancelDownloadClicked() throws Exception {
+ Download download = enqueueRequest(getRequest());
+
+ DownloadReceiver receiver = new DownloadReceiver();
+ Helpers.setSystemFacade(mSystemFacade);
+ Intent intent = new Intent(Constants.ACTION_CANCEL);
+ intent.setData(Uri.parse(Downloads.Impl.CONTENT_URI + "/" + download.mId));
+
+ long[] downloadIds = {download.mId};
+ intent.putExtra(DownloadReceiver.EXTRA_CANCELED_DOWNLOAD_IDS, downloadIds);
+ intent.putExtra(DownloadReceiver.EXTRA_CANCELED_DOWNLOAD_NOTIFICATION_TAG, "tag");
+ receiver.onReceive(mContext, intent);
+
+ verify(mNotifManager, times(1)).cancel("tag", 0);
+ verify(mDownloadManager, times(1)).remove(downloadIds);
+ }
+
public void testBasicConnectivityChanges() throws Exception {
enqueueResponse(buildResponse(HTTP_OK, FILE_CONTENT));
@@ -570,6 +591,7 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest {
enqueueResponse(buildEmptyResponse(HTTP_OK));
mSystemFacade.mActiveNetworkType = ConnectivityManager.TYPE_MOBILE;
+ mSystemFacade.mIsMetered = true;
// by default, use any connection
Download download = enqueueRequest(getRequest());
@@ -581,6 +603,7 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest {
download.runUntilStatus(DownloadManager.STATUS_PAUSED);
// ...then enable wifi
mSystemFacade.mActiveNetworkType = ConnectivityManager.TYPE_WIFI;
+ mSystemFacade.mIsMetered = false;
download.runUntilStatus(DownloadManager.STATUS_SUCCESSFUL);
}
@@ -610,6 +633,7 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest {
assertTrue(mResolver.mNotifyWasCalled);
}
+ @Suppress
public void testNotificationNever() throws Exception {
enqueueResponse(buildEmptyResponse(HTTP_OK));
@@ -617,10 +641,11 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest {
getRequest().setNotificationVisibility(DownloadManager.Request.VISIBILITY_HIDDEN));
download.runUntilStatus(DownloadManager.STATUS_SUCCESSFUL);
- verify(mNotifManager, times(1)).cancelAll();
+ // TODO: verify different notif types with tags
verify(mNotifManager, never()).notify(anyString(), anyInt(), isA(Notification.class));
}
+ @Suppress
public void testNotificationVisible() throws Exception {
enqueueResponse(buildEmptyResponse(HTTP_OK));
@@ -629,10 +654,10 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest {
download.runUntilStatus(DownloadManager.STATUS_SUCCESSFUL);
// TODO: verify different notif types with tags
- verify(mNotifManager, times(1)).cancelAll();
verify(mNotifManager, atLeastOnce()).notify(anyString(), anyInt(), isA(Notification.class));
}
+ @Suppress
public void testNotificationVisibleComplete() throws Exception {
enqueueResponse(buildEmptyResponse(HTTP_OK));
@@ -641,7 +666,6 @@ public class PublicApiFunctionalTest extends AbstractPublicApiTest {
download.runUntilStatus(DownloadManager.STATUS_SUCCESSFUL);
// TODO: verify different notif types with tags
- verify(mNotifManager, times(1)).cancelAll();
verify(mNotifManager, atLeastOnce()).notify(anyString(), anyInt(), isA(Notification.class));
}
diff --git a/tests/src/com/android/providers/downloads/StorageTest.java b/tests/src/com/android/providers/downloads/StorageTest.java
index 8ba3cbce..95bd3676 100644
--- a/tests/src/com/android/providers/downloads/StorageTest.java
+++ b/tests/src/com/android/providers/downloads/StorageTest.java
@@ -32,6 +32,7 @@ import android.system.ErrnoException;
import android.system.Os;
import android.system.StructStatVfs;
import android.test.MoreAsserts;
+import android.test.suitebuilder.annotation.MediumTest;
import android.util.Log;
import com.android.providers.downloads.StorageUtils.ObserverLatch;
@@ -47,6 +48,7 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
+@MediumTest
public class StorageTest extends AbstractPublicApiTest {
private static final String TAG = "StorageTest";
diff --git a/tests/src/com/android/providers/downloads/ThreadingTest.java b/tests/src/com/android/providers/downloads/ThreadingTest.java
index 1e501444..dda4db5e 100644
--- a/tests/src/com/android/providers/downloads/ThreadingTest.java
+++ b/tests/src/com/android/providers/downloads/ThreadingTest.java
@@ -46,19 +46,6 @@ public class ThreadingTest extends AbstractPublicApiTest {
super.tearDown();
}
- /**
- * Test for race conditions when the service is flooded with startService() calls while running
- * a download.
- */
- public void testFloodServiceWithStarts() throws Exception {
- enqueueResponse(buildResponse(HTTP_OK, FILE_CONTENT));
- Download download = enqueueRequest(getRequest());
- while (download.getStatus() != DownloadManager.STATUS_SUCCESSFUL) {
- startService(null);
- Thread.sleep(10);
- }
- }
-
public void testFilenameRace() throws Exception {
final List<Pair<Download, String>> downloads = Lists.newArrayList();
final HashSet<String> expectedBodies = Sets.newHashSet();
@@ -73,12 +60,10 @@ public class ThreadingTest extends AbstractPublicApiTest {
final Download d = enqueueRequest(getRequest());
downloads.add(Pair.create(d, body));
expectedBodies.add(body);
+ startDownload(d.mId);
}
- // Kick off downloads in parallel
final long startMillis = mSystemFacade.currentTimeMillis();
- startService(null);
-
for (Pair<Download,String> d : downloads) {
d.first.waitForStatus(DownloadManager.STATUS_SUCCESSFUL, startMillis);
}