summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorTony Mantler <nicoya@google.com>2013-12-16 12:31:27 -0800
committerTony Mantler <nicoya@google.com>2013-12-16 13:01:56 -0800
commit8887689fa7d6cde21063e723a99ee5801887e705 (patch)
tree44d79e628ea02fa87faeef64d61bfab9cd505f21 /tests
parentdf14574a8285d7437da8323d15996b9d2d8696ae (diff)
downloadandroid_packages_apps_UnifiedEmail-8887689fa7d6cde21063e723a99ee5801887e705.tar.gz
android_packages_apps_UnifiedEmail-8887689fa7d6cde21063e723a99ee5801887e705.tar.bz2
android_packages_apps_UnifiedEmail-8887689fa7d6cde21063e723a99ee5801887e705.zip
Unit test for MailAsyncTaskLoader
b/11987449 Change-Id: Ib0d5aae5c51d744ce293ad97df49b368098cd031
Diffstat (limited to 'tests')
-rw-r--r--tests/src/com/android/mail/ui/MailAsyncTaskLoaderTest.java85
1 files changed, 85 insertions, 0 deletions
diff --git a/tests/src/com/android/mail/ui/MailAsyncTaskLoaderTest.java b/tests/src/com/android/mail/ui/MailAsyncTaskLoaderTest.java
new file mode 100644
index 000000000..fa4bf724d
--- /dev/null
+++ b/tests/src/com/android/mail/ui/MailAsyncTaskLoaderTest.java
@@ -0,0 +1,85 @@
+package com.android.mail.ui;
+
+import android.app.Activity;
+import android.app.LoaderManager;
+import android.content.Intent;
+import android.content.Loader;
+import android.os.Bundle;
+import android.test.ActivityUnitTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import com.google.common.annotations.VisibleForTesting;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+public class MailAsyncTaskLoaderTest
+ extends ActivityUnitTestCase<MailAsyncTaskLoaderTest.LoaderTestActivity> {
+
+ public static class LoaderTestActivity extends Activity {
+ final CountDownLatch loadFinishedLatch = new CountDownLatch(1);
+ final CountDownLatch resultDiscardedLatch = new CountDownLatch(1);
+ volatile Object result;
+
+ public void runLoaderTest() {
+ result = new Object();
+
+ getLoaderManager().initLoader(0, null, new LoaderManager.LoaderCallbacks<Object>() {
+ @Override
+ public Loader<Object> onCreateLoader(int id, Bundle args) {
+ return new MailAsyncTaskLoader<Object>(LoaderTestActivity.this) {
+ @Override
+ protected void onDiscardResult(Object result) {
+ MailAsyncTaskLoaderTest.assertNotNull(result);
+ resultDiscardedLatch.countDown();
+ }
+
+ @Override
+ public Object loadInBackground() {
+ return result;
+ }
+ };
+ }
+
+ @Override
+ public void onLoadFinished(Loader<Object> loader, Object data) {
+ MailAsyncTaskLoaderTest.assertEquals(data, result);
+ loadFinishedLatch.countDown();
+ }
+
+ @Override
+ public void onLoaderReset(Loader<Object> loader) {}
+ });
+ while (true) {
+ try {
+ MailAsyncTaskLoaderTest.assertTrue(
+ loadFinishedLatch.await(30, TimeUnit.SECONDS));
+ } catch (final InterruptedException e) {
+ continue;
+ }
+ break;
+ }
+ getLoaderManager().destroyLoader(0);
+ while (true) {
+ try {
+ MailAsyncTaskLoaderTest.assertTrue(
+ resultDiscardedLatch.await(30, TimeUnit.SECONDS));
+ } catch (final InterruptedException e) {
+ continue;
+ }
+ break;
+ }
+ }
+ }
+
+ public MailAsyncTaskLoaderTest() {
+ super(LoaderTestActivity.class);
+ }
+
+ @SmallTest
+ public void testLoader() {
+ startActivity(new Intent(Intent.ACTION_MAIN), null, null);
+ getInstrumentation().callActivityOnStart(getActivity());
+ getActivity().runLoaderTest();
+ }
+}