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

Unified Diff: chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTestBase.java

Issue 1118833002: [Sync] Test SCF control states and a regression (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scf-test
Patch Set: Rebase. Created 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTestBase.java
diff --git a/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTestBase.java b/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTestBase.java
index bb3993dec21603ba6967aac250df6ebe7d1ccf20..ef3d3d383e5775cb84c3efc561e8707498b66626 100644
--- a/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTestBase.java
+++ b/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTestBase.java
@@ -15,12 +15,16 @@ import org.chromium.chrome.browser.identity.UuidBasedUniqueIdentificationGenerat
import org.chromium.chrome.browser.signin.AccountIdProvider;
import org.chromium.chrome.shell.ChromeShellTestBase;
import org.chromium.chrome.test.util.browser.sync.SyncTestUtil;
+import org.chromium.content.browser.test.util.Criteria;
+import org.chromium.content.browser.test.util.CriteriaHelper;
import org.chromium.sync.AndroidSyncSettings;
import org.chromium.sync.signin.AccountManagerHelper;
import org.chromium.sync.signin.ChromeSigninController;
import org.chromium.sync.test.util.MockAccountManager;
import org.chromium.sync.test.util.MockSyncContentResolverDelegate;
+import java.util.concurrent.atomic.AtomicBoolean;
+
/**
* Base class for common functionality between sync tests.
*/
@@ -33,6 +37,7 @@ public class SyncTestBase extends ChromeShellTestBase {
protected MockAccountManager mAccountManager;
protected SyncController mSyncController;
protected FakeServerHelper mFakeServerHelper;
+ protected ProfileSyncService mProfileSyncService;
@Override
protected void setUp() throws Exception {
@@ -42,8 +47,8 @@ public class SyncTestBase extends ChromeShellTestBase {
mContext = new SyncTestUtil.SyncTestContext(targetContext);
mapAccountNamesToIds();
- setUpMockAccountManager();
setUpMockAndroidSyncSettings();
+ setUpMockAccountManager();
// Initializes ChromeSigninController to use our test context.
ChromeSigninController.get(mContext);
@@ -53,10 +58,18 @@ public class SyncTestBase extends ChromeShellTestBase {
@Override
public void run() {
mSyncController = SyncController.get(mContext);
+ // Ensure SyncController is registered with the new AndroidSyncSettings.
+ AndroidSyncSettings.get(mContext).registerObserver(mSyncController);
mFakeServerHelper = FakeServerHelper.get();
}
});
FakeServerHelper.useFakeServer(targetContext);
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ mProfileSyncService = ProfileSyncService.get(mContext);
+ }
+ });
}
@Override
@@ -131,4 +144,40 @@ public class SyncTestBase extends ChromeShellTestBase {
assertTrue("Sync everything should be enabled",
SyncTestUtil.isSyncEverythingEnabled(mContext));
}
+
+ protected void startSync() throws InterruptedException {
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ SyncController.get(mContext).start();
+ }
+ });
+ waitForSyncInitialized();
+ }
+
+ protected void stopSync() {
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ SyncController.get(mContext).stop();
+ }
+ });
+ getInstrumentation().waitForIdleSync();
+ }
+
+ protected void waitForSyncInitialized() throws InterruptedException {
+ assertTrue(CriteriaHelper.pollForCriteria(new Criteria() {
+ @Override
+ public boolean isSatisfied() {
+ final AtomicBoolean isInitialized = new AtomicBoolean(false);
+ ThreadUtils.runOnUiThreadBlocking(new Runnable() {
+ @Override
+ public void run() {
+ isInitialized.set(mProfileSyncService.isSyncInitialized());
+ }
+ });
+ return isInitialized.get();
+ }
+ }));
+ }
}

Powered by Google App Engine
This is Rietveld 408576698