Exemplo n.º 1
0
  @SmallTest
  @Feature({"Sync"})
  public void testToggleSyncabilityForMultipleAccounts() throws InterruptedException {
    // Turn on syncability.
    mSyncContentResolverDelegate.setMasterSyncAutomatically(true);
    mSyncContentResolverDelegate.waitForLastNotificationCompleted();

    enableChromeSyncOnUiThread();
    mSyncContentResolverDelegate.waitForLastNotificationCompleted();
    assertTrue("account should be synced", AndroidSyncSettings.isSyncEnabled(mContext));

    AndroidSyncSettings.updateAccount(mContext, mAlternateAccount);
    enableChromeSyncOnUiThread();
    mSyncContentResolverDelegate.waitForLastNotificationCompleted();
    assertTrue("alternate account should be synced", AndroidSyncSettings.isSyncEnabled(mContext));

    disableChromeSyncOnUiThread();
    mSyncContentResolverDelegate.waitForLastNotificationCompleted();
    assertFalse(
        "alternate account should not be synced", AndroidSyncSettings.isSyncEnabled(mContext));
    AndroidSyncSettings.updateAccount(mContext, mAccount);
    assertTrue("account should still be synced", AndroidSyncSettings.isSyncEnabled(mContext));

    // Ensure we don't erroneously re-use cached data.
    AndroidSyncSettings.updateAccount(mContext, null);
    assertFalse("null account should not be synced", AndroidSyncSettings.isSyncEnabled(mContext));
  }
Exemplo n.º 2
0
 @SmallTest
 @Feature({"Sync"})
 public void testIsSyncableOnSigninAndNotOnSignout() throws InterruptedException {
   assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthority) == 1);
   AndroidSyncSettings.updateAccount(mContext, null);
   mAccountManager.waitForGetAccountsTask();
   assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthority) == 0);
   AndroidSyncSettings.updateAccount(mContext, mAccount);
   assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthority) == 1);
 }
Exemplo n.º 3
0
  @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));
  }
Exemplo n.º 4
0
  @SmallTest
  @Feature({"Sync"})
  public void testToggleAccountSyncFromApplication() throws InterruptedException {
    // Turn on syncability.
    mSyncContentResolverDelegate.setMasterSyncAutomatically(true);
    mSyncContentResolverDelegate.waitForLastNotificationCompleted();

    enableChromeSyncOnUiThread();
    mSyncContentResolverDelegate.waitForLastNotificationCompleted();
    assertTrue("account should be synced", AndroidSyncSettings.isSyncEnabled(mContext));

    disableChromeSyncOnUiThread();
    mSyncContentResolverDelegate.waitForLastNotificationCompleted();
    assertFalse("account should not be synced", AndroidSyncSettings.isSyncEnabled(mContext));
  }
Exemplo n.º 5
0
  @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);
  }
Exemplo n.º 6
0
  @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());
  }
Exemplo n.º 7
0
  /** 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));
  }
Exemplo n.º 8
0
  @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));
  }