Updates to base unittests so they run correctly in libchrome on Android

Parallel change to https://android-review.googlesource.com/#/c/163293/
(does not include changes being made to base/command_line_unittest
that are fixing temporary runner issues, since the runner is fine here)

BUG= 22884411, 22947438

Review URL: https://codereview.chromium.org/1273243002

Cr-Commit-Position: refs/heads/master@{#343126}


CrOS-Libchrome-Original-Commit: e89963accb5f3a9d93b8007b22fc79c0120eb794
diff --git a/base/files/dir_reader_posix_unittest.cc b/base/files/dir_reader_posix_unittest.cc
index 0685031..2e181b3 100644
--- a/base/files/dir_reader_posix_unittest.cc
+++ b/base/files/dir_reader_posix_unittest.cc
@@ -10,6 +10,7 @@
 #include <string.h>
 #include <unistd.h>
 
+#include "base/files/scoped_temp_dir.h"
 #include "base/logging.h"
 #include "testing/gtest/include/gtest/gtest.h"
 
@@ -25,8 +26,9 @@
   if (DirReaderPosix::IsFallback())
     return;
 
-  char kDirTemplate[] = "/tmp/org.chromium.dir-reader-posix-XXXXXX";
-  const char* dir = mkdtemp(kDirTemplate);
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+  const char* dir = temp_dir.path().value().c_str();
   ASSERT_TRUE(dir);
 
   const int prev_wd = open(".", O_RDONLY | O_DIRECTORY);
diff --git a/base/files/file_path_unittest.cc b/base/files/file_path_unittest.cc
index 60eaa8f..bc0e843 100644
--- a/base/files/file_path_unittest.cc
+++ b/base/files/file_path_unittest.cc
@@ -10,6 +10,10 @@
 #include "testing/gtest/include/gtest/gtest.h"
 #include "testing/platform_test.h"
 
+#if defined(OS_POSIX)
+#include "base/test/scoped_locale.h"
+#endif
+
 // This macro helps avoid wrapped lines in the test structs.
 #define FPL(x) FILE_PATH_LITERAL(x)
 
@@ -1126,6 +1130,10 @@
       "\xEF\xBC\xA1\xEF\xBC\xA2\xEF\xBC\xA3.txt" },
   };
 
+#if !defined(SYSTEM_NATIVE_UTF8) && defined(OS_LINUX)
+  ScopedLocale locale("en_US.UTF-8");
+#endif
+
   for (size_t i = 0; i < arraysize(cases); ++i) {
     // Test FromUTF8Unsafe() works.
     FilePath from_utf8 = FilePath::FromUTF8Unsafe(cases[i].utf8);