diff options
author | Tony Mantler <nicoya@google.com> | 2013-12-16 12:31:27 -0800 |
---|---|---|
committer | Tony Mantler <nicoya@google.com> | 2013-12-16 13:01:56 -0800 |
commit | 8887689fa7d6cde21063e723a99ee5801887e705 (patch) | |
tree | 44d79e628ea02fa87faeef64d61bfab9cd505f21 /tests | |
parent | df14574a8285d7437da8323d15996b9d2d8696ae (diff) | |
download | android_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.java | 85 |
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(); + } +} |