Initial commit for the re-code

This commit is contained in:
DjBushido
2014-07-04 21:16:52 -04:00
commit 0c383c088a
715 changed files with 10847 additions and 0 deletions

View File

@ -0,0 +1,19 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.bspeice.minimalbible">
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="20" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name="org.bspeice.minimalbible.test.MinimalBibleTest" >
</application>
</manifest>

View File

@ -0,0 +1,20 @@
package org.bspeice.minimalbible.test;
import org.bspeice.minimalbible.MinimalBible;
import org.bspeice.minimalbible.MinimalBibleModules;
import dagger.Module;
/**
* Master module for MinimalBible
*/
@Module(
injects = {
MinimalBible.class
},
includes = {
MinimalBibleModules.class
}
)
public class MinimalBibleModulesTest {
}

View File

@ -0,0 +1,75 @@
package org.bspeice.minimalbible.test;
import android.content.Context;
import org.bspeice.minimalbible.MinimalBible;
import dagger.ObjectGraph;
public class MinimalBibleTest extends MinimalBible {
/**
* The graph used by Dagger to track dependencies
*/
private ObjectGraph graph;
/**
* A singleton reference to the Application currently being run.
* Used mostly so we have a fixed point to get the App Context from
*/
private static MinimalBibleTest instance;
private String TAG = "MinimalBibleTest";
/**
* Create the application, and persist the application Context
*/
public MinimalBibleTest() {
instance = this;
}
/**
* Get the Application Context. Please note, all attempts to get the App Context should come
* through here, and please be sure that the Application won't satisfy what you need.
* @return The Application Context
*/
public static Context getAppContext() {
return instance;
}
/**
* Get the Application, rather than just the Application Context. You likely should be using
* this, rather than {@link #getAppContext()}
* @return The MinimalBible {@link android.app.Application} object
*/
public static MinimalBibleTest getApplication() {
return instance;
}
/**
* Create the {@link android.app.Application}. Responsible for building and
* holding on to the master ObjectGraph.
*/
@Override
public void onCreate() {
super.onCreate();
//TODO: Is this necessary?
inject(this);
}
/**
* Inject a Dagger object
* @param o The object to be injected
*/
@Override
public void inject(Object o) {
getObjGraph().inject(o);
}
public ObjectGraph getObjGraph() {
if (graph == null) {
graph = ObjectGraph.create(MinimalBibleModulesTest.class);
}
return graph;
}
}

View File

@ -0,0 +1,117 @@
package org.bspeice.minimalbible.test.activities.downloader;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.test.ActivityInstrumentationTestCase2;
import org.bspeice.minimalbible.MinimalBible;
import org.bspeice.minimalbible.activities.downloader.BookListFragment;
import org.bspeice.minimalbible.activities.downloader.DownloadActivity;
import org.bspeice.minimalbible.activities.downloader.DownloadPrefs;
import org.bspeice.minimalbible.test.MinimalBibleModulesTest;
import org.crosswire.jsword.book.BookCategory;
import java.util.concurrent.CountDownLatch;
import dagger.Module;
import de.devland.esperandro.Esperandro;
/**
* Created by bspeice on 6/23/14.
*/
public class BookListFragmentTest extends ActivityInstrumentationTestCase2<DownloadActivity> {
@Module(injects = TestDialogDisplayedIfFirstTimeFragment.class,
addsTo = MinimalBibleModulesTest.class
)
protected static class BookListFragmentTestModule{}
public BookListFragmentTest() {
super(DownloadActivity.class);
}
FragmentManager mFragmentManager;
public void setUp() throws Exception {
super.setUp();
mFragmentManager = getActivity().getSupportFragmentManager();
assertNotNull(mFragmentManager);
}
public <F extends Fragment> F startFragment(F fragment) {
try {
mFragmentManager.beginTransaction()
.replace(android.R.id.content, fragment)
.commit();
} catch (Exception e) {
e.printStackTrace();
}
final CountDownLatch signal = new CountDownLatch(1);
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
mFragmentManager.executePendingTransactions();
signal.countDown();
}
});
try {
signal.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
return (F)(mFragmentManager.findFragmentById(android.R.id.content));
}
protected class TestDialogDisplayedIfFirstTimeFragment extends BookListFragment {
/**
* If the refresh dialog is blank after calling display, it must be showing the warning
* @return Whether the warning dialog is showing
*/
public boolean callDisplayModules(DownloadPrefs prefs) {
// Inject the new preferences...
this.downloadPrefs = prefs;
displayModules();
return (refreshDialog == null);
}
public void setArgs(BookCategory c) {
Bundle args = new Bundle();
args.putString(ARG_BOOK_CATEGORY, c.toString());
this.setArguments(args);
}
}
public void testDialogDisplayedIfFirstTime() {
((MinimalBible)getActivity().getApplication()).plusObjGraph(BookListFragmentTestModule.class);
TestDialogDisplayedIfFirstTimeFragment f = new TestDialogDisplayedIfFirstTimeFragment();
f.setArgs(BookCategory.BIBLE);
startFragment(f);
DownloadPrefs prefs = Esperandro.getPreferences(DownloadPrefs.class, getActivity());
prefs.hasShownDownloadDialog(false);
assertNotNull(f);
assertTrue(f.callDisplayModules(Esperandro.getPreferences(DownloadPrefs.class, getActivity())));
}
public void testRefreshDisplayedAfterFirstTime() {
((MinimalBible)getActivity().getApplication()).plusObjGraph(BookListFragmentTestModule.class);
TestDialogDisplayedIfFirstTimeFragment f = new TestDialogDisplayedIfFirstTimeFragment();
f.setArgs(BookCategory.BIBLE);
startFragment(f);
DownloadPrefs prefs = Esperandro.getPreferences(DownloadPrefs.class, getActivity());
prefs.hasShownDownloadDialog(true);
assertNotNull(f);
assertFalse(f.callDisplayModules(Esperandro.getPreferences(DownloadPrefs.class, getActivity())));
}
}