Index: base/test/test_support_android.cc |
diff --git a/base/test/test_support_android.cc b/base/test/test_support_android.cc |
index f8441bd1ba5f9d75fe8e52258c6d339f24763514..e2678c054eec1439bd5eaaf834514f3d053f29f3 100644 |
--- a/base/test/test_support_android.cc |
+++ b/base/test/test_support_android.cc |
@@ -18,6 +18,8 @@ |
namespace { |
+base::FilePath* g_test_data_dir = nullptr; |
+ |
struct RunState { |
RunState(base::MessagePump::Delegate* delegate, int run_depth) |
: delegate(delegate), |
@@ -132,13 +134,16 @@ std::unique_ptr<base::MessagePump> CreateMessagePumpForUIStub() { |
return std::unique_ptr<base::MessagePump>(new MessagePumpForUIStub()); |
}; |
-// Provides the test path for DIR_MODULE and DIR_ANDROID_APP_DATA. |
+// Provides the test path for DIR_SOURCE_ROOT and DIR_ANDROID_APP_DATA. |
bool GetTestProviderPath(int key, base::FilePath* result) { |
switch (key) { |
- case base::DIR_ANDROID_APP_DATA: { |
- // For tests, app data is put in external storage. |
- return base::android::GetExternalStorageDirectory(result); |
- } |
+ // TODO(agrieve): Stop overriding DIR_ANDROID_APP_DATA. |
+ // https://crbug.com/617734 |
+ case base::DIR_ANDROID_APP_DATA: |
jbudorick
2016/06/07 14:31:01
Hm, the salient bit of code here is https://codese
agrieve
2016/06/07 14:46:24
Responded to this comment here:
https://bugs.chrom
jbudorick
2016/06/07 15:05:48
Replied there too. Not sure either will work.
|
+ case base::DIR_SOURCE_ROOT: |
+ CHECK(g_test_data_dir != nullptr); |
+ *result = *g_test_data_dir; |
+ return true; |
default: |
return false; |
} |
@@ -166,8 +171,13 @@ void InitAndroidTestLogging() { |
false); // Tick count |
} |
-void InitAndroidTestPaths() { |
- InitPathProvider(DIR_MODULE); |
+void InitAndroidTestPaths(const FilePath& test_data_dir) { |
+ if (g_test_data_dir) { |
+ CHECK(test_data_dir == *g_test_data_dir); |
+ return; |
+ } |
+ g_test_data_dir = new FilePath(test_data_dir); |
+ InitPathProvider(DIR_SOURCE_ROOT); |
InitPathProvider(DIR_ANDROID_APP_DATA); |
} |
@@ -179,7 +189,6 @@ void InitAndroidTestMessageLoop() { |
void InitAndroidTest() { |
if (!base::AndroidIsChildProcess()) { |
InitAndroidTestLogging(); |
- InitAndroidTestPaths(); |
} |
InitAndroidTestMessageLoop(); |
} |