Chromium Code Reviews| Index: chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/FakeServerHelper.java |
| diff --git a/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/FakeServerHelper.java b/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/FakeServerHelper.java |
| index bdc99e4d2a64e2e3bb9e381cdf9b09d46d72ea31..e77ff39b4d1fd88bbe11f747d68a37d1c103d604 100644 |
| --- a/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/FakeServerHelper.java |
| +++ b/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/FakeServerHelper.java |
| @@ -6,18 +6,25 @@ package org.chromium.chrome.browser.sync; |
| import android.content.Context; |
| +import com.google.protobuf.nano.InvalidProtocolBufferNanoException; |
| import com.google.protobuf.nano.MessageNano; |
| +import org.chromium.base.Log; |
| import org.chromium.base.ThreadUtils; |
| import org.chromium.sync.internal_api.pub.base.ModelType; |
| import org.chromium.sync.protocol.EntitySpecifics; |
| +import org.chromium.sync.protocol.SyncEntity; |
| +import java.util.ArrayList; |
| +import java.util.List; |
| import java.util.concurrent.Callable; |
| /** |
| * Assists in Java interaction the native Sync FakeServer. |
| */ |
| public class FakeServerHelper { |
| + private static final String TAG = "cr.FakeServerHelper"; |
| + |
| // Lazily-instantiated singleton FakeServerHelper. |
| private static FakeServerHelper sFakeServerHelper; |
| @@ -165,6 +172,28 @@ public class FakeServerHelper { |
| }); |
| } |
| + public List<SyncEntity> getSyncEntitiesByModelType(final ModelType modelType) { |
|
pval...(no longer on Chromium)
2015/07/10 01:48:07
Please add Javadoc
maxbogue
2015/07/10 17:52:11
Done.
|
| + checkFakeServerInitialized("useFakeServer must be called before getting sync entities."); |
| + return ThreadUtils.runOnUiThreadBlockingNoException(new Callable<List<SyncEntity>>() { |
| + @Override |
| + public List<SyncEntity> call() { |
| + byte[][] serializedEntities = nativeGetSyncEntitiesByModelType( |
| + mNativeFakeServerHelperAndroid, sNativeFakeServer, modelType.toString()); |
| + List<SyncEntity> entities = new ArrayList<SyncEntity>(serializedEntities.length); |
| + for (int i = 0; i < serializedEntities.length; i++) { |
| + SyncEntity entity = new SyncEntity(); |
| + try { |
| + MessageNano.mergeFrom(entity, serializedEntities[i]); |
| + entities.add(entity); |
| + } catch (InvalidProtocolBufferNanoException e) { |
| + Log.e(TAG, "Error parsing SyncEntity.", e); |
|
pval...(no longer on Chromium)
2015/07/10 01:48:07
this seems like an error that's worse that simply
maxbogue
2015/07/10 17:52:11
Done.
|
| + } |
| + } |
| + return entities; |
| + } |
| + }); |
| + } |
| + |
| /** |
| * Injects an entity into the fake Sync server. This method only works for entities that will |
| * eventually contain a unique client tag (e.g., preferences, typed URLs). |
| @@ -340,6 +369,8 @@ public class FakeServerHelper { |
| String name); |
| private native boolean nativeVerifySessions( |
| long nativeFakeServerHelperAndroid, long nativeFakeServer, String[] urlArray); |
| + private native byte[][] nativeGetSyncEntitiesByModelType( |
| + long nativeFakeServerHelperAndroid, long nativeFakeServer, String modelType); |
| private native void nativeInjectUniqueClientEntity( |
| long nativeFakeServerHelperAndroid, long nativeFakeServer, String name, |
| byte[] serializedEntitySpecifics); |