@SmallTest @Feature({"Sync"}) public void testToggleMasterSyncFromSettings() throws InterruptedException { mSyncContentResolverDelegate.setMasterSyncAutomatically(true); mSyncContentResolverDelegate.waitForLastNotificationCompleted(); assertTrue("master sync should be set", AndroidSyncSettings.isMasterSyncEnabled(mContext)); mSyncContentResolverDelegate.setMasterSyncAutomatically(false); mSyncContentResolverDelegate.waitForLastNotificationCompleted(); assertFalse("master sync should be unset", AndroidSyncSettings.isMasterSyncEnabled(mContext)); }
@SmallTest @Feature({"Sync"}) public void testSyncSettingsCaching() throws InterruptedException { // Turn on syncability. mSyncContentResolverDelegate.setMasterSyncAutomatically(true); mSyncContentResolverDelegate.waitForLastNotificationCompleted(); enableChromeSyncOnUiThread(); mSyncContentResolverDelegate.waitForLastNotificationCompleted(); assertTrue("account should be synced", AndroidSyncSettings.isSyncEnabled(mContext)); int masterSyncAutomaticallyCalls = mSyncContentResolverDelegate.mGetMasterSyncAutomaticallyCalls; int isSyncableCalls = mSyncContentResolverDelegate.mGetIsSyncableCalls; int getSyncAutomaticallyAcalls = mSyncContentResolverDelegate.mGetSyncAutomaticallyCalls; // Do a bunch of reads. AndroidSyncSettings.isMasterSyncEnabled(mContext); AndroidSyncSettings.isSyncEnabled(mContext); AndroidSyncSettings.isChromeSyncEnabled(mContext); // Ensure values were read from cache. assertEquals( masterSyncAutomaticallyCalls, mSyncContentResolverDelegate.mGetMasterSyncAutomaticallyCalls); assertEquals(isSyncableCalls, mSyncContentResolverDelegate.mGetIsSyncableCalls); assertEquals( getSyncAutomaticallyAcalls, mSyncContentResolverDelegate.mGetSyncAutomaticallyCalls); // Do a bunch of reads for alternate account. AndroidSyncSettings.updateAccount(mContext, mAlternateAccount); AndroidSyncSettings.isMasterSyncEnabled(mContext); AndroidSyncSettings.isSyncEnabled(mContext); AndroidSyncSettings.isChromeSyncEnabled(mContext); // Ensure settings were only fetched once. assertEquals( masterSyncAutomaticallyCalls + 1, mSyncContentResolverDelegate.mGetMasterSyncAutomaticallyCalls); assertEquals(isSyncableCalls + 1, mSyncContentResolverDelegate.mGetIsSyncableCalls); assertEquals( getSyncAutomaticallyAcalls + 1, mSyncContentResolverDelegate.mGetSyncAutomaticallyCalls); }
@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)); }