Index: sync/android/javatests/src/org/chromium/sync/AndroidSyncSettingsTest.java |
diff --git a/sync/android/javatests/src/org/chromium/sync/AndroidSyncSettingsTest.java b/sync/android/javatests/src/org/chromium/sync/AndroidSyncSettingsTest.java |
index 5b4e57528cfed9d71cf56ab24dead4d499bf5856..13c43f64d55b103d3c722a2e9da2ea9de9567090 100644 |
--- a/sync/android/javatests/src/org/chromium/sync/AndroidSyncSettingsTest.java |
+++ b/sync/android/javatests/src/org/chromium/sync/AndroidSyncSettingsTest.java |
@@ -12,6 +12,9 @@ import android.test.suitebuilder.annotation.SmallTest; |
import org.chromium.base.ThreadUtils; |
import org.chromium.base.test.util.Feature; |
import org.chromium.sync.AndroidSyncSettings.AndroidSyncSettingsObserver; |
+import org.chromium.sync.signin.AccountManagerHelper; |
+import org.chromium.sync.test.util.AccountHolder; |
+import org.chromium.sync.test.util.MockAccountManager; |
import org.chromium.sync.test.util.MockSyncContentResolverDelegate; |
/** |
@@ -81,16 +84,17 @@ public class AndroidSyncSettingsTest extends InstrumentationTestCase { |
private Account mAccount; |
private Account mAlternateAccount; |
private MockSyncSettingsObserver mSyncSettingsObserver; |
+ private MockAccountManager mAccountManager; |
@Override |
protected void setUp() throws Exception { |
mSyncContentResolverDelegate = new CountingMockSyncContentResolverDelegate(); |
Context context = getInstrumentation().getTargetContext(); |
+ setupTestAccounts(context); |
+ |
AndroidSyncSettings.overrideForTests(context, mSyncContentResolverDelegate); |
mAndroid = AndroidSyncSettings.get(context); |
mAuthority = mAndroid.getContractAuthority(); |
- mAccount = new Account("account@example.com", "com.google"); |
- mAlternateAccount = new Account("alternateAccount@example.com", "com.google"); |
mAndroid.updateAccount(mAccount); |
mSyncSettingsObserver = new MockSyncSettingsObserver(); |
@@ -99,6 +103,21 @@ public class AndroidSyncSettingsTest extends InstrumentationTestCase { |
super.setUp(); |
} |
+ private void setupTestAccounts(Context context) { |
+ mAccountManager = new MockAccountManager(context, context); |
+ AccountManagerHelper.overrideAccountManagerHelperForTests(context, mAccountManager); |
+ mAccount = setupTestAccount("account@example.com"); |
+ mAlternateAccount = setupTestAccount("alternate@example.com"); |
+ } |
+ |
+ private Account setupTestAccount(String accountName) { |
+ Account account = AccountManagerHelper.createAccountFromName(accountName); |
+ AccountHolder.Builder accountHolder = |
+ AccountHolder.create().account(account).password("password").alwaysAccept(true); |
+ mAccountManager.addAccountHolderExplicitly(accountHolder.build()); |
+ return account; |
+ } |
+ |
private void enableChromeSyncOnUiThread() { |
ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
@Override |
@@ -295,6 +314,16 @@ public class AndroidSyncSettingsTest extends InstrumentationTestCase { |
mSyncSettingsObserver.receivedNotification()); |
} |
+ @SmallTest |
+ @Feature({"Sync"}) |
+ public void testIsSyncableOnSigninAndNotOnSignout() throws InterruptedException { |
+ assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthority) == 1); |
+ mAndroid.updateAccount(null); |
+ assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthority) == 0); |
+ mAndroid.updateAccount(mAccount); |
+ assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthority) == 1); |
+ } |
+ |
/** |
* Regression test for crbug.com/475299. |
*/ |