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

Side by Side Diff: components/sync/android/javatests/src/org/chromium/components/sync/AndroidSyncSettingsTest.java

Issue 2847663003: Add callback to AndroidSyncSettings.updateAccount and fix related test (Closed)
Patch Set: Fixed build Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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 }
OLDNEW
« no previous file with comments | « components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698