diff options
| author | 2009-04-28 10:56:48 -0700 | |
|---|---|---|
| committer | 2009-04-28 10:56:48 -0700 | |
| commit | 190b75733cdfe2b9011e2c35a8968507a838b72a (patch) | |
| tree | 0953bb1f4144fb1b5bd341c3364a96abb1228098 | |
| parent | f0c70a83562a27c424554f609eb1d4cdebf06df4 (diff) | |
| parent | 0eabf0228a17e07ef831bc1ee1951c9697d2a079 (diff) | |
Merge change 611
* changes:
change the IsolatedContext to have a test version of the AccountManager that has no IBinder to the AccountManagerService.
| -rw-r--r-- | core/java/android/accounts/AccountManager.java | 9 | ||||
| -rw-r--r-- | test-runner/android/test/IsolatedContext.java | 21 |
2 files changed, 29 insertions, 1 deletions
diff --git a/core/java/android/accounts/AccountManager.java b/core/java/android/accounts/AccountManager.java index 3d21101ef1ac..4fcaa884b1c6 100644 --- a/core/java/android/accounts/AccountManager.java +++ b/core/java/android/accounts/AccountManager.java @@ -67,6 +67,15 @@ public class AccountManager { mMainHandler = new Handler(mContext.getMainLooper()); } + /** + * @hide used for testing only + */ + public AccountManager(Context context, IAccountManager service, Handler handler) { + mContext = context; + mService = service; + mMainHandler = handler; + } + public static AccountManager get(Context context) { return (AccountManager) context.getSystemService(Context.ACCOUNT_SERVICE); } diff --git a/test-runner/android/test/IsolatedContext.java b/test-runner/android/test/IsolatedContext.java index 286666684b88..03d95b722dcd 100644 --- a/test-runner/android/test/IsolatedContext.java +++ b/test-runner/android/test/IsolatedContext.java @@ -2,6 +2,8 @@ package android.test; import com.google.android.collect.Lists; +import android.accounts.AccountManager; +import android.accounts.OnAccountsUpdatedListener; import android.content.ContextWrapper; import android.content.ContentResolver; import android.content.Intent; @@ -11,6 +13,8 @@ import android.content.BroadcastReceiver; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.net.Uri; +import android.os.Handler; +import android.os.Looper; import java.util.List; @@ -21,6 +25,7 @@ import java.util.List; public class IsolatedContext extends ContextWrapper { private ContentResolver mResolver; + private final MockAccountManager mMockAccountManager; private List<Intent> mBroadcastIntents = Lists.newArrayList(); @@ -28,6 +33,7 @@ public class IsolatedContext extends ContextWrapper { ContentResolver resolver, Context targetContext) { super(targetContext); mResolver = resolver; + mMockAccountManager = new MockAccountManager(); } /** Returns the list of intents that were broadcast since the last call to this method. */ @@ -78,8 +84,21 @@ public class IsolatedContext extends ContextWrapper { @Override public Object getSystemService(String name) { - // No services exist in this context. + if (Context.ACCOUNT_SERVICE.equals(name)) { + return mMockAccountManager; + } + // No other services exist in this context. return null; } + private class MockAccountManager extends AccountManager { + public MockAccountManager() { + super(IsolatedContext.this, null /* IAccountManager */, null /* handler */); + } + + public void addOnAccountsUpdatedListener(OnAccountsUpdatedListener listener, + Handler handler, boolean updateImmediately) { + // do nothing + } + } } |