Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1505)

Unified Diff: sync/android/javatests/src/org/chromium/sync/notifier/signin/SyncStatusHelperTest.java

Issue 845543005: Rename SyncStatusHelper to AndroidSyncSettings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gsm
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sync/android/javatests/src/org/chromium/sync/notifier/signin/SyncStatusHelperTest.java
diff --git a/sync/android/javatests/src/org/chromium/sync/notifier/signin/SyncStatusHelperTest.java b/sync/android/javatests/src/org/chromium/sync/notifier/signin/SyncStatusHelperTest.java
deleted file mode 100644
index c9b5d33a5bef9242d2f0a44d84b5d8af63aceb3c..0000000000000000000000000000000000000000
--- a/sync/android/javatests/src/org/chromium/sync/notifier/signin/SyncStatusHelperTest.java
+++ /dev/null
@@ -1,456 +0,0 @@
-// Copyright 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.sync.notifier.signin;
-
-import android.accounts.Account;
-import android.content.Context;
-import android.test.InstrumentationTestCase;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import org.chromium.base.ThreadUtils;
-import org.chromium.base.test.util.Feature;
-import org.chromium.sync.notifier.SyncStatusHelper;
-import org.chromium.sync.notifier.SyncStatusHelper.CachedAccountSyncSettings;
-import org.chromium.sync.notifier.SyncStatusHelper.SyncSettingsChangedObserver;
-import org.chromium.sync.signin.ChromeSigninController;
-import org.chromium.sync.test.util.MockSyncContentResolverDelegate;
-
-public class SyncStatusHelperTest extends InstrumentationTestCase {
-
- private static class CountingMockSyncContentResolverDelegate
- extends MockSyncContentResolverDelegate {
- private int mGetMasterSyncAutomaticallyCalls;
- private int mGetSyncAutomaticallyCalls;
- private int mGetIsSyncableCalls;
- private int mSetIsSyncableCalls;
- private int mSetSyncAutomaticallyCalls;
-
- @Override
- public boolean getMasterSyncAutomatically() {
- mGetMasterSyncAutomaticallyCalls++;
- return super.getMasterSyncAutomatically();
- }
-
- @Override
- public boolean getSyncAutomatically(Account account, String authority) {
- mGetSyncAutomaticallyCalls++;
- return super.getSyncAutomatically(account, authority);
- }
-
- @Override
- public int getIsSyncable(Account account, String authority) {
- mGetIsSyncableCalls++;
- return super.getIsSyncable(account, authority);
- }
-
- @Override
- public void setIsSyncable(Account account, String authority, int syncable) {
- mSetIsSyncableCalls++;
- super.setIsSyncable(account, authority, syncable);
- }
-
- @Override
- public void setSyncAutomatically(Account account, String authority, boolean sync) {
- mSetSyncAutomaticallyCalls++;
- super.setSyncAutomatically(account, authority, sync);
- }
- }
-
- private static class CountingCachedAccountSyncSettings extends CachedAccountSyncSettings {
- private int mUpdateSyncSettingsForAccountInternalCalls;
- private int mSetIsSyncableInternalCalls;
- private int mSetSyncAutomaticallyInternalCalls;
-
- public CountingCachedAccountSyncSettings(String contractAuthority,
- MockSyncContentResolverDelegate contentResolverWrapper) {
- super(contractAuthority, contentResolverWrapper);
- }
-
- @Override
- protected void updateSyncSettingsForAccountInternal(Account account) {
- mUpdateSyncSettingsForAccountInternalCalls++;
- super.updateSyncSettingsForAccountInternal(account);
- }
-
- @Override
- protected void setIsSyncableInternal(Account account) {
- mSetIsSyncableInternalCalls++;
- super.setIsSyncableInternal(account);
- }
-
- @Override
- protected void setSyncAutomaticallyInternal(Account account, boolean value) {
- mSetSyncAutomaticallyInternalCalls++;
- super.setSyncAutomaticallyInternal(account, value);
- }
-
- public void resetCount() {
- mUpdateSyncSettingsForAccountInternalCalls = 0;
- }
- }
-
- private static class MockSyncSettingsObserver implements SyncSettingsChangedObserver {
- private boolean mReceivedNotification;
-
- public void clearNotification() {
- mReceivedNotification = false;
- }
-
- public boolean didReceiveNotification() {
- return mReceivedNotification;
- }
-
- @Override
- public void syncSettingsChanged() {
- mReceivedNotification = true;
- }
- }
-
- private SyncStatusHelper mHelper;
- private CountingMockSyncContentResolverDelegate mSyncContentResolverDelegate;
- private String mAuthority;
- private Account mTestAccount;
- private Account mAlternateTestAccount;
- private CountingCachedAccountSyncSettings mCachedAccountSyncSettings;
- private MockSyncSettingsObserver mSyncSettingsObserver;
-
- @Override
- protected void setUp() throws Exception {
- mSyncContentResolverDelegate = new CountingMockSyncContentResolverDelegate();
- Context context = getInstrumentation().getTargetContext();
- mCachedAccountSyncSettings = new CountingCachedAccountSyncSettings(
- context.getPackageName(), mSyncContentResolverDelegate);
- SyncStatusHelper.overrideSyncStatusHelperForTests(
- context, mSyncContentResolverDelegate, mCachedAccountSyncSettings);
- mHelper = SyncStatusHelper.get(getInstrumentation().getTargetContext());
- // Need to set the signed in account name to ensure that sync settings notifications
- // update the right account.
- ChromeSigninController.get(
- getInstrumentation().getTargetContext()).setSignedInAccountName(
- "account@example.com");
- mAuthority = SyncStatusHelper.get(getInstrumentation().getTargetContext())
- .getContractAuthority();
- mTestAccount = new Account("account@example.com", "com.google");
- mAlternateTestAccount = new Account("alternateAccount@example.com", "com.google");
-
- mSyncSettingsObserver = new MockSyncSettingsObserver();
- mHelper.registerSyncSettingsChangedObserver(mSyncSettingsObserver);
-
- super.setUp();
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testToggleMasterSyncAutomaticallyFromSettings() throws InterruptedException {
- mSyncContentResolverDelegate.setMasterSyncAutomatically(true);
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- assertTrue("master sync should be set", mHelper.isMasterSyncAutomaticallyEnabled());
-
- mSyncContentResolverDelegate.setMasterSyncAutomatically(false);
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- assertFalse("master sync should be unset", mHelper.isMasterSyncAutomaticallyEnabled());
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testToggleAccountSyncFromSettings() throws InterruptedException {
- // Turn on syncability.
- mSyncContentResolverDelegate.setMasterSyncAutomatically(true);
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
-
- // First sync
- mSyncContentResolverDelegate.setIsSyncable(mTestAccount, mAuthority, 1);
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- mSyncContentResolverDelegate.setSyncAutomatically(mTestAccount, mAuthority, true);
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- assertTrue("sync should be set", mHelper.isSyncEnabled(mTestAccount));
- assertTrue("sync should be set for chrome app",
- mHelper.isSyncEnabledForChrome(mTestAccount));
-
- // Disable sync automatically for the app
- mSyncContentResolverDelegate.setSyncAutomatically(mTestAccount, mAuthority, false);
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- assertFalse("sync should be unset", mHelper.isSyncEnabled(mTestAccount));
- assertFalse("sync should be unset for chrome app",
- mHelper.isSyncEnabledForChrome(mTestAccount));
-
- // Re-enable sync
- mSyncContentResolverDelegate.setSyncAutomatically(mTestAccount, mAuthority, true);
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- assertTrue("sync should be re-enabled", mHelper.isSyncEnabled(mTestAccount));
- assertTrue("sync should be unset for chrome app",
- mHelper.isSyncEnabledForChrome(mTestAccount));
-
- // Disabled from master sync
- mSyncContentResolverDelegate.setMasterSyncAutomatically(false);
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- assertFalse("sync should be disabled due to master sync",
- mHelper.isSyncEnabled(mTestAccount));
- assertTrue("sync should be set for chrome app",
- mHelper.isSyncEnabledForChrome(mTestAccount));
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testToggleAccountSyncFromApplication() throws InterruptedException {
- // Turn on syncability.
- mSyncContentResolverDelegate.setMasterSyncAutomatically(true);
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
-
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- mHelper.enableAndroidSync(mTestAccount);
- }
- });
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- assertTrue("account should be synced", mHelper.isSyncEnabled(mTestAccount));
-
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- mHelper.disableAndroidSync(mTestAccount);
- }
- });
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- assertFalse("account should not be synced", mHelper.isSyncEnabled(mTestAccount));
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testToggleSyncabilityForMultipleAccounts() throws InterruptedException {
- // Turn on syncability.
- mSyncContentResolverDelegate.setMasterSyncAutomatically(true);
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
-
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- mHelper.enableAndroidSync(mTestAccount);
- }
- });
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- assertTrue("account should be synced", mHelper.isSyncEnabled(mTestAccount));
-
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- mHelper.enableAndroidSync(mAlternateTestAccount);
- }
- });
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- assertTrue("alternate account should be synced",
- mHelper.isSyncEnabled(mAlternateTestAccount));
-
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- mHelper.disableAndroidSync(mAlternateTestAccount);
- }
- });
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- assertFalse("alternate account should not be synced",
- mHelper.isSyncEnabled(mAlternateTestAccount));
- assertTrue("account should still be synced", mHelper.isSyncEnabled(mTestAccount));
-
- // Ensure we don't erroneously re-use cached data.
- assertFalse("null account should not be synced", mHelper.isSyncEnabled(null));
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testSyncSettingsCaching() throws InterruptedException {
- // Turn on syncability.
- mSyncContentResolverDelegate.setMasterSyncAutomatically(true);
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
-
- ThreadUtils.runOnUiThreadBlocking(new Runnable() {
- @Override
- public void run() {
- mHelper.enableAndroidSync(mTestAccount);
- }
- });
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
- assertTrue("account should be synced", mHelper.isSyncEnabled(mTestAccount));
-
- int masterSyncAutomaticallyCalls =
- mSyncContentResolverDelegate.mGetMasterSyncAutomaticallyCalls;
- int isSyncableCalls = mSyncContentResolverDelegate.mGetIsSyncableCalls;
- int getSyncAutomaticallyAcalls = mSyncContentResolverDelegate.mGetSyncAutomaticallyCalls;
-
- // Do a bunch of reads.
- mHelper.isMasterSyncAutomaticallyEnabled();
- mHelper.isSyncEnabled();
- mHelper.isSyncEnabled(mTestAccount);
- mHelper.isSyncEnabledForChrome(mTestAccount);
-
- // 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.
- mHelper.isMasterSyncAutomaticallyEnabled();
- mHelper.isSyncEnabled(mAlternateTestAccount);
- mHelper.isSyncEnabledForChrome(mAlternateTestAccount);
-
- // Ensure master sync was cached but others are fetched once.
- assertEquals(masterSyncAutomaticallyCalls,
- mSyncContentResolverDelegate.mGetMasterSyncAutomaticallyCalls);
- assertEquals(isSyncableCalls + 1, mSyncContentResolverDelegate.mGetIsSyncableCalls);
- assertEquals(getSyncAutomaticallyAcalls + 1,
- mSyncContentResolverDelegate.mGetSyncAutomaticallyCalls);
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testGetContractAuthority() throws Exception {
- assertEquals("The contract authority should be the package name.",
- getInstrumentation().getTargetContext().getPackageName(),
- mHelper.getContractAuthority());
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testCachedAccountSyncSettingsExitEarly() throws InterruptedException {
- mSyncContentResolverDelegate.disableObserverNotifications();
-
- mCachedAccountSyncSettings.updateSyncSettingsForAccount(null);
- assertTrue("Update sync settings failed to exit early", mCachedAccountSyncSettings
- .mUpdateSyncSettingsForAccountInternalCalls == 0);
-
- mCachedAccountSyncSettings.updateSyncSettingsForAccount(mTestAccount);
- assertTrue("Update sync settings should not have exited early", mCachedAccountSyncSettings
- .mUpdateSyncSettingsForAccountInternalCalls == 1);
-
- mCachedAccountSyncSettings.setIsSyncable(mTestAccount);
- assertTrue("setIsSyncable should not have exited early",
- mCachedAccountSyncSettings.mSetIsSyncableInternalCalls == 1);
-
- mCachedAccountSyncSettings.setIsSyncable(mTestAccount);
- assertTrue("setIsSyncable failed to exit early", mCachedAccountSyncSettings
- .mSetIsSyncableInternalCalls == 1);
-
- mCachedAccountSyncSettings.setSyncAutomatically(mTestAccount, true);
- assertTrue("setSyncAutomatically should not have to exited early",
- mCachedAccountSyncSettings.mSetSyncAutomaticallyInternalCalls == 1);
-
- mCachedAccountSyncSettings.setSyncAutomatically(mTestAccount, true);
- assertTrue("setSyncAutomatically failed to exit early",
- mCachedAccountSyncSettings.mSetSyncAutomaticallyInternalCalls == 1);
-
- mCachedAccountSyncSettings.setSyncAutomatically(mTestAccount, false);
- assertTrue("setSyncAutomatically should not have to exited early",
- mCachedAccountSyncSettings.mSetSyncAutomaticallyInternalCalls == 2);
-
- mCachedAccountSyncSettings.setSyncAutomatically(mTestAccount, false);
- assertTrue("setSyncAutomatically failed to exit early",
- mCachedAccountSyncSettings.mSetSyncAutomaticallyInternalCalls == 2);
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testCachedAccountSyncSettingsDidUpdate() throws InterruptedException {
- // Since we're just testing the cache we disable observer notifications to prevent
- // notifications to SyncStatusHelper from mutating it.
- mSyncContentResolverDelegate.disableObserverNotifications();
-
- mCachedAccountSyncSettings.clearUpdateStatus();
- mCachedAccountSyncSettings.getSyncAutomatically(mTestAccount);
- assertTrue("getSyncAutomatically on un-populated cache failed to update DidUpdate flag",
- mCachedAccountSyncSettings.getDidUpdateStatus());
-
- mCachedAccountSyncSettings.clearUpdateStatus();
- mCachedAccountSyncSettings.getSyncAutomatically(mTestAccount);
- assertFalse("getSyncAutomatically on populated cache updated DidUpdate flag",
- mCachedAccountSyncSettings.getDidUpdateStatus());
-
- mCachedAccountSyncSettings.updateSyncSettingsForAccount(mAlternateTestAccount);
- assertTrue("updateSyncSettingsForAccount failed to update DidUpdate flag",
- mCachedAccountSyncSettings.getDidUpdateStatus());
-
- mCachedAccountSyncSettings.clearUpdateStatus();
-
- mCachedAccountSyncSettings.updateSyncSettingsForAccount(mTestAccount);
- assertTrue("updateSyncSettingsForAccount failed to update DidUpdate flag",
- mCachedAccountSyncSettings.getDidUpdateStatus());
-
- mCachedAccountSyncSettings.clearUpdateStatus();
-
- mCachedAccountSyncSettings.updateSyncSettingsForAccount(mTestAccount);
- assertFalse("updateSyncSettingsForAccount updated DidUpdate flag",
- mCachedAccountSyncSettings.getDidUpdateStatus());
-
- mCachedAccountSyncSettings.clearUpdateStatus();
- mCachedAccountSyncSettings.setIsSyncable(mTestAccount);
- assertTrue("setIsSyncable failed to update DidUpdate flag",
- mCachedAccountSyncSettings.getDidUpdateStatus());
-
- mCachedAccountSyncSettings.clearUpdateStatus();
- mCachedAccountSyncSettings.setIsSyncable(mTestAccount);
- assertFalse("setIsSyncable updated DidUpdate flag",
- mCachedAccountSyncSettings.getDidUpdateStatus());
-
- mCachedAccountSyncSettings.clearUpdateStatus();
- mCachedAccountSyncSettings.setSyncAutomatically(mTestAccount, true);
- assertTrue("setSyncAutomatically failed to update DidUpdate flag",
- mCachedAccountSyncSettings.getDidUpdateStatus());
-
- mCachedAccountSyncSettings.clearUpdateStatus();
- mCachedAccountSyncSettings.setSyncAutomatically(mTestAccount, true);
- assertFalse("setSyncAutomatically updated DidUpdate flag",
- mCachedAccountSyncSettings.getDidUpdateStatus());
-
- mCachedAccountSyncSettings.clearUpdateStatus();
- mCachedAccountSyncSettings.setSyncAutomatically(mTestAccount, false);
- assertTrue("setSyncAutomatically failed to update DidUpdate flag",
- mCachedAccountSyncSettings.getDidUpdateStatus());
-
- mCachedAccountSyncSettings.clearUpdateStatus();
- mCachedAccountSyncSettings.setSyncAutomatically(mTestAccount, false);
- assertFalse("setSyncAutomatically updated DidUpdate flag",
- mCachedAccountSyncSettings.getDidUpdateStatus());
- }
-
- @SmallTest
- @Feature({"Sync"})
- public void testSyncStatusHelperPostsNotifications() throws InterruptedException {
- // Turn on syncability.
- mSyncContentResolverDelegate.setMasterSyncAutomatically(true);
- mSyncContentResolverDelegate.waitForLastNotificationCompleted();
-
- mSyncSettingsObserver.clearNotification();
- mHelper.isSyncEnabled(mAlternateTestAccount);
- assertTrue("isSyncEnabled on wrongly populated cache did not trigger observers",
- mSyncSettingsObserver.didReceiveNotification());
-
- mSyncSettingsObserver.clearNotification();
- mHelper.isSyncEnabled(mTestAccount);
- assertTrue("isSyncEnabled on wrongly populated cache did not trigger observers",
- mSyncSettingsObserver.didReceiveNotification());
-
- mSyncSettingsObserver.clearNotification();
- mHelper.enableAndroidSync(mTestAccount);
- assertTrue("enableAndroidSync did not trigger observers",
- mSyncSettingsObserver.didReceiveNotification());
-
- mSyncSettingsObserver.clearNotification();
- mHelper.enableAndroidSync(mTestAccount);
- assertFalse("enableAndroidSync triggered observers",
- mSyncSettingsObserver.didReceiveNotification());
-
- mSyncSettingsObserver.clearNotification();
- mHelper.disableAndroidSync(mTestAccount);
- assertTrue("disableAndroidSync did not trigger observers",
- mSyncSettingsObserver.didReceiveNotification());
-
- mSyncSettingsObserver.clearNotification();
- mHelper.disableAndroidSync(mTestAccount);
- assertFalse("disableAndroidSync triggered observers",
- mSyncSettingsObserver.didReceiveNotification());
- }
-}

Powered by Google App Engine
This is Rietveld 408576698