| Index: chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/sync/SyncTestUtil.java
|
| diff --git a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/sync/SyncTestUtil.java b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/sync/SyncTestUtil.java
|
| index d525a4ff59ee19df2bc55a6fe974f0b60319e1c1..1735cdd6c36a66bee004f41a47f52c4804518030 100644
|
| --- a/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/sync/SyncTestUtil.java
|
| +++ b/chrome/test/android/javatests/src/org/chromium/chrome/test/util/browser/sync/SyncTestUtil.java
|
| @@ -23,6 +23,7 @@ import org.chromium.content.browser.test.util.CriteriaHelper;
|
| import org.chromium.sync.signin.AccountManagerHelper;
|
| import org.chromium.sync.signin.ChromeSigninController;
|
| import org.chromium.sync.test.util.AccountHolder;
|
| +import org.chromium.sync.test.util.FakeServerHelper;
|
| import org.chromium.sync.test.util.MockAccountManager;
|
| import org.json.JSONArray;
|
| import org.json.JSONException;
|
| @@ -62,6 +63,10 @@ public final class SyncTestUtil {
|
| // Native switch - chrome_switches::kSyncServiceURL
|
| private static final String SYNC_URL = "sync-url";
|
|
|
| + // Pointer value for the FakeServer. This pointer is not owned by native
|
| + // code, so it must be stored here for future deletion.
|
| + private static long sNativeFakeServer = 0L;
|
| +
|
| private SyncTestUtil() {
|
| }
|
|
|
| @@ -392,4 +397,42 @@ public final class SyncTestUtil {
|
| return super.getSystemService(name);
|
| }
|
| }
|
| +
|
| + /**
|
| + * Creates and configures FakeServer.
|
| + *
|
| + * Each call to this method should be accompanied by a later call to deleteFakeServer to avoid
|
| + * a memory leak.
|
| + */
|
| + public static void useFakeServer(final Context context) {
|
| + if (sNativeFakeServer != 0L) {
|
| + throw new IllegalStateException(
|
| + "deleteFakeServer must be called before calling useFakeServer again.");
|
| + }
|
| +
|
| + sNativeFakeServer = ThreadUtils.runOnUiThreadBlockingNoException(new Callable<Long>() {
|
| + @Override
|
| + public Long call() {
|
| + FakeServerHelper fakeServerHelper = FakeServerHelper.get();
|
| + long nativeFakeServer = fakeServerHelper.createFakeServer();
|
| + long resources = fakeServerHelper.createNetworkResources(nativeFakeServer);
|
| + ProfileSyncService.get(context).overrideNetworkResourcesForTest(resources);
|
| +
|
| + return nativeFakeServer;
|
| + }
|
| + });
|
| + }
|
| +
|
| + /**
|
| + * Deletes the existing FakeServer.
|
| + */
|
| + public static void deleteFakeServer() {
|
| + if (sNativeFakeServer == 0L) {
|
| + throw new IllegalStateException(
|
| + "useFakeServer must be called before calling deleteFakeServer.");
|
| + }
|
| +
|
| + FakeServerHelper.get().deleteFakeServer(sNativeFakeServer);
|
| + sNativeFakeServer = 0L;
|
| + }
|
| }
|
|
|