Commit c9e3a7c2 authored by maxbogue's avatar maxbogue Committed by Commit bot

[Sync] Test signing in and back out on Android

Ensure that sync still starts properly after signing out and back in.

BUG=480604

Review URL: https://codereview.chromium.org/1122373004

Cr-Commit-Position: refs/heads/master@{#330224}
parent f4c7e804
......@@ -128,6 +128,22 @@ public class SyncTest extends SyncTestBase {
hadExpectedStatus);
}
@LargeTest
@Feature({"Sync"})
public void testSignInAndOut() throws InterruptedException {
setupTestAccountAndSignInToSync(CLIENT_ID);
Account account =
AccountManagerHelper.createAccountFromName(SyncTestUtil.DEFAULT_TEST_ACCOUNT);
// Signing out should disable sync.
signOut();
SyncTestUtil.verifySyncIsSignedOut(mContext);
// Signing back in should re-enable sync.
signIn(account);
SyncTestUtil.verifySyncIsSignedIn(mContext, account);
}
@LargeTest
@Feature({"Sync"})
public void testDisableAndEnableSyncThroughAndroid() throws InterruptedException {
......
......@@ -5,7 +5,6 @@
package org.chromium.chrome.browser.sync;
import android.accounts.Account;
import android.app.Activity;
import android.content.Context;
import org.chromium.base.ThreadUtils;
......@@ -13,6 +12,7 @@ import org.chromium.chrome.browser.identity.UniqueIdentificationGenerator;
import org.chromium.chrome.browser.identity.UniqueIdentificationGeneratorFactory;
import org.chromium.chrome.browser.identity.UuidBasedUniqueIdentificationGenerator;
import org.chromium.chrome.browser.signin.AccountIdProvider;
import org.chromium.chrome.browser.signin.SigninManager;
import org.chromium.chrome.shell.ChromeShellTestBase;
import org.chromium.chrome.test.util.browser.sync.SyncTestUtil;
import org.chromium.content.browser.test.util.Criteria;
......@@ -131,15 +131,7 @@ public class SyncTestBase extends ChromeShellTestBase {
}, true);
SyncTestUtil.verifySyncIsSignedOut(getActivity());
final Activity activity = launchChromeShellWithBlankPage();
ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
mSyncController.signIn(activity, SyncTestUtil.DEFAULT_TEST_ACCOUNT);
}
});
signIn(defaultTestAccount);
SyncTestUtil.verifySyncIsSignedIn(mContext, defaultTestAccount);
assertTrue("Sync everything should be enabled",
SyncTestUtil.isSyncEverythingEnabled(mContext));
......@@ -165,6 +157,24 @@ public class SyncTestBase extends ChromeShellTestBase {
getInstrumentation().waitForIdleSync();
}
protected void signIn(final Account account) {
ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
mSyncController.signIn(getActivity(), account.name);
}
});
}
protected void signOut() throws InterruptedException {
ThreadUtils.runOnUiThreadBlocking(new Runnable() {
@Override
public void run() {
SigninManager.get(mContext).signOut(getActivity(), null);
}
});
}
protected void waitForSyncInitialized() throws InterruptedException {
assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
@Override
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment