diff --git a/src/org/fdroid/fdroid/data/DBHelper.java b/src/org/fdroid/fdroid/data/DBHelper.java index feb323d91..c75fe67e9 100644 --- a/src/org/fdroid/fdroid/data/DBHelper.java +++ b/src/org/fdroid/fdroid/data/DBHelper.java @@ -177,55 +177,46 @@ public class DBHelper extends SQLiteOpenHelper { public void onCreate(SQLiteDatabase db) { createAppApk(db); - db.execSQL(CREATE_TABLE_REPO); - Resources ress = context.getResources(); + insertRepo( + db, + context.getString(R.string.default_repo_name1), + context.getString(R.string.default_repo_address1), + context.getString(R.string.default_repo_description1), + context.getString(R.string.default_repo_pubkey1), + context.getResources().getInteger(R.integer.default_repo_inuse1), + context.getResources().getInteger(R.integer.default_repo_priority1) + ); - int repoCount = ress.getInteger(R.integer.default_repo_count); - for (int i = 1; i <= repoCount; i++) { - ContentValues values = new ContentValues(); - String repoName = context.getString(ress.getIdentifier( - "default_repo_name" + i, - "string", - "org.fdroid.fdroid" - )); - values.put("address", - context.getString(ress.getIdentifier( - "default_repo_address" + i, - "string", - "org.fdroid.fdroid" - ))); - values.put("name",repoName); - values.put("description", - context.getString(ress.getIdentifier( - "default_repo_description" + i, - "string", - "org.fdroid.fdroid" - ))); - String pubkey = context.getString(ress.getIdentifier( - "default_repo_pubkey" + i, - "string", - "org.fdroid.fdroid" - )); - String fingerprint = Utils.calcFingerprint(pubkey); - values.put("pubkey", pubkey); - values.put("fingerprint", fingerprint); - values.put("maxage", 0); - values.put("inuse", ress.getInteger(ress.getIdentifier( - "default_repo_inuse" + i, - "integer", - "org.fdroid.fdroid" - ))); - values.put("priority", ress.getInteger(ress.getIdentifier( - "default_repo_priority" + i, - "integer", - "org.fdroid.fdroid" - ))); - values.put("lastetag", (String) null); - Log.i("FDroid", "Add repository " + repoName); - db.insert(TABLE_REPO, null, values); - } + insertRepo( + db, + context.getString(R.string.default_repo_name2), + context.getString(R.string.default_repo_address2), + context.getString(R.string.default_repo_description2), + context.getString(R.string.default_repo_pubkey2), + context.getResources().getInteger(R.integer.default_repo_inuse2), + context.getResources().getInteger(R.integer.default_repo_priority2) + ); + } + + private void insertRepo( + SQLiteDatabase db, String name, String address, String description, + String pubKey, int inUse, int priority) { + + ContentValues values = new ContentValues(); + values.put(RepoProvider.DataColumns.ADDRESS, address); + values.put(RepoProvider.DataColumns.NAME, name); + values.put(RepoProvider.DataColumns.DESCRIPTION, description); + values.put(RepoProvider.DataColumns.PUBLIC_KEY, pubKey); + values.put(RepoProvider.DataColumns.FINGERPRINT, Utils.calcFingerprint(pubKey)); + values.put(RepoProvider.DataColumns.MAX_AGE, 0); + values.put(RepoProvider.DataColumns.IN_USE, inUse); + values.put(RepoProvider.DataColumns.PRIORITY, priority); + values.put(RepoProvider.DataColumns.LAST_ETAG, (String)null); + + Log.i("FDroid", "Adding repository " + name); + db.insert(TABLE_REPO, null, values); } @Override diff --git a/test/src/mock/MockCategoryResources.java b/test/src/mock/MockCategoryResources.java index 669ddd1d0..2831049d8 100644 --- a/test/src/mock/MockCategoryResources.java +++ b/test/src/mock/MockCategoryResources.java @@ -1,9 +1,14 @@ package mock; +import android.content.Context; import android.test.mock.*; import org.fdroid.fdroid.*; -public class MockCategoryResources extends MockResources { +public class MockCategoryResources extends MockFDroidResources { + + public MockCategoryResources(Context getStringDelegatingContext) { + super(getStringDelegatingContext); + } @Override public String getString(int id) { diff --git a/test/src/mock/MockFDroidResources.java b/test/src/mock/MockFDroidResources.java new file mode 100644 index 000000000..c2b716d2f --- /dev/null +++ b/test/src/mock/MockFDroidResources.java @@ -0,0 +1,36 @@ +package mock; + +import android.content.Context; +import android.content.res.Resources; +import android.test.mock.*; +import org.fdroid.fdroid.*; + +public class MockFDroidResources extends MockResources { + + private Context getStringDelegatingContext; + + public MockFDroidResources(Context getStringDelegatingContext) { + this.getStringDelegatingContext = getStringDelegatingContext; + } + + @Override + public String getString(int id) { + return getStringDelegatingContext.getString(id); + } + + @Override + public int getInteger(int id) { + if (id == R.integer.default_repo_inuse1) { + return 1; + } else if (id == R.integer.default_repo_inuse2) { + return 0; + } else if (id == R.integer.default_repo_priority1) { + return 10; + } else if (id == R.integer.default_repo_priority2) { + return 20; + } else { + return 0; + } +} + +} diff --git a/test/src/org/fdroid/fdroid/AppProviderTest.java b/test/src/org/fdroid/fdroid/AppProviderTest.java index 80e19bd72..e36a32ba3 100644 --- a/test/src/org/fdroid/fdroid/AppProviderTest.java +++ b/test/src/org/fdroid/fdroid/AppProviderTest.java @@ -2,6 +2,7 @@ package org.fdroid.fdroid; import android.content.ContentResolver; import android.content.ContentValues; +import android.content.res.Resources; import android.database.Cursor; import mock.MockCategoryResources; @@ -24,7 +25,12 @@ public class AppProviderTest extends FDroidProviderTest { @Override public void setUp() throws Exception { super.setUp(); - getSwappableContext().setResources(new MockCategoryResources()); + getSwappableContext().setResources(new MockCategoryResources(getContext())); + } + + @Override + protected Resources getMockResources() { + return new MockCategoryResources(getContext()); } @Override diff --git a/test/src/org/fdroid/fdroid/FDroidProviderTest.java b/test/src/org/fdroid/fdroid/FDroidProviderTest.java index 7a4c4a6d6..a2b4a8a18 100644 --- a/test/src/org/fdroid/fdroid/FDroidProviderTest.java +++ b/test/src/org/fdroid/fdroid/FDroidProviderTest.java @@ -3,13 +3,16 @@ package org.fdroid.fdroid; import android.annotation.TargetApi; import android.content.ContentValues; import android.content.Context; +import android.content.res.Resources; import android.database.Cursor; import android.net.Uri; import android.os.Build; import android.provider.ContactsContract; import android.test.ProviderTestCase2MockContext; +import mock.MockCategoryResources; import mock.MockContextEmptyComponents; import mock.MockContextSwappableComponents; +import mock.MockFDroidResources; import org.fdroid.fdroid.data.FDroidProvider; import org.fdroid.fdroid.mock.MockInstalledApkCache; @@ -23,10 +26,15 @@ public abstract class FDroidProviderTest extends Provi super(providerClass, providerAuthority); } + protected Resources getMockResources() { + return new MockFDroidResources(getContext()); + } + @Override public void setUp() throws Exception { super.setUp(); Utils.setupInstalledApkCache(new MockInstalledApkCache()); + getSwappableContext().setResources(getMockResources()); // The *Provider.Helper.* functions tend to take a Context as their // first parameter. This context is used to connect to the relevant @@ -34,6 +42,7 @@ public abstract class FDroidProviderTest extends Provi // to the mock content resolver, in order to reach the provider // under test. getSwappableContext().setContentResolver(getMockContentResolver()); + } @TargetApi(Build.VERSION_CODES.ECLAIR)