Revert "Remove the build flavors"

This reverts commit c38dad605a.
robolectric-error
Bradlee Speice 2014-11-06 19:57:13 -05:00
parent dc9700e268
commit 72f375ff9f
15 changed files with 112 additions and 24 deletions

View File

@ -42,6 +42,18 @@ android {
exclude 'NOTICE'
exclude 'asm-license.txt'
}
productFlavors {
testConfig {
minSdkVersion 8
applicationId 'org.bspeice.minimalbible'
targetSdkVersion 20
}
mainConfig {
minSdkVersion 8
applicationId 'org.bspeice.minimalbible'
targetSdkVersion 20
}
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
@ -71,7 +83,7 @@ dependencies {
androidTestCompile 'com.google.dexmaker:dexmaker-mockito:+'
// Email debug reports if I crash...
debugCompile('ch.acra:acra:+') {
testConfigCompile('ch.acra:acra:+') {
exclude module: 'json'
}
}

View File

@ -2,7 +2,17 @@ package org.bspeice.minimalbible.test.activity.viewer;
import android.test.ActivityInstrumentationTestCase2;
import org.bspeice.minimalbible.Modules;
import org.bspeice.minimalbible.activity.viewer.BibleViewer;
import org.bspeice.minimalbible.service.manager.BookManager;
import org.crosswire.jsword.book.Book;
import java.util.ArrayList;
import rx.Observable;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class BibleViewerTest extends ActivityInstrumentationTestCase2<BibleViewer> {
@ -19,10 +29,7 @@ public class BibleViewerTest extends ActivityInstrumentationTestCase2<BibleViewe
/**
* It may happen to be the case that we start and there are no installed books.
* This likely triggers a runtime exception from Rx, and is no excuse for dying.
*
* Test disabled until I can get some refactoring done
*/
/*
public void testInitializationNoInstalledBooks() {
BookManager mockBookManager = mock(BookManager.class);
when(mockBookManager.getInstalledBooks()).thenReturn(
@ -31,5 +38,5 @@ public class BibleViewerTest extends ActivityInstrumentationTestCase2<BibleViewe
assertNotNull(getActivity());
}
*/
}

View File

@ -0,0 +1,14 @@
package org.bspeice.minimalbible;
/**
* List modules used by default MinimalBible configuration
*/
public class Modules {
private Modules() {}
public static Object[] list(MinimalBible app) {
return new Object[] {
new MinimalBibleModules(app)
};
}
}

View File

@ -1,9 +1,10 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android" >
<application>
<activity
android:name="org.bspeice.minimalbible.test.activity.FragmentTestActivity"
android:label="@string/title_activity_fragment_test" />
<activity android:name="org.bspeice.minimalbible.test.activity.FragmentTestActivity"
android:label="@string/title_activity_fragment_test"
>
</activity>
</application>
</manifest>

View File

@ -1,5 +1,6 @@
package org.bspeice.minimalbible;
import android.app.Application;
import android.content.Context;
import android.util.Log;
@ -19,13 +20,12 @@ import dagger.ObjectGraph;
mailTo = "bspeice.nc@gmail.com",
mode = ReportingInteractionMode.SILENT
)
@SuppressWarnings("unused")
public class MinimalBibleTest extends MinimalBible implements Injector {
public class MinimalBible extends Application implements Injector {
private String TAG = "MinimalBible";
private ObjectGraph mObjectGraph;
public static MinimalBibleTest get(Context ctx) {
return (MinimalBibleTest) ctx.getApplicationContext();
public static MinimalBible get(Context ctx) {
return (MinimalBible) ctx.getApplicationContext();
}
@Override

View File

@ -6,12 +6,14 @@ package org.bspeice.minimalbible;
*/
public class Modules {
private Modules() {
}
public static TestModules testModules = new TestModules();
private Modules() {}
public static Object[] list(MinimalBible app) {
return new Object[]{
return new Object[] {
new MinimalBibleModules(app),
testModules
};
}
}

View File

@ -0,0 +1,54 @@
package org.bspeice.minimalbible;
import org.bspeice.minimalbible.activity.downloader.DownloadActivity;
import org.bspeice.minimalbible.service.manager.BookManager;
import org.crosswire.jsword.book.BookCategory;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Named;
import javax.inject.Singleton;
import dagger.Module;
import dagger.Provides;
/**
* Created by Bradlee Speice on 7/5/2014.
*/
@Module(injects = DownloadActivity.class,
overrides = true,
library = true)
public class TestModules {
public static CharSequence testActivityTitle = "Test";
private BookManager bookManager;
@Provides
CharSequence provideString() {
return testActivityTitle;
}
@Provides
@Singleton
@Named("ValidCategories")
List<BookCategory> provideValidCategories() {
return new ArrayList<BookCategory>() {{
add(BookCategory.BIBLE);
add(BookCategory.COMMENTARY);
add(BookCategory.DICTIONARY);
add(BookCategory.MAPS);
}};
}
public void setBookManager(BookManager bookManager) {
this.bookManager = bookManager;
}
@Provides
@Singleton
BookManager provideBookManager() {
return bookManager;
}
}

View File

@ -30,7 +30,6 @@ public class FragmentTestActivity extends ActionBarActivity {
}
@Override
@SuppressWarnings("all") // Leave the if-statement verbose
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long

View File

@ -1,10 +1,9 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="org.bspeice.minimalbible.test.activity.FragmentTestActivity">
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
tools:context="org.bspeice.minimalbible.test.activity.FragmentTestActivity" >
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
</menu>

View File

@ -1,5 +1,5 @@
<resources>
<string name="title_activity_fragment_test">FragmentTestActivity</string>
<string name="title_activity_fragment_test">FragmentTestActivity</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
</resources>

View File

@ -1,6 +1,6 @@
#Thu Oct 30 00:28:22 EDT 2014
#Wed Oct 22 20:42:04 EDT 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-1.12-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-1.12-bin.zip