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; |
+ } |
} |