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

Side by Side 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: Throw ExecutionException instead of Exception, and rebase. 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "sync/test/fake_server/android/fake_server_helper_android.h" 5 #include "sync/test/fake_server/android/fake_server_helper_android.h"
6 6
7 #include <jni.h> 7 #include <jni.h>
8 8
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 fake_server::FakeServerVerifier fake_server_verifier(fake_server_ptr); 102 fake_server::FakeServerVerifier fake_server_verifier(fake_server_ptr);
103 testing::AssertionResult result = 103 testing::AssertionResult result =
104 fake_server_verifier.VerifySessions(expected_sessions); 104 fake_server_verifier.VerifySessions(expected_sessions);
105 105
106 if (!result) 106 if (!result)
107 LOG(WARNING) << result.message(); 107 LOG(WARNING) << result.message();
108 108
109 return result; 109 return result;
110 } 110 }
111 111
112 base::android::ScopedJavaLocalRef<jobjectArray>
113 FakeServerHelperAndroid::GetSyncEntitiesByModelType(JNIEnv* env,
114 jobject obj,
115 jlong fake_server,
116 jstring model_type_string) {
117 fake_server::FakeServer* fake_server_ptr =
118 reinterpret_cast<fake_server::FakeServer*>(fake_server);
119
120 syncer::ModelType model_type;
121 if (!NotificationTypeToRealModelType(
122 base::android::ConvertJavaStringToUTF8(env, model_type_string),
123 &model_type)) {
124 LOG(WARNING) << "Invalid ModelType string.";
125 NOTREACHED();
126 }
127
128 std::vector<sync_pb::SyncEntity> entities =
129 fake_server_ptr->GetSyncEntitiesByModelType(model_type);
130
131 // "[B" is the type specifier for the Java byte[]; so, this returns the class
132 // type for a Java byte[].
133 jclass byte_array_class = env->FindClass("[B");
134 jobjectArray object_array =
135 env->NewObjectArray(entities.size(), byte_array_class, nullptr);
136 for (size_t i = 0; i < entities.size(); ++i) {
137 env->SetObjectArrayElement(object_array, i,
138 ProtoToJbyteArray(env, entities[i]));
139 }
140 return base::android::ScopedJavaLocalRef<jobjectArray>(env, object_array);
141 }
142
143 jbyteArray FakeServerHelperAndroid::ProtoToJbyteArray(
nyquist 2015/07/13 18:52:46 Could you instead use MessageLite::SerializeToStri
maxbogue 2015/07/13 19:44:54 Done.
144 JNIEnv* env,
145 const google::protobuf::MessageLite& proto) {
146 int size = proto.ByteSize();
147 jbyteArray ret_arr = env->NewByteArray(size);
148 jbyte* memory = reinterpret_cast<jbyte*>(
149 env->GetPrimitiveArrayCritical(ret_arr, nullptr));
150 proto.SerializeToArray(memory, size);
151 env->ReleasePrimitiveArrayCritical(ret_arr, memory, 0);
152 return ret_arr;
153 }
154
112 void FakeServerHelperAndroid::InjectUniqueClientEntity( 155 void FakeServerHelperAndroid::InjectUniqueClientEntity(
113 JNIEnv* env, 156 JNIEnv* env,
114 jobject obj, 157 jobject obj,
115 jlong fake_server, 158 jlong fake_server,
116 jstring name, 159 jstring name,
117 jbyteArray serialized_entity_specifics) { 160 jbyteArray serialized_entity_specifics) {
118 fake_server::FakeServer* fake_server_ptr = 161 fake_server::FakeServer* fake_server_ptr =
119 reinterpret_cast<fake_server::FakeServer*>(fake_server); 162 reinterpret_cast<fake_server::FakeServer*>(fake_server);
120 163
121 sync_pb::EntitySpecifics entity_specifics; 164 sync_pb::EntitySpecifics entity_specifics;
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 jstring entity_id, 238 jstring entity_id,
196 jstring title, 239 jstring title,
197 jstring url, 240 jstring url,
198 jstring parent_id) { 241 jstring parent_id) {
199 fake_server::FakeServer* fake_server_ptr = 242 fake_server::FakeServer* fake_server_ptr =
200 reinterpret_cast<fake_server::FakeServer*>(fake_server); 243 reinterpret_cast<fake_server::FakeServer*>(fake_server);
201 scoped_ptr<fake_server::FakeServerEntity> bookmark = 244 scoped_ptr<fake_server::FakeServerEntity> bookmark =
202 CreateBookmarkEntity(env, title, url, parent_id); 245 CreateBookmarkEntity(env, title, url, parent_id);
203 sync_pb::SyncEntity proto; 246 sync_pb::SyncEntity proto;
204 bookmark->SerializeAsProto(&proto); 247 bookmark->SerializeAsProto(&proto);
205 fake_server_ptr->ModifyEntitySpecifics( 248 fake_server_ptr->ModifyBookmarkEntity(
206 base::android::ConvertJavaStringToUTF8(env, entity_id), 249 base::android::ConvertJavaStringToUTF8(env, entity_id),
250 base::android::ConvertJavaStringToUTF8(env, parent_id),
207 proto.specifics()); 251 proto.specifics());
208 } 252 }
209 253
210 void FakeServerHelperAndroid::ModifyBookmarkFolderEntity(JNIEnv* env, 254 void FakeServerHelperAndroid::ModifyBookmarkFolderEntity(JNIEnv* env,
211 jobject obj, 255 jobject obj,
212 jlong fake_server, 256 jlong fake_server,
213 jstring entity_id, 257 jstring entity_id,
214 jstring title, 258 jstring title,
215 jstring parent_id) { 259 jstring parent_id) {
216 fake_server::FakeServer* fake_server_ptr = 260 fake_server::FakeServer* fake_server_ptr =
217 reinterpret_cast<fake_server::FakeServer*>(fake_server); 261 reinterpret_cast<fake_server::FakeServer*>(fake_server);
218 262
219 fake_server::EntityBuilderFactory entity_builder_factory; 263 fake_server::EntityBuilderFactory entity_builder_factory;
220 fake_server::BookmarkEntityBuilder bookmark_builder = 264 fake_server::BookmarkEntityBuilder bookmark_builder =
221 entity_builder_factory.NewBookmarkEntityBuilder( 265 entity_builder_factory.NewBookmarkEntityBuilder(
222 base::android::ConvertJavaStringToUTF8(env, title)); 266 base::android::ConvertJavaStringToUTF8(env, title));
223 bookmark_builder.SetParentId( 267 bookmark_builder.SetParentId(
224 base::android::ConvertJavaStringToUTF8(env, parent_id)); 268 base::android::ConvertJavaStringToUTF8(env, parent_id));
225 269
226 sync_pb::SyncEntity proto; 270 sync_pb::SyncEntity proto;
227 bookmark_builder.BuildFolder()->SerializeAsProto(&proto); 271 bookmark_builder.BuildFolder()->SerializeAsProto(&proto);
228 fake_server_ptr->ModifyEntitySpecifics( 272 fake_server_ptr->ModifyBookmarkEntity(
229 base::android::ConvertJavaStringToUTF8(env, entity_id), 273 base::android::ConvertJavaStringToUTF8(env, entity_id),
274 base::android::ConvertJavaStringToUTF8(env, parent_id),
230 proto.specifics()); 275 proto.specifics());
231 } 276 }
232 277
233 scoped_ptr<fake_server::FakeServerEntity> 278 scoped_ptr<fake_server::FakeServerEntity>
234 FakeServerHelperAndroid::CreateBookmarkEntity(JNIEnv* env, 279 FakeServerHelperAndroid::CreateBookmarkEntity(JNIEnv* env,
235 jstring title, 280 jstring title,
236 jstring url, 281 jstring url,
237 jstring parent_id) { 282 jstring parent_id) {
238 std::string url_as_string = base::android::ConvertJavaStringToUTF8(env, url); 283 std::string url_as_string = base::android::ConvertJavaStringToUTF8(env, url);
239 GURL gurl = GURL(url_as_string); 284 GURL gurl = GURL(url_as_string);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 reinterpret_cast<fake_server::FakeServer*>(fake_server); 316 reinterpret_cast<fake_server::FakeServer*>(fake_server);
272 std::string native_id = base::android::ConvertJavaStringToUTF8(env, id); 317 std::string native_id = base::android::ConvertJavaStringToUTF8(env, id);
273 fake_server_ptr->InjectEntity( 318 fake_server_ptr->InjectEntity(
274 fake_server::TombstoneEntity::Create(native_id)); 319 fake_server::TombstoneEntity::Create(native_id));
275 } 320 }
276 321
277 // static 322 // static
278 bool FakeServerHelperAndroid::Register(JNIEnv* env) { 323 bool FakeServerHelperAndroid::Register(JNIEnv* env) {
279 return RegisterNativesImpl(env); 324 return RegisterNativesImpl(env);
280 } 325 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698