Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 Loading... | |
| 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), | |
|
pval...(no longer on Chromium)
2015/07/10 01:48:07
should be indented 4 spaces
maxbogue
2015/07/10 17:52:11
Done.
| |
| 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( | |
| 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 Loading... | |
| 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 Loading... | |
| 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 } |
| OLD | NEW |