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

Side by Side Diff: chrome/android/sync_shell/javatests/src/chromium/chrome/browser/sync/FakeServerHelper.java

Issue 457883002: Use Sync FakeServer in Android tests via custom APK (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.sync;
6
7 import android.content.Context;
8
9 import org.chromium.base.ThreadUtils;
10 //import org.chromium.chrome.browser.sync.ProfileSyncService;
11
12 import java.util.concurrent.Callable;
13
14 /**
15 * Assists in Java interaction the native Sync FakeServer.
16 */
17 public class FakeServerHelper {
18 // Lazily-instantiated singleton FakeServerHelper.
19 private static FakeServerHelper sFakeServerHelper;
20
21 // Pointer value for the FakeServer. This pointer is not owned by native
22 // code, so it must be stored here for future deletion.
23 private static long sNativeFakeServer = 0L;
24
25 // The pointer to the native object called here.
26 private final long mNativeFakeServerHelperAndroid;
27
28 // Accesses the singleton FakeServerHelper. There is at most one instance cr eated per
29 // application lifetime, so no deletion mechanism is provided for the native object.
30 public static FakeServerHelper get() {
31 if (sFakeServerHelper == null) {
Yaron 2014/08/20 05:06:25 This should probably assert on ui thread. (you are
pval...(no longer on Chromium) 2014/08/20 18:20:42 Done.
32 sFakeServerHelper = new FakeServerHelper();
33 }
34 return sFakeServerHelper;
35 }
36
37 private FakeServerHelper() {
38 mNativeFakeServerHelperAndroid = nativeInit();
39 }
40
41 /**
42 * Creates and configures FakeServer.
43 *
44 * Each call to this method should be accompanied by a later call to deleteF akeServer to avoid
45 * a memory leak.
46 */
47 public static void useFakeServer(final Context context) {
48 if (sNativeFakeServer != 0L) {
49 throw new IllegalStateException(
50 "deleteFakeServer must be called before calling useFakeServe r again.");
51 }
52
53 sNativeFakeServer = ThreadUtils.runOnUiThreadBlockingNoException(new Cal lable<Long>() {
54 @Override
55 public Long call() {
56 FakeServerHelper fakeServerHelper = FakeServerHelper.get();
57 long nativeFakeServer = fakeServerHelper.createFakeServer();
58 long resources = fakeServerHelper.createNetworkResources(nativeF akeServer);
59 ProfileSyncService.get(context).overrideNetworkResourcesForTest( resources);
60
61 return nativeFakeServer;
62 }
63 });
64 }
65
66 /**
67 * Deletes the existing FakeServer.
68 */
69 public static void deleteFakeServer() {
70 if (sNativeFakeServer == 0L) {
71 throw new IllegalStateException(
72 "useFakeServer must be called before calling deleteFakeServe r.");
73 }
74
75 FakeServerHelper.get().deleteFakeServer(sNativeFakeServer);
76 sNativeFakeServer = 0L;
77 }
78
79 /**
80 * Creates a native FakeServer object and returns its pointer. This pointer is owned by the
81 * Java caller.
82 *
83 * @return the FakeServer pointer
84 */
85 public long createFakeServer() {
86 return nativeCreateFakeServer(mNativeFakeServerHelperAndroid);
87 }
88
89 /**
90 * Creates a native NetworkResources object. This pointer is owned by the Ja va caller, but
91 * ownership is transferred as part of ProfileSyncService.overrideNetworkRes ourcesForTest.
92 *
93 * @param nativeFakeServer pointer to a native FakeServer object.
94 * @return the NetworkResources pointer
95 */
96 public long createNetworkResources(long nativeFakeServer) {
97 return nativeCreateNetworkResources(mNativeFakeServerHelperAndroid, nati veFakeServer);
98 }
99
100 /**
101 * Deletes a native FakeServer.
102 *
103 * @param nativeFakeServer the pointer to be deleted
104 */
105 public void deleteFakeServer(long nativeFakeServer) {
106 nativeDeleteFakeServer(mNativeFakeServerHelperAndroid, nativeFakeServer) ;
107 }
108
109 // Native methods.
110 private native long nativeInit();
111 private native long nativeCreateFakeServer(long nativeFakeServerHelperAndroi d);
112 private native long nativeCreateNetworkResources(
113 long nativeFakeServerHelperAndroid, long nativeFakeServer);
114 private native void nativeDeleteFakeServer(
115 long nativeFakeServerHelperAndroid, long nativeFakeServer);
116 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698