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

Unified Diff: sync/test/fake_server/android/fake_server_helper_android.cc

Issue 1232003003: [Sync] Add bookmark move tests. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@bookmark-folders
Patch Set: Self-review. Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
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());
}

Powered by Google App Engine
This is Rietveld 408576698