Bug 949208 - Don't use reflection to get database name in robocop tests. r=wesj

This commit is contained in:
Margaret Leibovic 2013-12-16 16:18:56 -08:00
parent 791db7ece0
commit 8b8147ed57
7 changed files with 11 additions and 36 deletions

View File

@ -21,7 +21,6 @@ import org.mozilla.gecko.db.BrowserContract.Thumbnails;
import org.mozilla.gecko.db.BrowserContract.URLColumns;
import org.mozilla.gecko.db.PerProfileDatabases.DatabaseHelperFactory;
import org.mozilla.gecko.gfx.BitmapUtils;
import org.mozilla.gecko.mozglue.RobocopTarget;
import org.mozilla.gecko.sync.Utils;
import org.mozilla.gecko.util.GeckoJarReader;
import org.mozilla.gecko.util.ThreadUtils;
@ -1954,11 +1953,6 @@ public class BrowserProvider extends ContentProvider {
}
}
@RobocopTarget
public String getDatabasePath(String profile, boolean isTest) {
return mDatabases.getDatabasePathForProfile(profile, isTest);
}
private SQLiteDatabase getReadableDatabase(Uri uri) {
trace("Getting readable database for URI: " + uri);

View File

@ -35,14 +35,6 @@ public class PerProfileDatabases<T extends SQLiteOpenHelper> {
}
public String getDatabasePathForProfile(String profile) {
return getDatabasePathForProfile(profile, false);
}
public String getDatabasePathForProfile(String profile, boolean isTest) {
if (isTest) {
return mDatabaseName;
}
final File profileDir = GeckoProfile.get(mContext, profile).getDir();
if (profileDir == null) {
return null;
@ -66,7 +58,7 @@ public class PerProfileDatabases<T extends SQLiteOpenHelper> {
return mStorages.get(profile);
}
final String databasePath = getDatabasePathForProfile(profile, isTest);
final String databasePath = isTest ? mDatabaseName : getDatabasePathForProfile(profile);
if (databasePath == null) {
throw new IllegalStateException("Database path is null for profile: " + profile);
}

View File

@ -13,7 +13,6 @@ import org.mozilla.gecko.GeckoProfile;
import org.mozilla.gecko.db.BrowserContract.Clients;
import org.mozilla.gecko.db.BrowserContract.Tabs;
import org.mozilla.gecko.db.PerProfileDatabases.DatabaseHelperFactory;
import org.mozilla.gecko.mozglue.RobocopTarget;
import android.content.ContentProvider;
import android.content.ContentUris;
@ -208,11 +207,6 @@ public class TabsProvider extends ContentProvider {
}
}
@RobocopTarget
private String getDatabasePath(String profile) {
return mDatabases.getDatabasePathForProfile(profile);
}
private SQLiteDatabase getReadableDatabase(Uri uri) {
trace("Getting readable database for URI: " + uri);

View File

@ -47,6 +47,7 @@ abstract class ContentProviderTest extends BaseTest {
protected ChangeRecordingMockContentResolver mResolver;
protected ClassLoader mClassLoader;
protected ArrayList<Runnable> mTests;
protected String mDatabaseName;
protected Class mProviderClass;
protected Class mProviderContract;
protected String mProviderAuthority;
@ -228,15 +229,16 @@ abstract class ContentProviderTest extends BaseTest {
@Override
public void setUp() throws Exception {
throw new Exception("You should call setUp(providerClassName, authorityUriField) instead");
throw new Exception("You should call setUp(providerClassName, authorityUriField, databaseName) instead");
}
// TODO: Take the actual class as an arg.
public void setUp(String providerClassName, String authorityUriField) throws Exception {
public void setUp(String providerClassName, String authorityUriField, String databaseName) throws Exception {
super.setUp();
mClassLoader = getInstrumentation().getContext().getClassLoader();
mTests = new ArrayList<Runnable>();
mDatabaseName = databaseName;
setUpProviderClassAndAuthority(providerClassName, authorityUriField);
setUpContentProvider();
@ -248,16 +250,9 @@ abstract class ContentProviderTest extends BaseTest {
mProvider.shutdown();
}
String databaseName = null;
Method getDatabasePath =
mProviderClass.getDeclaredMethod("getDatabasePath", String.class, boolean.class);
String defaultProfile = "default";
ContentProvider targetProvider = (ContentProvider) mProviderClass.newInstance();
databaseName = (String) getDatabasePath.invoke(targetProvider, defaultProfile, true /* is test */);
if (databaseName != null)
mProviderContext.deleteDatabase(databaseName);
if (mDatabaseName != null) {
mProviderContext.deleteDatabase(mDatabaseName);
}
super.tearDown();
}

View File

@ -323,7 +323,7 @@ public class testBrowserProvider extends ContentProviderTest {
@Override
public void setUp() throws Exception {
super.setUp("org.mozilla.gecko.db.BrowserProvider", "AUTHORITY");
super.setUp("org.mozilla.gecko.db.BrowserProvider", "AUTHORITY", "browser.db");
loadContractInfo();
mTests.add(new TestSpecialFolders());

View File

@ -233,7 +233,7 @@ public class testBrowserProviderPerf extends ContentProviderTest {
@Override
public void setUp() throws Exception {
super.setUp("org.mozilla.gecko.db.BrowserProvider", "AUTHORITY");
super.setUp("org.mozilla.gecko.db.BrowserProvider", "AUTHORITY", "browser.db");
mGenerator = new Random(19580427);

View File

@ -303,7 +303,7 @@ public class testDistribution extends ContentProviderTest {
@Override
public void setUp() throws Exception {
// TODO: Set up the content provider after setting the distribution.
super.setUp("org.mozilla.gecko.db.BrowserProvider", "AUTHORITY");
super.setUp("org.mozilla.gecko.db.BrowserProvider", "AUTHORITY", "browser.db");
}
private void delete(File file) throws Exception {