Tests fixup

 Bug: 5113381
 Fix case of using the wrong context (BP1 would use the app context
 explicitly, bypassing the mock context)
 Clean up test databases after runs

Change-Id: Ibac09d08d4ab7235d5763c209d84be2562e6fae3
diff --git a/src/com/android/browser/provider/BrowserProvider.java b/src/com/android/browser/provider/BrowserProvider.java
index fabf57e..b55b84a 100644
--- a/src/com/android/browser/provider/BrowserProvider.java
+++ b/src/com/android/browser/provider/BrowserProvider.java
@@ -251,7 +251,7 @@
 
         public DatabaseHelper(Context context) {
             super(context, sDatabaseName, null, DATABASE_VERSION);
-            mContext = context.getApplicationContext();
+            mContext = context;
         }
 
         @Override
diff --git a/tests/src/com/android/browser/tests/utils/BP2TestCaseHelper.java b/tests/src/com/android/browser/tests/utils/BP2TestCaseHelper.java
index 18c1c10..e341c6a 100644
--- a/tests/src/com/android/browser/tests/utils/BP2TestCaseHelper.java
+++ b/tests/src/com/android/browser/tests/utils/BP2TestCaseHelper.java
@@ -18,6 +18,9 @@
 
 import com.android.browser.provider.BrowserProvider2;
 
+import java.io.File;
+import java.io.FilenameFilter;
+
 import android.content.ContentValues;
 import android.database.ContentObserver;
 import android.net.Uri;
@@ -208,4 +211,22 @@
         perfIdeallyUntriggered(mBookmarksObserver, mWidgetObserver);
         return updated;
     }
+
+    @Override
+    protected void tearDown() throws Exception {
+        super.tearDown();
+        // Delete the test databases so that subsequent runs have a clean slate
+        File f = getMockContext().getDatabasePath("test");
+        File dir = f.getParentFile();
+        File testFiles[] = dir.listFiles(new FilenameFilter() {
+
+            @Override
+            public boolean accept(File dir, String filename) {
+                return filename.startsWith(ProviderTestCase3.FILENAME_PREFIX);
+            }
+        });
+        for (File testFile : testFiles) {
+            testFile.delete();
+        }
+    }
 }
diff --git a/tests/src/com/android/browser/tests/utils/ProviderTestCase3.java b/tests/src/com/android/browser/tests/utils/ProviderTestCase3.java
index 536163a..75bc052 100644
--- a/tests/src/com/android/browser/tests/utils/ProviderTestCase3.java
+++ b/tests/src/com/android/browser/tests/utils/ProviderTestCase3.java
@@ -35,6 +35,8 @@
  */
 public abstract class ProviderTestCase3<T extends ContentProvider> extends AndroidTestCase {
 
+    public static final String FILENAME_PREFIX = "test.";
+
     Class<T> mProviderClass;
     String[] mProviderAuthority;
 
@@ -112,13 +114,12 @@
         super.setUp();
 
         mResolver = new MockContentResolver2();
-        final String filenamePrefix = "test.";
         RenamingDelegatingContext targetContextWrapper = new
                 RenamingDelegatingContext(
                 new MockContext2(), // The context that most methods are
                                     //delegated to
                 getContext(), // The context that file methods are delegated to
-                filenamePrefix);
+                FILENAME_PREFIX);
         // The default IsolatedContext has a mock AccountManager that doesn't
         // work for us, so override getSystemService to always return null
         mProviderContext = new IsolatedContext(mResolver, targetContextWrapper) {