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

Unified Diff: base/android/scoped_java_ref_unittest.cc

Issue 1647803004: Move base to DEPS (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 11 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
« no previous file with comments | « base/android/scoped_java_ref.cc ('k') | base/android/sys_utils.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/android/scoped_java_ref_unittest.cc
diff --git a/base/android/scoped_java_ref_unittest.cc b/base/android/scoped_java_ref_unittest.cc
deleted file mode 100644
index 3f4419af6d2b648174632dd9fa04ed24728ae1b4..0000000000000000000000000000000000000000
--- a/base/android/scoped_java_ref_unittest.cc
+++ /dev/null
@@ -1,122 +0,0 @@
-// Copyright (c) 2012 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/android/scoped_java_ref.h"
-
-#include "base/android/jni_android.h"
-#include "base/android/jni_string.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace base {
-namespace android {
-
-namespace {
-int g_local_refs = 0;
-int g_global_refs = 0;
-
-const JNINativeInterface* g_previous_functions;
-
-jobject NewGlobalRef(JNIEnv* env, jobject obj) {
- ++g_global_refs;
- return g_previous_functions->NewGlobalRef(env, obj);
-}
-
-void DeleteGlobalRef(JNIEnv* env, jobject obj) {
- --g_global_refs;
- return g_previous_functions->DeleteGlobalRef(env, obj);
-}
-
-jobject NewLocalRef(JNIEnv* env, jobject obj) {
- ++g_local_refs;
- return g_previous_functions->NewLocalRef(env, obj);
-}
-
-void DeleteLocalRef(JNIEnv* env, jobject obj) {
- --g_local_refs;
- return g_previous_functions->DeleteLocalRef(env, obj);
-}
-} // namespace
-
-class ScopedJavaRefTest : public testing::Test {
- protected:
- void SetUp() override {
- g_local_refs = 0;
- g_global_refs = 0;
- JNIEnv* env = AttachCurrentThread();
- g_previous_functions = env->functions;
- hooked_functions = *g_previous_functions;
- env->functions = &hooked_functions;
- // We inject our own functions in JNINativeInterface so we can keep track
- // of the reference counting ourselves.
- hooked_functions.NewGlobalRef = &NewGlobalRef;
- hooked_functions.DeleteGlobalRef = &DeleteGlobalRef;
- hooked_functions.NewLocalRef = &NewLocalRef;
- hooked_functions.DeleteLocalRef = &DeleteLocalRef;
- }
-
- void TearDown() override {
- JNIEnv* env = AttachCurrentThread();
- env->functions = g_previous_functions;
- }
- // From JellyBean release, the instance of this struct provided in JNIEnv is
- // read-only, so we deep copy it to allow individual functions to be hooked.
- JNINativeInterface hooked_functions;
-};
-
-// The main purpose of this is testing the various conversions compile.
-TEST_F(ScopedJavaRefTest, Conversions) {
- JNIEnv* env = AttachCurrentThread();
- ScopedJavaLocalRef<jstring> str = ConvertUTF8ToJavaString(env, "string");
- ScopedJavaGlobalRef<jstring> global(str);
- {
- ScopedJavaGlobalRef<jobject> global_obj(str);
- ScopedJavaLocalRef<jobject> local_obj(global);
- const JavaRef<jobject>& obj_ref1(str);
- const JavaRef<jobject>& obj_ref2(global);
- EXPECT_TRUE(env->IsSameObject(obj_ref1.obj(), obj_ref2.obj()));
- EXPECT_TRUE(env->IsSameObject(global_obj.obj(), obj_ref2.obj()));
- }
- global.Reset(str);
- const JavaRef<jstring>& str_ref = str;
- EXPECT_EQ("string", ConvertJavaStringToUTF8(str_ref));
- str.Reset();
-}
-
-TEST_F(ScopedJavaRefTest, RefCounts) {
- JNIEnv* env = AttachCurrentThread();
- ScopedJavaLocalRef<jstring> str;
- // The ConvertJavaStringToUTF8 below creates a new string that would normally
- // return a local ref. We simulate that by starting the g_local_refs count at
- // 1.
- g_local_refs = 1;
- str.Reset(ConvertUTF8ToJavaString(env, "string"));
- EXPECT_EQ(1, g_local_refs);
- EXPECT_EQ(0, g_global_refs);
- {
- ScopedJavaGlobalRef<jstring> global_str(str);
- ScopedJavaGlobalRef<jobject> global_obj(global_str);
- EXPECT_EQ(1, g_local_refs);
- EXPECT_EQ(2, g_global_refs);
-
- ScopedJavaLocalRef<jstring> str2(env, str.Release());
- EXPECT_EQ(1, g_local_refs);
- {
- ScopedJavaLocalRef<jstring> str3(str2);
- EXPECT_EQ(2, g_local_refs);
- }
- EXPECT_EQ(1, g_local_refs);
- str2.Reset();
- EXPECT_EQ(0, g_local_refs);
- global_str.Reset();
- EXPECT_EQ(1, g_global_refs);
- ScopedJavaGlobalRef<jobject> global_obj2(global_obj);
- EXPECT_EQ(2, g_global_refs);
- }
-
- EXPECT_EQ(0, g_local_refs);
- EXPECT_EQ(0, g_global_refs);
-}
-
-} // namespace android
-} // namespace base
« no previous file with comments | « base/android/scoped_java_ref.cc ('k') | base/android/sys_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698