diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-02-11 16:19:39 -0800 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-02-12 20:24:16 -0800 |
commit | 925976230936a5177365dc24b50da8607a9af8d4 (patch) | |
tree | 0266d0edd90fbdb967f5450dfba5677da6fa2a9a /tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java | |
parent | 1ad10ce731d1b54692d7d5ee32601e965f503fa4 (diff) | |
download | android_packages_providers_DownloadProvider-925976230936a5177365dc24b50da8607a9af8d4.tar.gz android_packages_providers_DownloadProvider-925976230936a5177365dc24b50da8607a9af8d4.tar.bz2 android_packages_providers_DownloadProvider-925976230936a5177365dc24b50da8607a9af8d4.zip |
Redesign of DownloadManager update loop.
Previously, the service lifecycle was managed through a large for()
loop which was extremely tricky to reason about. This resulted in
several race conditions that could leave the service running
indefinitely, or terminate it early before tasks had finished.
This change redesigns the update loop to be event driven based on
database updates, and to collapse mutiple pending update passes. It
is much easier to reason about service termination conditions, and
it correctly uses startId to handle races during command delivery.
Also moves scanner into isolated class, and switches to using public
API instead of binding to private interface.
Bug: 7638470, 7455406, 7162341
Change-Id: I380e77f5432223b2acb4e819e37f29f98ee4782b
Diffstat (limited to 'tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java')
-rw-r--r-- | tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java b/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java index 0074a270..3b937389 100644 --- a/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java +++ b/tests/src/com/android/providers/downloads/AbstractDownloadProviderFunctionalTest.java @@ -56,6 +56,8 @@ public abstract class AbstractDownloadProviderFunctionalTest extends protected static final String FILE_CONTENT = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"; + private final MockitoHelper mMockitoHelper = new MockitoHelper(); + protected MockWebServer mServer; protected MockContentResolverWithNotify mResolver; protected TestContext mTestContext; @@ -147,6 +149,7 @@ public abstract class AbstractDownloadProviderFunctionalTest extends @Override protected void setUp() throws Exception { super.setUp(); + mMockitoHelper.setUp(getClass()); // Since we're testing a system app, AppDataDirGuesser doesn't find our // cache dir, so set it explicitly. @@ -169,6 +172,7 @@ public abstract class AbstractDownloadProviderFunctionalTest extends protected void tearDown() throws Exception { cleanUpDownloads(); mServer.shutdown(); + mMockitoHelper.tearDown(); super.tearDown(); } |