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

Side by Side Diff: sync/test/fake_server/android/fake_server_helper_android.cc

Issue 998373004: Sync: Generalize entity injection in Android tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 testing::AssertionResult result = 73 testing::AssertionResult result =
74 fake_server_verifier.VerifyEntityCountByTypeAndName( 74 fake_server_verifier.VerifyEntityCountByTypeAndName(
75 count, model_type, base::android::ConvertJavaStringToUTF8(env, name)); 75 count, model_type, base::android::ConvertJavaStringToUTF8(env, name));
76 76
77 if (!result) 77 if (!result)
78 LOG(WARNING) << result.message(); 78 LOG(WARNING) << result.message();
79 79
80 return result; 80 return result;
81 } 81 }
82 82
83 void FakeServerHelperAndroid::InjectTypedUrl(JNIEnv* env, 83 void FakeServerHelperAndroid::InjectUniqueClientEntity(
84 jobject obj, 84 JNIEnv* env,
85 jlong fake_server, 85 jobject obj,
86 jstring url) { 86 jlong fake_server,
87 jstring name,
88 jbyteArray serialized_entity_specifics) {
87 fake_server::FakeServer* fake_server_ptr = 89 fake_server::FakeServer* fake_server_ptr =
88 reinterpret_cast<fake_server::FakeServer*>(fake_server); 90 reinterpret_cast<fake_server::FakeServer*>(fake_server);
89 91
90 // TODO(pvalenzuela): Move this proto creation and serialization to the Java 92 int specifics_bytes_length = env->GetArrayLength(serialized_entity_specifics);
91 // code once the appropriate Java objects are generated. 93 jbyte* specifics_bytes =
92 std::string native_url = base::android::ConvertJavaStringToUTF8(env, url); 94 env->GetByteArrayElements(serialized_entity_specifics, NULL);
95 std::string specifics_string(reinterpret_cast<char *>(specifics_bytes),
96 specifics_bytes_length);
97
93 sync_pb::EntitySpecifics entity_specifics; 98 sync_pb::EntitySpecifics entity_specifics;
94 sync_pb::TypedUrlSpecifics* typed_url_specifics = 99 if (!entity_specifics.ParseFromString(specifics_string))
95 entity_specifics.mutable_typed_url(); 100 NOTREACHED() << "Could not deserialize EntitySpecifics";
96 typed_url_specifics->set_url(native_url);
97 typed_url_specifics->set_title(native_url);
98 typed_url_specifics->add_visits(1L);
99 typed_url_specifics->add_visit_transitions(
100 sync_pb::SyncEnums_PageTransition_TYPED);
101 101
102 fake_server_ptr->InjectEntity( 102 fake_server_ptr->InjectEntity(
103 fake_server::UniqueClientEntity::CreateForInjection( 103 fake_server::UniqueClientEntity::CreateForInjection(
104 syncer::ModelType::TYPED_URLS, 104 base::android::ConvertJavaStringToUTF8(env, name),
105 native_url,
106 entity_specifics)); 105 entity_specifics));
107 } 106 }
108 107
109 // static 108 // static
110 bool FakeServerHelperAndroid::Register(JNIEnv* env) { 109 bool FakeServerHelperAndroid::Register(JNIEnv* env) {
111 return RegisterNativesImpl(env); 110 return RegisterNativesImpl(env);
112 } 111 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698