Index: sync/test/android/javatests/src/org/chromium/sync/test/util/FakeServerHelper.java |
diff --git a/sync/test/android/javatests/src/org/chromium/sync/test/util/FakeServerHelper.java b/sync/test/android/javatests/src/org/chromium/sync/test/util/FakeServerHelper.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..295725674de6d5b99f70b0b7f19ef72b4cbd7645 |
--- /dev/null |
+++ b/sync/test/android/javatests/src/org/chromium/sync/test/util/FakeServerHelper.java |
@@ -0,0 +1,67 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+package org.chromium.sync.test.util; |
+ |
+/** |
+ * Assists in Java interaction the native Sync FakeServer. |
+ */ |
+public class FakeServerHelper { |
+ // Lazily-instantiated singleton FakeServerHelper. |
+ private static FakeServerHelper sFakeServerHelper; |
+ |
+ // The pointer to the native object called here. |
+ private final long mNativeFakeServerHelperAndroid; |
+ |
+ // Accesses the singleton FakeServerHelper. There is at most one instance created per |
+ // application lifetime, so no deletion mechanism is provided for the native object. |
+ public static FakeServerHelper get() { |
+ if (sFakeServerHelper == null) { |
+ sFakeServerHelper = new FakeServerHelper(); |
+ } |
+ return sFakeServerHelper; |
+ } |
+ |
+ private FakeServerHelper() { |
+ mNativeFakeServerHelperAndroid = nativeInit(); |
+ } |
+ |
+ /** |
+ * Creates a native FakeServer object and returns its pointer. This pointer is owned by the |
+ * Java caller. |
+ * |
+ * @return the FakeServer pointer |
+ */ |
+ public long createFakeServer() { |
+ return nativeCreateFakeServer(mNativeFakeServerHelperAndroid); |
+ } |
+ |
+ /** |
+ * Creates a native NetworkResources object. This pointer is owned by the Java caller, but |
+ * ownership is transferred as part of ProfileSyncService.overrideNetworkResourcesForTest. |
+ * |
+ * @param nativeFakeServer pointer to a native FakeServer object. |
+ * @return the NetworkResources pointer |
+ */ |
+ public long createNetworkResources(long nativeFakeServer) { |
+ return nativeCreateNetworkResources(mNativeFakeServerHelperAndroid, nativeFakeServer); |
+ } |
+ |
+ /** |
+ * Deletes a native FakeServer. |
+ * |
+ * @param nativeFakeServer the pointer to be deleted |
+ */ |
+ public void deleteFakeServer(long nativeFakeServer) { |
+ nativeDeleteFakeServer(mNativeFakeServerHelperAndroid, nativeFakeServer); |
+ } |
+ |
+ // Native methods. |
+ private native long nativeInit(); |
+ private native long nativeCreateFakeServer(long nativeFakeServerHelperAndroid); |
+ private native long nativeCreateNetworkResources( |
+ long nativeFakeServerHelperAndroid, long nativeFakeServer); |
+ private native void nativeDeleteFakeServer( |
+ long nativeFakeServerHelperAndroid, long nativeFakeServer); |
+} |