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

Unified Diff: base/android/jni_array_unittest.cc

Issue 1337703002: [Contextual Search] Add support for crushed sprites and animate the search provider icon (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Very small changes from last pedrosimonneti@ review Created 5 years, 2 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: base/android/jni_array_unittest.cc
diff --git a/base/android/jni_array_unittest.cc b/base/android/jni_array_unittest.cc
index 58b244322a6c21ed7cb74ecb6caf733ddbfe32a4..e9ae3fcc3dc2beadb0ee9bccd0859d20581a8b21 100644
--- a/base/android/jni_array_unittest.cc
+++ b/base/android/jni_array_unittest.cc
@@ -86,6 +86,17 @@ TEST(JniArray, LongConversions) {
CheckLongConversion(env, kLongs, kLen, ToJavaLongArray(env, vec));
}
+void CheckIntArrayConversion(JNIEnv* env,
+ ScopedJavaLocalRef<jintArray> jints,
+ std::vector<int> int_vector,
+ const size_t len) {
+ jint value;
+ for (size_t i = 0; i < len; ++i) {
+ env->GetIntArrayRegion(jints.obj(), i, 1, &value);
+ ASSERT_EQ(int_vector[i], value);
+ }
+}
+
TEST(JniArray, JavaIntArrayToIntVector) {
const int kInts[] = {0, 1, -1};
const size_t kLen = arraysize(kInts);
@@ -105,11 +116,7 @@ TEST(JniArray, JavaIntArrayToIntVector) {
ASSERT_EQ(static_cast<jsize>(ints.size()), env->GetArrayLength(jints.obj()));
- jint value;
- for (size_t i = 0; i < kLen; ++i) {
- env->GetIntArrayRegion(jints.obj(), i, 1, &value);
- ASSERT_EQ(ints[i], value);
- }
+ CheckIntArrayConversion(env, jints, ints, kLen);
}
TEST(JniArray, JavaLongArrayToInt64Vector) {
@@ -230,5 +237,49 @@ TEST(JniArray, JavaArrayOfByteArrayToStringVector) {
}
}
+TEST(JniArray, JavaArrayOfIntArrayToIntVector) {
+ const size_t kNumItems = 4;
+ JNIEnv* env = AttachCurrentThread();
+
+ // Create an int[][] object.
+ ScopedJavaLocalRef<jclass> int_array_clazz(env, env->FindClass("[I"));
+ ASSERT_TRUE(int_array_clazz.obj());
+
+ ScopedJavaLocalRef<jobjectArray> array(
+ env, env->NewObjectArray(kNumItems, int_array_clazz.obj(), nullptr));
+ ASSERT_TRUE(array.obj());
+
+ // Populate int[][] object.
+ const int kInts0[] = {0, 1, -1, kint32min, kint32max};
+ const size_t kLen0 = arraysize(kInts0);
+ ScopedJavaLocalRef<jintArray> int_array0 = ToJavaIntArray(env, kInts0, kLen0);
+ env->SetObjectArrayElement(array.obj(), 0, int_array0.obj());
+
+ const int kInts1[] = {3, 4, 5};
+ const size_t kLen1 = arraysize(kInts1);
+ ScopedJavaLocalRef<jintArray> int_array1 = ToJavaIntArray(env, kInts1, kLen1);
+ env->SetObjectArrayElement(array.obj(), 1, int_array1.obj());
+
+ const int kInts2[] = {};
+ const size_t kLen2 = 0;
+ ScopedJavaLocalRef<jintArray> int_array2 = ToJavaIntArray(env, kInts2, kLen2);
+ env->SetObjectArrayElement(array.obj(), 2, int_array2.obj());
+
+ const int kInts3[] = {16};
+ const size_t kLen3 = arraysize(kInts3);
+ ScopedJavaLocalRef<jintArray> int_array3 = ToJavaIntArray(env, kInts3, kLen3);
+ env->SetObjectArrayElement(array.obj(), 3, int_array3.obj());
+
+ // Convert to std::vector<std::vector<int>>, check the content.
+ std::vector<std::vector<int>> out;
+ JavaArrayOfIntArrayToIntVector(env, array.obj(), &out);
+
+ EXPECT_EQ(kNumItems, out.size());
+ CheckIntArrayConversion(env, int_array0, out[0], kLen0);
+ CheckIntArrayConversion(env, int_array1, out[1], kLen1);
+ CheckIntArrayConversion(env, int_array2, out[2], kLen2);
+ CheckIntArrayConversion(env, int_array3, out[3], kLen3);
+}
+
} // namespace android
} // namespace base

Powered by Google App Engine
This is Rietveld 408576698