Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Unified Diff: chrome/android/javatests/src/org/chromium/chrome/browser/ChromeBackupIntegrationTest.java

Issue 1990233002: [Android backup] Restore nothing if signed in user isn't valid (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Respond to more comments Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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());
}
}

Powered by Google App Engine
This is Rietveld 408576698