| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.components.sync; | 5 package org.chromium.components.sync; |
| 6 | 6 |
| 7 import android.accounts.Account; | 7 import android.accounts.Account; |
| 8 import android.content.Context; | 8 import android.content.Context; |
| 9 import android.os.Bundle; | 9 import android.os.Bundle; |
| 10 import android.support.test.filters.SmallTest; | 10 import android.support.test.filters.SmallTest; |
| 11 import android.test.InstrumentationTestCase; | 11 import android.test.InstrumentationTestCase; |
| 12 | 12 |
| 13 import org.chromium.base.Callback; |
| 13 import org.chromium.base.ThreadUtils; | 14 import org.chromium.base.ThreadUtils; |
| 15 import org.chromium.base.test.util.CallbackHelper; |
| 14 import org.chromium.base.test.util.DisabledTest; | 16 import org.chromium.base.test.util.DisabledTest; |
| 15 import org.chromium.base.test.util.Feature; | 17 import org.chromium.base.test.util.Feature; |
| 16 import org.chromium.components.signin.AccountManagerHelper; | 18 import org.chromium.components.signin.AccountManagerHelper; |
| 17 import org.chromium.components.signin.test.util.AccountHolder; | 19 import org.chromium.components.signin.test.util.AccountHolder; |
| 18 import org.chromium.components.signin.test.util.MockAccountManager; | 20 import org.chromium.components.signin.test.util.MockAccountManager; |
| 19 import org.chromium.components.sync.AndroidSyncSettings.AndroidSyncSettingsObser
ver; | 21 import org.chromium.components.sync.AndroidSyncSettings.AndroidSyncSettingsObser
ver; |
| 20 import org.chromium.components.sync.test.util.MockSyncContentResolverDelegate; | 22 import org.chromium.components.sync.test.util.MockSyncContentResolverDelegate; |
| 21 | 23 |
| 24 import java.util.concurrent.TimeoutException; |
| 25 |
| 22 /** | 26 /** |
| 23 * Tests for AndroidSyncSettings. | 27 * Tests for AndroidSyncSettings. |
| 24 */ | 28 */ |
| 25 @DisabledTest(message = "https://crbug.com/605567") | 29 @DisabledTest(message = "https://crbug.com/605567") |
| 26 public class AndroidSyncSettingsTest extends InstrumentationTestCase { | 30 public class AndroidSyncSettingsTest extends InstrumentationTestCase { |
| 27 private static class CountingMockSyncContentResolverDelegate | 31 private static class CountingMockSyncContentResolverDelegate |
| 28 extends MockSyncContentResolverDelegate { | 32 extends MockSyncContentResolverDelegate { |
| 29 private int mGetMasterSyncAutomaticallyCalls; | 33 private int mGetMasterSyncAutomaticallyCalls; |
| 30 private int mGetSyncAutomaticallyCalls; | 34 private int mGetSyncAutomaticallyCalls; |
| 31 private int mGetIsSyncableCalls; | 35 private int mGetIsSyncableCalls; |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 ThreadUtils.runOnUiThreadBlocking(new Runnable() { | 149 ThreadUtils.runOnUiThreadBlocking(new Runnable() { |
| 146 @Override | 150 @Override |
| 147 public void run() { | 151 public void run() { |
| 148 AndroidSyncSettings.disableChromeSync(mContext); | 152 AndroidSyncSettings.disableChromeSync(mContext); |
| 149 } | 153 } |
| 150 }); | 154 }); |
| 151 } | 155 } |
| 152 | 156 |
| 153 @SmallTest | 157 @SmallTest |
| 154 @Feature({"Sync"}) | 158 @Feature({"Sync"}) |
| 155 public void testAccountInitialization() throws InterruptedException { | 159 public void testAccountInitialization() throws InterruptedException, Timeout
Exception { |
| 156 // mAccount was set to be syncable and not have periodic syncs. | 160 // mAccount was set to be syncable and not have periodic syncs. |
| 157 assertEquals(1, mSyncContentResolverDelegate.mSetIsSyncableCalls); | 161 assertEquals(1, mSyncContentResolverDelegate.mSetIsSyncableCalls); |
| 158 assertEquals(1, mSyncContentResolverDelegate.mRemovePeriodicSyncCalls); | 162 assertEquals(1, mSyncContentResolverDelegate.mRemovePeriodicSyncCalls); |
| 159 AndroidSyncSettings.updateAccount(mContext, null); | 163 |
| 160 mAccountManager.waitForGetAccountsTask(); | 164 final CallbackHelper callbackHelper = new CallbackHelper(); |
| 165 AndroidSyncSettings.updateAccount(mContext, null, new Callback<Boolean>(
) { |
| 166 @Override |
| 167 public void onResult(Boolean result) { |
| 168 callbackHelper.notifyCalled(); |
| 169 } |
| 170 }); |
| 171 callbackHelper.waitForCallback(0); |
| 172 |
| 161 // mAccount was set to be not syncable. | 173 // mAccount was set to be not syncable. |
| 162 assertEquals(2, mSyncContentResolverDelegate.mSetIsSyncableCalls); | 174 assertEquals(2, mSyncContentResolverDelegate.mSetIsSyncableCalls); |
| 163 assertEquals(1, mSyncContentResolverDelegate.mRemovePeriodicSyncCalls); | 175 assertEquals(1, mSyncContentResolverDelegate.mRemovePeriodicSyncCalls); |
| 164 AndroidSyncSettings.updateAccount(mContext, mAlternateAccount); | 176 AndroidSyncSettings.updateAccount(mContext, mAlternateAccount); |
| 165 // mAlternateAccount was set to be syncable and not have periodic syncs. | 177 // mAlternateAccount was set to be syncable and not have periodic syncs. |
| 166 assertEquals(3, mSyncContentResolverDelegate.mSetIsSyncableCalls); | 178 assertEquals(3, mSyncContentResolverDelegate.mSetIsSyncableCalls); |
| 167 assertEquals(2, mSyncContentResolverDelegate.mRemovePeriodicSyncCalls); | 179 assertEquals(2, mSyncContentResolverDelegate.mRemovePeriodicSyncCalls); |
| 168 } | 180 } |
| 169 | 181 |
| 170 @SmallTest | 182 @SmallTest |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 mSyncSettingsObserver.receivedNotification()); | 362 mSyncSettingsObserver.receivedNotification()); |
| 351 | 363 |
| 352 mSyncSettingsObserver.clearNotification(); | 364 mSyncSettingsObserver.clearNotification(); |
| 353 AndroidSyncSettings.disableChromeSync(mContext); | 365 AndroidSyncSettings.disableChromeSync(mContext); |
| 354 assertFalse("disableChromeSync shouldn't observers", | 366 assertFalse("disableChromeSync shouldn't observers", |
| 355 mSyncSettingsObserver.receivedNotification()); | 367 mSyncSettingsObserver.receivedNotification()); |
| 356 } | 368 } |
| 357 | 369 |
| 358 @SmallTest | 370 @SmallTest |
| 359 @Feature({"Sync"}) | 371 @Feature({"Sync"}) |
| 360 public void testIsSyncableOnSigninAndNotOnSignout() throws InterruptedExcept
ion { | 372 public void testIsSyncableOnSigninAndNotOnSignout() |
| 373 throws InterruptedException, TimeoutException { |
| 361 assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthori
ty) == 1); | 374 assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthori
ty) == 1); |
| 362 AndroidSyncSettings.updateAccount(mContext, null); | 375 |
| 363 mAccountManager.waitForGetAccountsTask(); | 376 final CallbackHelper callbackHelper = new CallbackHelper(); |
| 377 AndroidSyncSettings.updateAccount(mContext, null, new Callback<Boolean>(
) { |
| 378 @Override |
| 379 public void onResult(Boolean result) { |
| 380 callbackHelper.notifyCalled(); |
| 381 } |
| 382 }); |
| 383 callbackHelper.waitForCallback(0); |
| 384 |
| 364 assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthori
ty) == 0); | 385 assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthori
ty) == 0); |
| 365 AndroidSyncSettings.updateAccount(mContext, mAccount); | 386 AndroidSyncSettings.updateAccount(mContext, mAccount); |
| 366 assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthori
ty) == 1); | 387 assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthori
ty) == 1); |
| 367 } | 388 } |
| 368 | 389 |
| 369 /** | 390 /** |
| 370 * Regression test for crbug.com/475299. | 391 * Regression test for crbug.com/475299. |
| 371 */ | 392 */ |
| 372 @SmallTest | 393 @SmallTest |
| 373 @Feature({"Sync"}) | 394 @Feature({"Sync"}) |
| (...skipping 10 matching lines...) Expand all Loading... |
| 384 assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthori
ty) == 0); | 405 assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthori
ty) == 0); |
| 385 assertTrue(mSyncContentResolverDelegate.getSyncAutomatically(mAccount, m
Authority)); | 406 assertTrue(mSyncContentResolverDelegate.getSyncAutomatically(mAccount, m
Authority)); |
| 386 | 407 |
| 387 // Ensure bug is fixed. | 408 // Ensure bug is fixed. |
| 388 AndroidSyncSettings.enableChromeSync(mContext); | 409 AndroidSyncSettings.enableChromeSync(mContext); |
| 389 assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthori
ty) == 1); | 410 assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthori
ty) == 1); |
| 390 // Should still be enabled. | 411 // Should still be enabled. |
| 391 assertTrue(mSyncContentResolverDelegate.getSyncAutomatically(mAccount, m
Authority)); | 412 assertTrue(mSyncContentResolverDelegate.getSyncAutomatically(mAccount, m
Authority)); |
| 392 } | 413 } |
| 393 } | 414 } |
| OLD | NEW |