Index: base/test/android/jni_test_util.cc |
diff --git a/base/test/android/jni_test_util.cc b/base/test/android/jni_test_util.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..76a36e350753978c45fad7a5fff0a83f2de72e2b |
--- /dev/null |
+++ b/base/test/android/jni_test_util.cc |
@@ -0,0 +1,45 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "base/test/android/jni_test_util.h" |
+ |
+#include "base/android/jni_android.h" |
+ |
+namespace base { |
+namespace android { |
+namespace test { |
+ |
+ScopedJavaLocalRef<jobject> CreateJavaPoint(jint x, jint y) { |
+ JNIEnv* env = AttachCurrentThread(); |
+ |
+ ScopedJavaLocalRef<jclass> point_jclass = |
+ GetClass(env, "android/graphics/Point"); |
+ |
+ jmethodID point_constructor = MethodID::Get<MethodID::TYPE_INSTANCE>( |
+ env, point_jclass.obj(), "<init>", "(II)V"); |
+ |
+ jobject point_obj = |
+ env->NewObject(point_jclass.obj(), point_constructor, x, y); |
+ return ScopedJavaLocalRef<jobject>(env, point_obj); |
+} |
+ |
+bool AreJavaObjectsEqual(jobject object1, jobject object2) { |
+ if (object1 == nullptr || object2 == nullptr) |
+ return object1 == object2; |
+ |
+ JNIEnv* env = AttachCurrentThread(); |
+ |
+ ScopedJavaLocalRef<jclass> object_jclass = GetClass(env, "java/lang/Object"); |
+ |
+ jmethodID equal_method_id = MethodID::Get<MethodID::TYPE_INSTANCE>( |
+ env, object_jclass.obj(), "equals", "(Ljava/lang/Object;)Z"); |
+ |
+ bool result = env->CallBooleanMethod(object1, equal_method_id, object2); |
+ CheckException(env); |
+ return result; |
+} |
+ |
+} // namespace test |
+} // namespace android |
+} // namespace base |