Send crash reports
This commit is contained in:
parent
b2a1ba777d
commit
c3b65d286f
@ -67,6 +67,7 @@ dependencies {
|
|||||||
compile 'com.jakewharton:butterknife:7.0.1'
|
compile 'com.jakewharton:butterknife:7.0.1'
|
||||||
compile 'com.jakewharton.timber:timber:3.1.0'
|
compile 'com.jakewharton.timber:timber:3.1.0'
|
||||||
compile 'uk.co.ribot:easyadapter:1.5.0@aar'
|
compile 'uk.co.ribot:easyadapter:1.5.0@aar'
|
||||||
|
compile 'ch.acra:acra:4.6.2'
|
||||||
|
|
||||||
compile "com.google.dagger:dagger:$DAGGER_VERSION"
|
compile "com.google.dagger:dagger:$DAGGER_VERSION"
|
||||||
apt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
|
apt "com.google.dagger:dagger-compiler:$DAGGER_VERSION"
|
||||||
|
@ -3,8 +3,19 @@ package eu.kanade.mangafeed;
|
|||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
|
import org.acra.ACRA;
|
||||||
|
import org.acra.ReportingInteractionMode;
|
||||||
|
import org.acra.annotation.ReportsCrashes;
|
||||||
|
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
||||||
|
@ReportsCrashes(
|
||||||
|
formUri = "http://couch.kanade.eu/acra-manga/_design/acra-storage/_update/report",
|
||||||
|
reportType = org.acra.sender.HttpSender.Type.JSON,
|
||||||
|
httpMethod = org.acra.sender.HttpSender.Method.PUT,
|
||||||
|
formUriBasicAuthLogin="test",
|
||||||
|
formUriBasicAuthPassword="test"
|
||||||
|
)
|
||||||
public class App extends Application {
|
public class App extends Application {
|
||||||
|
|
||||||
AppComponent mApplicationComponent;
|
AppComponent mApplicationComponent;
|
||||||
@ -17,6 +28,8 @@ public class App extends Application {
|
|||||||
mApplicationComponent = DaggerAppComponent.builder()
|
mApplicationComponent = DaggerAppComponent.builder()
|
||||||
.appModule(new AppModule(this))
|
.appModule(new AppModule(this))
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
ACRA.init(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static App get(Context context) {
|
public static App get(Context context) {
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
package eu.kanade.mangafeed;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.robolectric.RobolectricGradleTestRunner;
|
||||||
|
import org.robolectric.RobolectricTestRunner;
|
||||||
|
import org.robolectric.annotation.Config;
|
||||||
|
|
||||||
|
|
||||||
|
import static org.robolectric.util.FragmentTestUtil.startFragment;
|
||||||
|
import static org.junit.Assert.assertNotNull;
|
||||||
|
|
||||||
|
import eu.kanade.mangafeed.BuildConfig;
|
||||||
|
import eu.kanade.mangafeed.ui.fragment.LibraryFragment;
|
||||||
|
import eu.kanade.mangafeed.util.DefaultConfig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by len on 1/10/15.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@RunWith(RobolectricGradleTestRunner.class)
|
||||||
|
@Config(constants = BuildConfig.class, sdk = DefaultConfig.EMULATE_SDK)
|
||||||
|
public class LibraryFragmentTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void mangaList_shouldNotBeEmpty() {
|
||||||
|
LibraryFragment fragment = LibraryFragment.newInstance();
|
||||||
|
startFragment(fragment);
|
||||||
|
assertNotNull(fragment);
|
||||||
|
}
|
||||||
|
}
|
40
app/src/test/java/eu/kanade/mangafeed/MainActivityTest.java
Normal file
40
app/src/test/java/eu/kanade/mangafeed/MainActivityTest.java
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
package eu.kanade.mangafeed;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by len on 1/10/15.
|
||||||
|
*/
|
||||||
|
import android.os.Build;
|
||||||
|
import android.support.v7.widget.Toolbar;
|
||||||
|
|
||||||
|
import org.junit.Before;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
import org.robolectric.Robolectric;
|
||||||
|
import org.robolectric.RobolectricGradleTestRunner;
|
||||||
|
import org.robolectric.annotation.Config;
|
||||||
|
|
||||||
|
import eu.kanade.mangafeed.ui.activity.MainActivity;
|
||||||
|
|
||||||
|
import static junit.framework.Assert.assertNotNull;
|
||||||
|
import static junit.framework.Assert.assertTrue;
|
||||||
|
|
||||||
|
@Config(constants = BuildConfig.class, sdk = Build.VERSION_CODES.LOLLIPOP)
|
||||||
|
@RunWith(RobolectricGradleTestRunner.class)
|
||||||
|
public class MainActivityTest {
|
||||||
|
private MainActivity activity;
|
||||||
|
|
||||||
|
// @Before => JUnit 4 annotation that specifies this method should run before each test is run
|
||||||
|
// Useful to do setup for objects that are needed in the test
|
||||||
|
@Before
|
||||||
|
public void setup() {
|
||||||
|
// Convenience method to run MainActivity through the Activity Lifecycle methods:
|
||||||
|
// onCreate(...) => onStart() => onPostCreate(...) => onResume()
|
||||||
|
activity = Robolectric.setupActivity(MainActivity.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void validate() {
|
||||||
|
Toolbar toolbar = (Toolbar)activity.findViewById(R.id.toolbar);
|
||||||
|
assertNotNull(toolbar);
|
||||||
|
}
|
||||||
|
}
|
16
app/src/test/java/eu/kanade/mangafeed/UseModule.java
Normal file
16
app/src/test/java/eu/kanade/mangafeed/UseModule.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package eu.kanade.mangafeed;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by len on 1/10/15.
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Target(ElementType.TYPE)
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
public @interface UseModule {
|
||||||
|
Class value();
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user