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', {