Chromium Code Reviews| Index: sync/test/fake_server/android/fake_server_helper_android.cc |
| diff --git a/sync/test/fake_server/android/fake_server_helper_android.cc b/sync/test/fake_server/android/fake_server_helper_android.cc |
| index fd56e960b24f07372666b374ba936380f93c484e..016fa0e383b3db1a81e5080c62acbbe59196d305 100644 |
| --- a/sync/test/fake_server/android/fake_server_helper_android.cc |
| +++ b/sync/test/fake_server/android/fake_server_helper_android.cc |
| @@ -109,6 +109,49 @@ jboolean FakeServerHelperAndroid::VerifySessions( |
| return result; |
| } |
| +base::android::ScopedJavaLocalRef<jobjectArray> |
| +FakeServerHelperAndroid::GetSyncEntitiesByModelType(JNIEnv* env, |
| + jobject obj, |
| + jlong fake_server, |
| + jstring model_type_string) { |
| + fake_server::FakeServer* fake_server_ptr = |
| + reinterpret_cast<fake_server::FakeServer*>(fake_server); |
| + |
| + syncer::ModelType model_type; |
| + if (!NotificationTypeToRealModelType( |
| + base::android::ConvertJavaStringToUTF8(env, model_type_string), |
|
pval...(no longer on Chromium)
2015/07/10 01:48:07
should be indented 4 spaces
maxbogue
2015/07/10 17:52:11
Done.
|
| + &model_type)) { |
| + LOG(WARNING) << "Invalid ModelType string."; |
| + NOTREACHED(); |
| + } |
| + |
| + std::vector<sync_pb::SyncEntity> entities = |
| + fake_server_ptr->GetSyncEntitiesByModelType(model_type); |
| + |
| + // "[B" is the type specifier for the Java byte[]; so, this returns the class |
| + // type for a Java byte[]. |
| + jclass byte_array_class = env->FindClass("[B"); |
| + jobjectArray object_array = |
| + env->NewObjectArray(entities.size(), byte_array_class, nullptr); |
| + for (size_t i = 0; i < entities.size(); ++i) { |
| + env->SetObjectArrayElement(object_array, i, |
| + ProtoToJbyteArray(env, entities[i])); |
| + } |
| + return base::android::ScopedJavaLocalRef<jobjectArray>(env, object_array); |
| +} |
| + |
| +jbyteArray FakeServerHelperAndroid::ProtoToJbyteArray( |
| + JNIEnv* env, |
| + const google::protobuf::MessageLite& proto) { |
| + int size = proto.ByteSize(); |
| + jbyteArray ret_arr = env->NewByteArray(size); |
| + jbyte* memory = reinterpret_cast<jbyte*>( |
| + env->GetPrimitiveArrayCritical(ret_arr, nullptr)); |
| + proto.SerializeToArray(memory, size); |
| + env->ReleasePrimitiveArrayCritical(ret_arr, memory, 0); |
| + return ret_arr; |
| +} |
| + |
| void FakeServerHelperAndroid::InjectUniqueClientEntity( |
| JNIEnv* env, |
| jobject obj, |
| @@ -202,8 +245,9 @@ void FakeServerHelperAndroid::ModifyBookmarkEntity(JNIEnv* env, |
| CreateBookmarkEntity(env, title, url, parent_id); |
| sync_pb::SyncEntity proto; |
| bookmark->SerializeAsProto(&proto); |
| - fake_server_ptr->ModifyEntitySpecifics( |
| + fake_server_ptr->ModifyBookmarkEntity( |
| base::android::ConvertJavaStringToUTF8(env, entity_id), |
| + base::android::ConvertJavaStringToUTF8(env, parent_id), |
| proto.specifics()); |
| } |
| @@ -225,8 +269,9 @@ void FakeServerHelperAndroid::ModifyBookmarkFolderEntity(JNIEnv* env, |
| sync_pb::SyncEntity proto; |
| bookmark_builder.BuildFolder()->SerializeAsProto(&proto); |
| - fake_server_ptr->ModifyEntitySpecifics( |
| + fake_server_ptr->ModifyBookmarkEntity( |
| base::android::ConvertJavaStringToUTF8(env, entity_id), |
| + base::android::ConvertJavaStringToUTF8(env, parent_id), |
| proto.specifics()); |
| } |