Add PathUtilsTest.
- This test invokes JNI calls and included only if gtest_target_type=shared_library.
- Also set the application context to get these JNI calls working.
BUG=125059
TEST=
Review URL: http://codereview.chromium.org/10161032
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@134144 0039d316-1c4b-4281-b951-d872f2087c98
CrOS-Libchrome-Original-Commit: 595b063ca05e9b4134a21fd53a08f5fe6ad9624c
diff --git a/base/android/path_utils.h b/base/android/path_utils.h
index 8015ed9..2e95727 100644
--- a/base/android/path_utils.h
+++ b/base/android/path_utils.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// 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.
@@ -21,6 +21,9 @@
// cache dir.
std::string GetCacheDirectory();
+// Returns the path to the public downloads directory.
+std::string GetDownloadsDirectory();
+
bool RegisterPathUtils(JNIEnv* env);
} // namespace android
diff --git a/base/android/path_utils_unittest.cc b/base/android/path_utils_unittest.cc
new file mode 100644
index 0000000..e86cd49
--- /dev/null
+++ b/base/android/path_utils_unittest.cc
@@ -0,0 +1,31 @@
+// 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/path_utils.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace base {
+namespace android {
+
+typedef testing::Test PathUtilsTest;
+
+TEST_F(PathUtilsTest, TestGetDataDirectory) {
+ // The string comes from the Java side and depends on the APK
+ // we are running in. Assumes that we are packaged in
+ // org.chromium.native_test
+ EXPECT_STREQ("/data/data/org.chromium.native_test/app_chrome",
+ GetDataDirectory().c_str());
+}
+
+TEST_F(PathUtilsTest, TestGetCacheDirectory) {
+ // The string comes from the Java side and depends on the APK
+ // we are running in. Assumes that we are packaged in
+ // org.chromium.native_test
+ EXPECT_STREQ("/data/data/org.chromium.native_test/cache",
+ GetCacheDirectory().c_str());
+}
+
+} // namespace android
+} // namespace base
diff --git a/base/base.gyp b/base/base.gyp
index 9126900..e048d09 100644
--- a/base/base.gyp
+++ b/base/base.gyp
@@ -132,6 +132,7 @@
'sources': [
# Tests.
'android/jni_android_unittest.cc',
+ 'android/path_utils_unittest.cc',
'android/scoped_java_ref_unittest.cc',
'at_exit_unittest.cc',
'atomicops_unittest.cc',
@@ -301,22 +302,27 @@
['OS == "android"', {
'sources!': [
# TODO(michaelbai): Removed the below once the fix upstreamed.
+ 'debug/stack_trace_unittest.cc',
'memory/mru_cache_unittest.cc',
'process_util_unittest.cc',
'synchronization/cancellation_flag_unittest.cc',
- # TODO(michaelbai): The below files are excluded because of the
- # missing JNI and should be added back once JNI is ready.
- 'android/jni_android_unittest.cc',
- 'android/scoped_java_ref_unittest.cc',
- 'debug/stack_trace_unittest.cc',
],
'dependencies': [
'android/jni_generator/jni_generator.gyp:jni_generator_tests',
],
- }],
- ['OS=="android" and "<(gtest_target_type)"=="shared_library"', {
- 'dependencies': [
- '../testing/android/native_test.gyp:native_test_native_code',
+ 'conditions': [
+ ['"<(gtest_target_type)"=="shared_library"', {
+ 'dependencies': [
+ '../testing/android/native_test.gyp:native_test_native_code',
+ ],
+ }, { # gtest_target_type != shared_library
+ 'sources!': [
+ # The below files are excluded because of the missing JNI.
+ 'android/jni_android_unittest.cc',
+ 'android/path_utils_unittest.cc',
+ 'android/scoped_java_ref_unittest.cc',
+ ],
+ }],
],
}],
['use_glib==1', {