Index: testing/android/native_test/java/src/org/chromium/native_test/NativeBrowserTestActivity.java |
diff --git a/testing/android/native_test/java/src/org/chromium/native_test/NativeBrowserTestActivity.java b/testing/android/native_test/java/src/org/chromium/native_test/NativeBrowserTestActivity.java |
index ac2ddeef84a6dbca5b71775ae60e536965f2757c..0f6628a648c7e71395a4a4207529dc7cb952062a 100644 |
--- a/testing/android/native_test/java/src/org/chromium/native_test/NativeBrowserTestActivity.java |
+++ b/testing/android/native_test/java/src/org/chromium/native_test/NativeBrowserTestActivity.java |
@@ -6,11 +6,17 @@ package org.chromium.native_test; |
import android.os.Bundle; |
+import org.chromium.base.Log; |
+ |
+import java.io.File; |
+ |
/** |
* An {@link android.app.Activity} for running native browser tests. |
*/ |
public abstract class NativeBrowserTestActivity extends NativeTestActivity { |
+ private static final String TAG = "cr.native_test"; |
+ |
private static final String BROWSER_TESTS_FLAGS[] = { |
// content::kSingleProcessTestsFlag |
"--single_process", |
@@ -32,15 +38,48 @@ public abstract class NativeBrowserTestActivity extends NativeTestActivity { |
@Override |
public void onStart() { |
+ deletePrivateDataDirectory(); |
initializeBrowserProcess(); |
super.onStart(); |
} |
+ /** Deletes a file or directory along with any of its children. |
+ * |
+ * Note that, like File.delete(), this returns false if the file or directory couldn't be |
+ * fully deleted. This means that, in the directory case, some files may be deleted even if |
+ * the entire directory couldn't be. |
+ * |
+ * @param file The file or directory to delete. |
+ * @return Whether or not the file or directory was deleted. |
+ */ |
+ private static boolean deleteRecursive(File file) { |
+ if (file == null) return true; |
+ |
+ File[] children = file.listFiles(); |
+ if (children != null) { |
+ for (File child : children) { |
+ if (!deleteRecursive(child)) { |
+ return false; |
+ } |
+ } |
+ } |
+ return file.delete(); |
+ } |
+ |
+ private void deletePrivateDataDirectory() { |
+ File privateDataDirectory = getPrivateDataDirectory(); |
+ if (!deleteRecursive(privateDataDirectory)) { |
+ Log.e(TAG, "Failed to remove %s", privateDataDirectory.getAbsolutePath()); |
+ } |
+ } |
+ |
+ /** Returns the test suite's private data directory. */ |
+ protected abstract File getPrivateDataDirectory(); |
+ |
/** Initializes the browser process. |
* |
* This generally includes loading native libraries and switching to the native command line, |
* among other things. |
*/ |
protected abstract void initializeBrowserProcess(); |
- |
} |