Chromium Code Reviews| 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) { |
|
Yaron
2014/08/14 22:49:30
This probably shouldn't be in this class because i
pval...(no longer on Chromium)
2014/08/19 04:01:11
I've moved this file to chrome/android/sync_shell/
|
| + 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; |
| + } |
| } |