@SmallTest @Feature({"Sync"}) public void testAndroidSyncSettingsPostsNotifications() throws InterruptedException { // Turn on syncability. mSyncContentResolverDelegate.setMasterSyncAutomatically(true); mSyncContentResolverDelegate.waitForLastNotificationCompleted(); mSyncSettingsObserver.clearNotification(); AndroidSyncSettings.enableChromeSync(mContext); assertTrue( "enableChromeSync should trigger observers", mSyncSettingsObserver.receivedNotification()); mSyncSettingsObserver.clearNotification(); AndroidSyncSettings.updateAccount(mContext, mAlternateAccount); assertTrue( "switching to account with different settings should notify", mSyncSettingsObserver.receivedNotification()); mSyncSettingsObserver.clearNotification(); AndroidSyncSettings.updateAccount(mContext, mAccount); assertTrue( "switching to account with different settings should notify", mSyncSettingsObserver.receivedNotification()); mSyncSettingsObserver.clearNotification(); AndroidSyncSettings.enableChromeSync(mContext); assertFalse( "enableChromeSync shouldn't trigger observers", mSyncSettingsObserver.receivedNotification()); mSyncSettingsObserver.clearNotification(); AndroidSyncSettings.disableChromeSync(mContext); assertTrue( "disableChromeSync should trigger observers", mSyncSettingsObserver.receivedNotification()); mSyncSettingsObserver.clearNotification(); AndroidSyncSettings.disableChromeSync(mContext); 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. AndroidSyncSettings.enableChromeSync(mContext); assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthority) == 1); // Should still be enabled. assertTrue(mSyncContentResolverDelegate.getSyncAutomatically(mAccount, mAuthority)); }