summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDmitri Plotnikov <dplotnikov@google.com>2010-07-16 17:51:36 -0700
committerDmitri Plotnikov <dplotnikov@google.com>2010-07-16 17:51:36 -0700
commiteb4a5d0aeb8c7f1bf1c5aba675951006bc3e209c (patch)
tree89ccca4ac1f370f891c8a3135fb0c9e98ba7b844 /tests
parent1010574de981eae8d12d1d0ae1b6fd5f19ca4a01 (diff)
downloadpackages_apps_Contacts-eb4a5d0aeb8c7f1bf1c5aba675951006bc3e209c.tar.gz
packages_apps_Contacts-eb4a5d0aeb8c7f1bf1c5aba675951006bc3e209c.tar.bz2
packages_apps_Contacts-eb4a5d0aeb8c7f1bf1c5aba675951006bc3e209c.zip
Fixing a broken test
Change-Id: Icced148d376a1e6cd8e810be72b208fa25021b4a
Diffstat (limited to 'tests')
-rw-r--r--tests/src/com/android/contacts/DefaultContactBrowseListFragmentTest.java14
-rw-r--r--tests/src/com/android/contacts/widget/LoaderManagingFragmentTestDelegate.java56
-rw-r--r--tests/src/com/android/contacts/widget/TestLoaderManager.java85
3 files changed, 92 insertions, 63 deletions
diff --git a/tests/src/com/android/contacts/DefaultContactBrowseListFragmentTest.java b/tests/src/com/android/contacts/DefaultContactBrowseListFragmentTest.java
index 40607bf57..8ad3cb9a7 100644
--- a/tests/src/com/android/contacts/DefaultContactBrowseListFragmentTest.java
+++ b/tests/src/com/android/contacts/DefaultContactBrowseListFragmentTest.java
@@ -19,15 +19,15 @@ package com.android.contacts;
import com.android.contacts.list.DefaultContactBrowseListFragment;
import com.android.contacts.tests.mocks.ContactsMockContext;
import com.android.contacts.tests.mocks.MockContentProvider;
-import com.android.contacts.widget.LoaderManagingFragmentTestDelegate;
+import com.android.contacts.widget.TestLoaderManager;
import android.database.Cursor;
import android.provider.ContactsContract;
-import android.provider.Settings;
import android.provider.ContactsContract.ContactCounts;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.ProviderStatus;
import android.provider.ContactsContract.StatusUpdates;
+import android.provider.Settings;
import android.test.InstrumentationTestCase;
import android.test.suitebuilder.annotation.Smoke;
import android.view.LayoutInflater;
@@ -101,11 +101,11 @@ public class DefaultContactBrowseListFragmentTest
DefaultContactBrowseListFragment fragment = new DefaultContactBrowseListFragment();
- LoaderManagingFragmentTestDelegate<Cursor> delegate =
- new LoaderManagingFragmentTestDelegate<Cursor>();
+ TestLoaderManager loaderManager = new TestLoaderManager();
- // Divert loader registration to the delegate to ensure that loading is done synchronously
-// fragment.setDelegate(delegate);
+ // Divert loader registration the TestLoaderManager to ensure that loading is
+ // done synchronously
+ fragment.setLoaderManager(loaderManager);
// Fragment life cycle
fragment.onCreate(null);
@@ -121,7 +121,7 @@ public class DefaultContactBrowseListFragmentTest
fragment.onStart();
// All loaders have been registered. Now perform the loading synchronously.
- delegate.executeLoaders();
+ loaderManager.executeLoaders();
// Now we can assert that the data got loaded into the list.
ListView listView = (ListView)view.findViewById(android.R.id.list);
diff --git a/tests/src/com/android/contacts/widget/LoaderManagingFragmentTestDelegate.java b/tests/src/com/android/contacts/widget/LoaderManagingFragmentTestDelegate.java
deleted file mode 100644
index 353bfc72f..000000000
--- a/tests/src/com/android/contacts/widget/LoaderManagingFragmentTestDelegate.java
+++ /dev/null
@@ -1,56 +0,0 @@
-// Copyright 2010 Google Inc. All Rights Reserved.
-
-package com.android.contacts.widget;
-
-import android.content.AsyncTaskLoader;
-import android.content.Loader;
-
-import java.util.LinkedHashMap;
-
-import junit.framework.Assert;
-
-/**
- * A delegate of {@link InstrumentedLoaderManagingFragment} that performs
- * synchronous loading on demand for unit testing.
- */
-public class LoaderManagingFragmentTestDelegate<D> {
-
- // Using a linked hash map to get all loading done in a predictable order.
- private LinkedHashMap<Integer, Loader<D>> mStartedLoaders =
- new LinkedHashMap<Integer, Loader<D>>();
-
- public void onStartLoading(Loader<D> loader) {
- int id = loader.getId();
- mStartedLoaders.put(id, loader);
- }
-
- /**
- * Synchronously runs all started loaders.
- */
- public void executeLoaders() {
- for (Loader<D> loader : mStartedLoaders.values()) {
- executeLoader(loader);
- }
- }
-
- /**
- * Synchronously runs the specified loader.
- */
- public void executeLoader(int id) {
- Loader<D> loader = mStartedLoaders.get(id);
- if (loader == null) {
- Assert.fail("Loader not started: " + id);
- }
- executeLoader(loader);
- }
-
- private void executeLoader(Loader<D> loader) {
- if (loader instanceof AsyncTaskLoader) {
- AsyncTaskLoader<D> atLoader = (AsyncTaskLoader<D>)loader;
- D data = atLoader.loadInBackground();
- atLoader.deliverResult(data);
- } else {
- loader.forceLoad();
- }
- }
-} \ No newline at end of file
diff --git a/tests/src/com/android/contacts/widget/TestLoaderManager.java b/tests/src/com/android/contacts/widget/TestLoaderManager.java
new file mode 100644
index 000000000..7d292ae8b
--- /dev/null
+++ b/tests/src/com/android/contacts/widget/TestLoaderManager.java
@@ -0,0 +1,85 @@
+// Copyright 2010 Google Inc. All Rights Reserved.
+
+package com.android.contacts.widget;
+
+import android.app.LoaderManager;
+import android.content.AsyncTaskLoader;
+import android.content.Loader;
+import android.content.Loader.OnLoadCompleteListener;
+import android.os.Bundle;
+
+import java.util.LinkedHashMap;
+
+import junit.framework.Assert;
+
+/**
+ * A {@link LoaderManager} that performs synchronous loading on demand for unit
+ * testing.
+ */
+public class TestLoaderManager implements LoaderManager {
+
+ // Using a linked hash map to get all loading done in a predictable order.
+ private LinkedHashMap<Integer, Loader<?>> mStartedLoaders = new LinkedHashMap<
+ Integer, Loader<?>>();
+
+ @Override
+ @SuppressWarnings("unchecked")
+ public <D> Loader<D> getLoader(int id) {
+ return (Loader<D>)mStartedLoaders.get(id);
+ }
+
+ @Override
+ public <D> Loader<D> initLoader(int id, Bundle args, final LoaderCallbacks<D> callbacks) {
+ Loader<D> loader = callbacks.onCreateLoader(id, args);
+ loader.registerListener(id, new OnLoadCompleteListener<D>() {
+ @Override
+ public void onLoadComplete(Loader<D> loader, D data) {
+ callbacks.onLoadFinished(loader, data);
+ }
+ });
+
+ mStartedLoaders.put(id, loader);
+ return loader;
+ }
+
+ @Override
+ public <D> Loader<D> restartLoader(int id, Bundle args, LoaderCallbacks<D> callbacks) {
+ return initLoader(id, args, callbacks);
+ }
+
+ @Override
+ public void stopLoader(int id) {
+ mStartedLoaders.get(id).stopLoading();
+ }
+
+ /**
+ * Synchronously runs all started loaders.
+ */
+ public void executeLoaders() {
+ for (Loader<?> loader : mStartedLoaders.values()) {
+ executeLoader(loader);
+ }
+ }
+
+ /**
+ * Synchronously runs the specified loader.
+ */
+ public void executeLoader(int id) {
+ Loader<?> loader = mStartedLoaders.get(id);
+ if (loader == null) {
+ Assert.fail("Loader not started: " + id);
+ }
+ executeLoader(loader);
+ }
+
+ @SuppressWarnings("unchecked")
+ private <D> void executeLoader(final Loader<D> loader) {
+ if (loader instanceof AsyncTaskLoader) {
+ AsyncTaskLoader<D> atLoader = (AsyncTaskLoader<D>)loader;
+ D data = atLoader.loadInBackground();
+ loader.deliverResult(data);
+ } else {
+ loader.forceLoad();
+ }
+ }
+}