From d2787a392a65c1172ad64e9a13e77e023d9b8d31 Mon Sep 17 00:00:00 2001 From: jbudorick Date: Tue, 2 Sep 2014 12:31:46 -0700 Subject: [PATCH] [Android] Check whether MockGrantCredentialsPermissionsActivity can be started. BUG=406596 Review URL: https://codereview.chromium.org/467363004 Cr-Commit-Position: refs/heads/master@{#292975} --- .../sync/test/util/MockAccountManager.java | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/sync/test/android/javatests/src/org/chromium/sync/test/util/MockAccountManager.java b/sync/test/android/javatests/src/org/chromium/sync/test/util/MockAccountManager.java index 89410cfe95bcfb..baf36cd03159dc 100644 --- a/sync/test/android/javatests/src/org/chromium/sync/test/util/MockAccountManager.java +++ b/sync/test/android/javatests/src/org/chromium/sync/test/util/MockAccountManager.java @@ -17,6 +17,8 @@ import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.pm.ActivityInfo; +import android.content.pm.PackageManager; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; @@ -349,9 +351,26 @@ private void applyPreparedPermission(AccountAuthTokenPreparation prep) { private Intent newGrantCredentialsPermissionIntent(boolean hasActivity, Account account, String authTokenType) { + ComponentName component = new ComponentName(mTestContext, + MockGrantCredentialsPermissionActivity.class.getCanonicalName()); + + // Make sure we can start the activity. + ActivityInfo ai = null; + try { + ai = mContext.getPackageManager().getActivityInfo(component, 0); + } catch (PackageManager.NameNotFoundException e) { + throw new IllegalStateException( + "Unable to find " + component.getClassName()); + } + if (ai.applicationInfo != mContext.getApplicationInfo() && !ai.exported) { + throw new IllegalStateException( + "Unable to start " + ai.name + ". " + + "The accounts you added to MockAccountManager may not be " + + "configured correctly."); + } + Intent intent = new Intent(); - intent.setComponent(new ComponentName(mTestContext, - MockGrantCredentialsPermissionActivity.class.getCanonicalName())); + intent.setComponent(component); intent.putExtra(MockGrantCredentialsPermissionActivity.ACCOUNT, account); intent.putExtra(MockGrantCredentialsPermissionActivity.AUTH_TOKEN_TYPE, authTokenType); if (!hasActivity) {