Skip to content
This repository was archived by the owner on Oct 3, 2024. It is now read-only.

Commit 0bab2a0

Browse files
henriquenfariasamtstern
authored andcommitted
Add codecov support (#224)
1 parent 354d986 commit 0bab2a0

File tree

6 files changed

+55
-23
lines changed

6 files changed

+55
-23
lines changed

.travis.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ android:
2121
- tools
2222

2323
before_script: echo y | ${ANDROID_HOME}tools/bin/sdkmanager --channel=3 "tools" "platform-tools" "platforms;android-27"
24-
script: ./gradlew build
24+
script: ./gradlew build jacocoTestReport
2525

2626
after_failure:
2727
- cat app/build/reports/tests/testDebugUnitTest/index.html
28+
after_success:
29+
- bash <(curl -s https://codecov.io/bash)

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# EasyPermissions [![Build Status][1]][2] [![Android Weekly][3]][4]
1+
# EasyPermissions [![Build Status][1]][2] [![Code Coverage][3]][4] [![Android Weekly][5]][6]
22

33
EasyPermissions is a wrapper library to simplify basic system permissions logic when targeting
44
Android M or higher.
@@ -199,5 +199,7 @@ Rationale callbacks don't necessarily imply permission changes. To check for tho
199199

200200
[1]: https://travis-ci.org/googlesamples/easypermissions.svg?branch=master
201201
[2]: https://travis-ci.org/googlesamples/easypermissions
202-
[3]: https://img.shields.io/badge/Android%20Weekly-%23185-2CB3E5.svg?style=flat
203-
[4]: http://androidweekly.net/issues/issue-185
202+
[3]: https://codecov.io/gh/googlesamples/easypermissions/branch/master/graph/badge.sv
203+
[4]: https://codecov.io/gh/googlesamples/easypermissions
204+
[5]: https://img.shields.io/badge/Android%20Weekly-%23185-2CB3E5.svg?style=flat
205+
[6]: http://androidweekly.net/issues/issue-185

build.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ buildscript {
77
dependencies {
88
classpath 'com.android.tools.build:gradle:3.0.1'
99
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
10+
classpath 'com.dicedmelon.gradle:jacoco-android:0.1.3'
1011
}
1112
}
1213

easypermissions/build.gradle

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
apply plugin: 'com.android.library'
2+
apply plugin: 'jacoco-android'
23

34
android {
45
compileSdkVersion compileSdk
@@ -11,11 +12,20 @@ android {
1112
}
1213

1314
buildTypes {
15+
debug {
16+
testCoverageEnabled true
17+
}
1418
release {
1519
minifyEnabled false
1620
consumerProguardFiles 'proguard-rules.pro'
1721
}
1822
}
23+
24+
testOptions {
25+
unitTests {
26+
includeAndroidResources = true
27+
}
28+
}
1929
}
2030

2131
dependencies {
@@ -24,7 +34,13 @@ dependencies {
2434
api "com.android.support:support-fragment:$support_library_version"
2535

2636
testImplementation 'junit:junit:4.12'
27-
testImplementation 'org.robolectric:robolectric:3.5.1'
37+
testImplementation 'com.google.truth:truth:0.42'
38+
testImplementation 'org.robolectric:robolectric:3.8'
39+
}
40+
41+
// Needed in order to process Robolectric tests when running JaCoCo
42+
tasks.withType(Test) {
43+
jacoco.includeNoLocationClasses = true
2844
}
2945

3046
apply from: 'bintray.gradle'

easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsLowApiTest.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,19 @@
88
import org.robolectric.RuntimeEnvironment;
99
import org.robolectric.annotation.Config;
1010

11-
import static junit.framework.Assert.assertTrue;
11+
import static com.google.common.truth.Truth.assertThat;
1212

1313
/**
1414
* Low-API (SDK = 19) tests for {@link pub.devrel.easypermissions.EasyPermissions}.
1515
*/
1616
@RunWith(RobolectricTestRunner.class)
17-
@Config(constants = BuildConfig.class, sdk = 19)
17+
@Config(sdk = 19)
1818
public class EasyPermissionsLowApiTest {
19+
1920
@Test
20-
public void testHasPermissions() {
21+
public void shouldHavePermission_whenHasPermissionsBeforeMarshmallow() {
2122
// On low-API devices, we should always get 'true' when we call 'hasPermissions'
22-
assertTrue(EasyPermissions.hasPermissions(RuntimeEnvironment.application,
23-
Manifest.permission.ACCESS_COARSE_LOCATION));
23+
assertThat(EasyPermissions.hasPermissions(RuntimeEnvironment.application,
24+
Manifest.permission.ACCESS_COARSE_LOCATION)).isTrue();
2425
}
2526
}

easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsTest.java

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,40 +3,50 @@
33
import android.Manifest;
44
import android.app.Application;
55

6+
import org.junit.Before;
67
import org.junit.Test;
78
import org.junit.runner.RunWith;
89
import org.robolectric.RobolectricTestRunner;
910
import org.robolectric.RuntimeEnvironment;
1011
import org.robolectric.annotation.Config;
1112
import org.robolectric.shadows.ShadowApplication;
1213

13-
import static junit.framework.Assert.assertFalse;
14-
import static junit.framework.Assert.assertTrue;
14+
import static com.google.common.truth.Truth.assertThat;
1515

1616
/**
1717
* Basic Robolectric tests for {@link pub.devrel.easypermissions.EasyPermissions}.
1818
*/
1919
@RunWith(RobolectricTestRunner.class)
20-
@Config(constants = BuildConfig.class, sdk = 23)
20+
@Config(sdk = 23)
2121
public class EasyPermissionsTest {
22-
@Test
23-
public void testHasPermissions() {
24-
Application app = RuntimeEnvironment.application;
2522

26-
String[] perms = new String[]{
23+
private Application app;
24+
private String[] perms;
25+
26+
@Before
27+
public void setUp() {
28+
app = RuntimeEnvironment.application;
29+
perms = new String[]{
2730
Manifest.permission.READ_SMS,
2831
Manifest.permission.ACCESS_FINE_LOCATION
2932
};
33+
}
3034

31-
// Wes should not have permissions before any are granted
32-
assertFalse(EasyPermissions.hasPermissions(app, perms));
35+
@Test
36+
public void shouldNotHavePermissions_whenNoPermissionsGranted() {
37+
assertThat(EasyPermissions.hasPermissions(app, perms)).isFalse();
38+
}
3339

34-
// Granting one permission should not make the whole set appear granted
40+
41+
@Test
42+
public void shouldNotHavePermissions_whenNotAllPermissionsGranted() {
3543
ShadowApplication.getInstance().grantPermissions(perms[0]);
36-
assertFalse(EasyPermissions.hasPermissions(app, perms));
44+
assertThat(EasyPermissions.hasPermissions(app, perms)).isFalse();
45+
}
3746

38-
// Granting all permissions should make the whole set granted
47+
@Test
48+
public void shouldHavePermissions_whenAllPermissionsGranted() {
3949
ShadowApplication.getInstance().grantPermissions(perms);
40-
assertTrue(EasyPermissions.hasPermissions(app, perms));
50+
assertThat(EasyPermissions.hasPermissions(app, perms)).isTrue();
4151
}
4252
}

0 commit comments

Comments
 (0)