mirror of
https://github.com/MinimalBible/MinimalBible
synced 2024-12-22 14:48:23 -05:00
Add code to do Fragment instrumentation tests
This commit is contained in:
parent
9548bb50ef
commit
cf7bc7c139
@ -32,6 +32,7 @@ android {
|
||||
exclude 'META-INF/DEPENDENCIES'
|
||||
exclude 'META-INF/LICENSE'
|
||||
exclude 'META-INF/NOTICE'
|
||||
exclude 'LICENSE.txt'
|
||||
}
|
||||
productFlavors {
|
||||
testConfig {
|
||||
@ -50,19 +51,19 @@ android {
|
||||
dependencies {
|
||||
compile project(path: ':jsword-minimalbible', configuration: 'buildJSword')
|
||||
|
||||
compile 'com.squareup.dagger:dagger:1.2.1'
|
||||
provided 'com.squareup.dagger:dagger-compiler:1.2.1'
|
||||
|
||||
compile 'com.jakewharton:butterknife:5.0.1'
|
||||
|
||||
compile 'de.devland.esperandro:esperandro-api:1.1.2'
|
||||
provided 'de.devland.esperandro:esperandro:1.1.2'
|
||||
|
||||
compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
|
||||
compile 'com.netflix.rxjava:rxjava-android:0.19.0'
|
||||
|
||||
androidTestCompile 'com.jayway.awaitility:awaitility:1.6.0'
|
||||
androidTestProvided 'com.squareup.dagger:dagger-compiler:1.2.0'
|
||||
|
||||
compile 'com.squareup.dagger:dagger:1.2.1'
|
||||
compile 'com.jakewharton:butterknife:5.0.1'
|
||||
compile 'de.devland.esperandro:esperandro-api:1.1.2'
|
||||
compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
|
||||
compile 'com.netflix.rxjava:rxjava-android:0.19.0'
|
||||
compile 'com.android.support:appcompat-v7:20.+'
|
||||
}
|
||||
|
@ -1,9 +1,8 @@
|
||||
package org.bspeice.minimalbible;
|
||||
|
||||
import android.test.ActivityInstrumentationTestCase2;
|
||||
import android.util.Log;
|
||||
|
||||
import org.bspeice.minimalbible.activity.download.DownloadActivity;
|
||||
import org.bspeice.minimalbible.activity.downloader.DownloadActivity;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
|
10
app/src/testConfig/AndroidManifest.xml
Normal file
10
app/src/testConfig/AndroidManifest.xml
Normal file
@ -0,0 +1,10 @@
|
||||
<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>
|
||||
</application>
|
||||
|
||||
</manifest>
|
@ -0,0 +1,40 @@
|
||||
package org.bspeice.minimalbible;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.test.ActivityInstrumentationTestCase2;
|
||||
|
||||
import org.bspeice.minimalbible.test.activity.FragmentTestActivity;
|
||||
|
||||
/**
|
||||
* Created by bspeice on 7/9/14.
|
||||
*/
|
||||
public class FragmentTestActivityTest extends ActivityInstrumentationTestCase2<FragmentTestActivity> {
|
||||
|
||||
public FragmentTestActivityTest() {
|
||||
super(FragmentTestActivity.class);
|
||||
}
|
||||
|
||||
public void testCanStartFragmentTestActivity() {
|
||||
assertNotNull(getActivity());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test that a Fragment is created properly in our TestCase for testing.
|
||||
*/
|
||||
public static class ValidFragmentTest extends Fragment {
|
||||
public final static String FIELD_SHOULD_BE = "FIELD SHOULD HAVE THIS VALUE";
|
||||
public String actualField;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
this.actualField = FIELD_SHOULD_BE;
|
||||
}
|
||||
}
|
||||
public void testValidFragment() {
|
||||
ValidFragmentTest f = new ValidFragmentTest();
|
||||
getActivity().startFragment(f);
|
||||
assertEquals(ValidFragmentTest.FIELD_SHOULD_BE, f.actualField);
|
||||
}
|
||||
}
|
@ -12,7 +12,9 @@ import dagger.Provides;
|
||||
* Created by Bradlee Speice on 7/5/2014.
|
||||
*/
|
||||
@Module(injects = DownloadActivity.class,
|
||||
overrides = true)
|
||||
overrides = true,
|
||||
complete = false,
|
||||
library = true)
|
||||
public class TestModules {
|
||||
|
||||
public static CharSequence testActivityTitle = "Test";
|
||||
|
@ -0,0 +1,72 @@
|
||||
package org.bspeice.minimalbible.test.activity;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.app.ActionBar;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.os.Build;
|
||||
|
||||
import org.bspeice.minimalbible.R;
|
||||
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
|
||||
public class FragmentTestActivity extends ActionBarActivity {
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_fragment_test);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
// Inflate the menu; this adds items to the action bar if it is present.
|
||||
getMenuInflater().inflate(R.menu.fragment_test, menu);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
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
|
||||
// as you specify a parent activity in AndroidManifest.xml.
|
||||
int id = item.getItemId();
|
||||
if (id == R.id.action_settings) {
|
||||
return true;
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
public void startFragment(Fragment f) {
|
||||
final FragmentManager fragmentManager = getSupportFragmentManager();
|
||||
|
||||
fragmentManager.beginTransaction()
|
||||
.add(R.id.container, f)
|
||||
.commit();
|
||||
|
||||
// Do the ugly work of waiting for the transaction to complete...
|
||||
final CountDownLatch signal = new CountDownLatch(1);
|
||||
|
||||
new Handler(Looper.getMainLooper()).post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
fragmentManager.executePendingTransactions();
|
||||
signal.countDown();
|
||||
}
|
||||
});
|
||||
try {
|
||||
signal.await();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
7
app/src/testConfig/res/layout/activity_fragment_test.xml
Normal file
7
app/src/testConfig/res/layout/activity_fragment_test.xml
Normal file
@ -0,0 +1,7 @@
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="org.bspeice.minimalbible.test.activity.FragmentTestActivity"
|
||||
tools:ignore="MergeRootFrame" />
|
9
app/src/testConfig/res/menu/fragment_test.xml
Normal file
9
app/src/testConfig/res/menu/fragment_test.xml
Normal file
@ -0,0 +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:title="@string/action_settings"
|
||||
android:orderInCategory="100"
|
||||
app:showAsAction="never" />
|
||||
</menu>
|
6
app/src/testConfig/res/values-w820dp/dimens.xml
Normal file
6
app/src/testConfig/res/values-w820dp/dimens.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<resources>
|
||||
<!-- Example customization of dimensions originally defined in res/values/dimens.xml
|
||||
(such as screen margins) for screens with more than 820dp of available width. This
|
||||
would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
|
||||
<dimen name="activity_horizontal_margin">64dp</dimen>
|
||||
</resources>
|
5
app/src/testConfig/res/values/dimens.xml
Normal file
5
app/src/testConfig/res/values/dimens.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<resources>
|
||||
<!-- Default screen margins, per the Android Design guidelines. -->
|
||||
<dimen name="activity_horizontal_margin">16dp</dimen>
|
||||
<dimen name="activity_vertical_margin">16dp</dimen>
|
||||
</resources>
|
5
app/src/testConfig/res/values/strings.xml
Normal file
5
app/src/testConfig/res/values/strings.xml
Normal file
@ -0,0 +1,5 @@
|
||||
<resources>
|
||||
<string name="title_activity_fragment_test">FragmentTestActivity</string>
|
||||
<string name="hello_world">Hello world!</string>
|
||||
<string name="action_settings">Settings</string>
|
||||
</resources>
|
Loading…
Reference in New Issue
Block a user