mirror of
https://github.com/MinimalBible/MinimalBible
synced 2024-11-22 07:58:20 -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/DEPENDENCIES'
|
||||||
exclude 'META-INF/LICENSE'
|
exclude 'META-INF/LICENSE'
|
||||||
exclude 'META-INF/NOTICE'
|
exclude 'META-INF/NOTICE'
|
||||||
|
exclude 'LICENSE.txt'
|
||||||
}
|
}
|
||||||
productFlavors {
|
productFlavors {
|
||||||
testConfig {
|
testConfig {
|
||||||
@ -50,19 +51,19 @@ android {
|
|||||||
dependencies {
|
dependencies {
|
||||||
compile project(path: ':jsword-minimalbible', configuration: 'buildJSword')
|
compile project(path: ':jsword-minimalbible', configuration: 'buildJSword')
|
||||||
|
|
||||||
compile 'com.squareup.dagger:dagger:1.2.1'
|
|
||||||
provided 'com.squareup.dagger:dagger-compiler: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'
|
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'
|
androidTestCompile 'com.jayway.awaitility:awaitility:1.6.0'
|
||||||
androidTestProvided 'com.squareup.dagger:dagger-compiler:1.2.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.+'
|
compile 'com.android.support:appcompat-v7:20.+'
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,8 @@
|
|||||||
package org.bspeice.minimalbible;
|
package org.bspeice.minimalbible;
|
||||||
|
|
||||||
import android.test.ActivityInstrumentationTestCase2;
|
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;
|
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.
|
* Created by Bradlee Speice on 7/5/2014.
|
||||||
*/
|
*/
|
||||||
@Module(injects = DownloadActivity.class,
|
@Module(injects = DownloadActivity.class,
|
||||||
overrides = true)
|
overrides = true,
|
||||||
|
complete = false,
|
||||||
|
library = true)
|
||||||
public class TestModules {
|
public class TestModules {
|
||||||
|
|
||||||
public static CharSequence testActivityTitle = "Test";
|
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