| Index: chrome/android/javatests/src/org/chromium/chrome/browser/ChromeBackupIntegrationTest.java
|
| diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/ChromeBackupIntegrationTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/ChromeBackupIntegrationTest.java
|
| index d90896a3c6a7c7e4fbc97c6680f59615ff149c44..b2f9b69b566b821bce1dd50f6ff3420b60300acb 100644
|
| --- a/chrome/android/javatests/src/org/chromium/chrome/browser/ChromeBackupIntegrationTest.java
|
| +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/ChromeBackupIntegrationTest.java
|
| @@ -30,6 +30,9 @@ import org.chromium.sync.test.util.MockAccountManager;
|
| public class ChromeBackupIntegrationTest extends ChromeTabbedActivityTestBase {
|
|
|
| private static final String GOOGLE_ACCOUNT_TYPE = "com.google";
|
| + private static final String TEST_ACCOUNT_1 = "user1@gmail.com";
|
| + private static final String TEST_ACCOUNT_2 = "user2@gmail.com";
|
| + private Context mTargetContext;
|
|
|
| @Override
|
| public void startMainActivity() throws InterruptedException {
|
| @@ -55,66 +58,79 @@ public class ChromeBackupIntegrationTest extends ChromeTabbedActivityTestBase {
|
| // class.
|
| attachBaseContext(context);
|
| }
|
| +
|
| + @Override
|
| + protected Account[] getAccounts() {
|
| + // ChromeBackupAgent can't use Chrome's account manager, so we override this to mock
|
| + // the existence of the account.
|
| + return new Account[]{new Account(TEST_ACCOUNT_1, GOOGLE_ACCOUNT_TYPE)};
|
| + }
|
| +
|
| + }
|
| +
|
| + @Override
|
| + public void setUp() throws Exception {
|
| + super.setUp();
|
| + clearAppData();
|
| +
|
| + mTargetContext = getInstrumentation().getTargetContext();
|
| +
|
| + // Create a mock account manager. Although this isn't used by ChromeBackupAgent it is used
|
| + // when we test the result by starting Chrome.
|
| + ChromeBackupAgent.allowChromeApplicationForTesting();
|
| + Account account = new Account(TEST_ACCOUNT_1, GOOGLE_ACCOUNT_TYPE);
|
| + MockAccountManager accountManager =
|
| + new MockAccountManager(mTargetContext, getInstrumentation().getContext(), account);
|
| + AccountManagerHelper.overrideAccountManagerHelperForTests(mTargetContext, accountManager);
|
| + AccountIdProvider.setInstanceForTest(new MockAccountIdProvider());
|
| }
|
|
|
| @SmallTest
|
| @MinAndroidSdkLevel(Build.VERSION_CODES.LOLLIPOP)
|
| public void testSimpleRestore() throws InterruptedException {
|
| - Context targetContext = getInstrumentation().getTargetContext();
|
|
|
| // Fake having previously gone through FRE and signed in.
|
| SharedPreferences prefs = ContextUtils.getAppSharedPreferences();
|
| SharedPreferences.Editor preferenceEditor = prefs.edit();
|
| preferenceEditor.putBoolean(FirstRunStatus.FIRST_RUN_FLOW_COMPLETE, true);
|
| preferenceEditor.putBoolean(FirstRunSignInProcessor.FIRST_RUN_FLOW_SIGNIN_SETUP, true);
|
| - preferenceEditor.putString(ChromeSigninController.SIGNED_IN_ACCOUNT_KEY, "user1@gmail.com");
|
| - preferenceEditor.commit();
|
|
|
| - Account account = new Account("user1@gmail.com", GOOGLE_ACCOUNT_TYPE);
|
| - MockAccountManager accountManager =
|
| - new MockAccountManager(targetContext, getInstrumentation().getContext(), account);
|
| - AccountManagerHelper.overrideAccountManagerHelperForTests(targetContext, accountManager);
|
| - AccountIdProvider.setInstanceForTest(new MockAccountIdProvider());
|
| + // Set up the mocked account as the signed in account.
|
| + preferenceEditor.putString(ChromeSigninController.SIGNED_IN_ACCOUNT_KEY, TEST_ACCOUNT_1);
|
| + preferenceEditor.commit();
|
|
|
| // Run Chrome's restore code.
|
| - new ChromeTestBackupAgent(targetContext).onRestoreFinished();
|
| + new ChromeTestBackupAgent(mTargetContext).onRestoreFinished();
|
|
|
| // Start Chrome and check that it signs in.
|
| startMainActivityFromLauncher();
|
|
|
| - assertTrue(ChromeSigninController.get(targetContext).isSignedIn());
|
| - assertEquals("user1@gmail.com",
|
| - ChromeSigninController.get(targetContext).getSignedInAccountName());
|
| + assertTrue(ChromeSigninController.get(mTargetContext).isSignedIn());
|
| + assertEquals(TEST_ACCOUNT_1,
|
| + ChromeSigninController.get(mTargetContext).getSignedInAccountName());
|
| }
|
|
|
| @SmallTest
|
| @MinAndroidSdkLevel(Build.VERSION_CODES.LOLLIPOP)
|
| public void testRestoreAccountMissing() throws InterruptedException {
|
| - Context targetContext = getInstrumentation().getTargetContext();
|
| -
|
| // Fake having previously gone through FRE and signed in.
|
| SharedPreferences prefs = ContextUtils.getAppSharedPreferences();
|
| SharedPreferences.Editor preferenceEditor = prefs.edit();
|
| preferenceEditor.putBoolean(FirstRunStatus.FIRST_RUN_FLOW_COMPLETE, true);
|
| preferenceEditor.putBoolean(FirstRunSignInProcessor.FIRST_RUN_FLOW_SIGNIN_SETUP, true);
|
| - preferenceEditor.putString(ChromeSigninController.SIGNED_IN_ACCOUNT_KEY, "user1@gmail.com");
|
| - preferenceEditor.commit();
|
|
|
| - // Create a mock account manager with a different account
|
| - Account account = new Account("user2@gmail.com", GOOGLE_ACCOUNT_TYPE);
|
| - MockAccountManager accountManager =
|
| - new MockAccountManager(targetContext, getInstrumentation().getContext(), account);
|
| - AccountManagerHelper.overrideAccountManagerHelperForTests(targetContext, accountManager);
|
| - AccountIdProvider.setInstanceForTest(new MockAccountIdProvider());
|
| + // Use an account that hasn't been created by the mocks as the signed in account.
|
| + preferenceEditor.putString(ChromeSigninController.SIGNED_IN_ACCOUNT_KEY, TEST_ACCOUNT_2);
|
| + preferenceEditor.commit();
|
|
|
| // Run Chrome's restore code.
|
| - new ChromeTestBackupAgent(targetContext).onRestoreFinished();
|
| + new ChromeTestBackupAgent(mTargetContext).onRestoreFinished();
|
|
|
| // Start Chrome.
|
| startMainActivityFromLauncher();
|
|
|
| // Since the account didn't exist, Chrome should not be signed in.
|
| - assertFalse(ChromeSigninController.get(targetContext).isSignedIn());
|
| + assertFalse(ChromeSigninController.get(mTargetContext).isSignedIn());
|
| }
|
|
|
| }
|
|
|