@SmallTest @Feature({"Sync"}) public void testToggleChromeSyncFromSettings() throws InterruptedException { // Turn on syncability. mSyncContentResolverDelegate.setMasterSyncAutomatically(true); mSyncContentResolverDelegate.waitForLastNotificationCompleted(); // First sync mSyncContentResolverDelegate.setIsSyncable(mAccount, mAuthority, 1); mSyncContentResolverDelegate.waitForLastNotificationCompleted(); mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mAuthority, true); mSyncContentResolverDelegate.waitForLastNotificationCompleted(); assertTrue("sync should be set", AndroidSyncSettings.isSyncEnabled(mContext)); assertTrue( "sync should be set for chrome app", AndroidSyncSettings.isChromeSyncEnabled(mContext)); // Disable sync automatically for the app mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mAuthority, false); mSyncContentResolverDelegate.waitForLastNotificationCompleted(); assertFalse("sync should be unset", AndroidSyncSettings.isSyncEnabled(mContext)); assertFalse( "sync should be unset for chrome app", AndroidSyncSettings.isChromeSyncEnabled(mContext)); // Re-enable sync mSyncContentResolverDelegate.setSyncAutomatically(mAccount, mAuthority, true); mSyncContentResolverDelegate.waitForLastNotificationCompleted(); assertTrue("sync should be re-enabled", AndroidSyncSettings.isSyncEnabled(mContext)); assertTrue( "sync should be set for chrome app", AndroidSyncSettings.isChromeSyncEnabled(mContext)); // Disabled from master sync mSyncContentResolverDelegate.setMasterSyncAutomatically(false); mSyncContentResolverDelegate.waitForLastNotificationCompleted(); assertFalse( "sync should be disabled due to master sync", AndroidSyncSettings.isSyncEnabled(mContext)); assertFalse( "master sync should be disabled", AndroidSyncSettings.isMasterSyncEnabled(mContext)); assertTrue( "sync should be set for chrome app", AndroidSyncSettings.isChromeSyncEnabled(mContext)); }
/** 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. AndroidSyncSettings.enableChromeSync(mContext); assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthority) == 1); // Should still be enabled. assertTrue(mSyncContentResolverDelegate.getSyncAutomatically(mAccount, mAuthority)); }