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 aeba67f607e4d8ace6affb72da8db34cd2c268cf..5b4e57528cfed9d71cf56ab24dead4d499bf5856 100644 |
--- a/sync/android/javatests/src/org/chromium/sync/AndroidSyncSettingsTest.java |
+++ b/sync/android/javatests/src/org/chromium/sync/AndroidSyncSettingsTest.java |
@@ -294,4 +294,29 @@ public class AndroidSyncSettingsTest extends InstrumentationTestCase { |
assertFalse("disableChromeSync shouldn't observers", |
mSyncSettingsObserver.receivedNotification()); |
} |
+ |
+ /** |
+ * Regression test for crbug.com/475299. |
+ */ |
+ @SmallTest |
+ @Feature({"Sync"}) |
+ public void testSyncableIsAlwaysSetWhenEnablingSync() throws InterruptedException { |
+ // Setup bad state. |
+ mSyncContentResolverDelegate.setMasterSyncAutomatically(true); |
+ mSyncContentResolverDelegate.waitForLastNotificationCompleted(); |
+ mSyncContentResolverDelegate.setIsSyncable(mAccount, mAuthority, 1); |
+ mSyncContentResolverDelegate.waitForLastNotificationCompleted(); |
+ mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mAuthority, true); |
+ mSyncContentResolverDelegate.waitForLastNotificationCompleted(); |
+ mSyncContentResolverDelegate.setIsSyncable(mAccount, mAuthority, 0); |
+ mSyncContentResolverDelegate.waitForLastNotificationCompleted(); |
+ assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthority) == 0); |
+ assertTrue(mSyncContentResolverDelegate.getSyncAutomatically(mAccount, mAuthority)); |
+ |
+ // Ensure bug is fixed. |
+ mAndroid.enableChromeSync(); |
+ assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthority) == 1); |
+ // Should still be enabled. |
+ assertTrue(mSyncContentResolverDelegate.getSyncAutomatically(mAccount, mAuthority)); |
+ } |
} |