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

Commit 05ea21f

Browse files
committed
Add very basic Robolectric tests
1 parent 1eb301d commit 05ea21f

File tree

3 files changed

+104
-0
lines changed

3 files changed

+104
-0
lines changed

app/build.gradle

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ android {
1010
targetSdkVersion targetSdk
1111
versionCode 1
1212
versionName "1.0"
13+
14+
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
1315
}
1416

1517
buildTypes {
@@ -24,4 +26,7 @@ dependencies {
2426
compile "com.android.support:appcompat-v7:$support_library_version"
2527

2628
compile project(':easypermissions')
29+
30+
testCompile 'junit:junit:4.12'
31+
testCompile 'org.robolectric:robolectric:3.3.2'
2732
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package pub.devrel.easypermissions.sample;
2+
3+
import android.Manifest;
4+
import android.content.Context;
5+
6+
import org.junit.Before;
7+
import org.junit.Test;
8+
import org.junit.runner.RunWith;
9+
import org.robolectric.Robolectric;
10+
import org.robolectric.RobolectricTestRunner;
11+
import org.robolectric.Shadows;
12+
import org.robolectric.annotation.Config;
13+
import org.robolectric.shadows.ShadowApplication;
14+
15+
import pub.devrel.easypermissions.EasyPermissions;
16+
17+
import static junit.framework.Assert.assertTrue;
18+
19+
/**
20+
* Low-API (SDK = 19) tests for {@link pub.devrel.easypermissions.EasyPermissions}.
21+
*/
22+
@RunWith(RobolectricTestRunner.class)
23+
@Config(constants = BuildConfig.class, sdk = 19)
24+
public class EasyPermissionsLowApiTest {
25+
26+
private MainActivity mActivity;
27+
private ShadowApplication mApplication;
28+
29+
@Before
30+
public void setup() {
31+
mActivity = Robolectric.buildActivity(MainActivity.class).get();
32+
mApplication = Shadows.shadowOf(mActivity.getApplication());
33+
}
34+
35+
@Test
36+
public void testHasPermissions() {
37+
Context context = mApplication.getApplicationContext();
38+
39+
// On low-API devices, we should always get 'true' when we call 'hasPermissions'
40+
assertTrue(EasyPermissions.hasPermissions(context,
41+
Manifest.permission.ACCESS_COARSE_LOCATION));
42+
}
43+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package pub.devrel.easypermissions.sample;
2+
3+
import android.Manifest;
4+
import android.content.Context;
5+
6+
import org.junit.Before;
7+
import org.junit.Test;
8+
import org.junit.runner.RunWith;
9+
import org.robolectric.Robolectric;
10+
import org.robolectric.RobolectricTestRunner;
11+
import org.robolectric.Shadows;
12+
import org.robolectric.annotation.Config;
13+
import org.robolectric.shadows.ShadowApplication;
14+
15+
import pub.devrel.easypermissions.EasyPermissions;
16+
17+
import static junit.framework.Assert.assertFalse;
18+
import static junit.framework.Assert.assertTrue;
19+
20+
/**
21+
* Basic Robolectric tests for {@link pub.devrel.easypermissions.EasyPermissions}.
22+
*/
23+
@RunWith(RobolectricTestRunner.class)
24+
@Config(constants = BuildConfig.class, sdk = 23)
25+
public class EasyPermissionsTest {
26+
27+
private MainActivity mActivity;
28+
private ShadowApplication mApplication;
29+
30+
@Before
31+
public void setup() {
32+
mActivity = Robolectric.buildActivity(MainActivity.class).get();
33+
mApplication = Shadows.shadowOf(mActivity.getApplication());
34+
}
35+
36+
@Test
37+
public void testHasPermissions() {
38+
Context context = mApplication.getApplicationContext();
39+
40+
String[] perms = new String[]{
41+
Manifest.permission.READ_SMS,
42+
Manifest.permission.ACCESS_FINE_LOCATION
43+
};
44+
45+
// Wes should not have permissions before any are granted
46+
assertFalse(EasyPermissions.hasPermissions(context, perms));
47+
48+
// Granting one permission should not make the whole set appear granted
49+
mApplication.grantPermissions(perms[0]);
50+
assertFalse(EasyPermissions.hasPermissions(context, perms));
51+
52+
// Granting all permissions should make the whole set granted
53+
mApplication.grantPermissions(perms);
54+
assertTrue(EasyPermissions.hasPermissions(context, perms));
55+
}
56+
}

0 commit comments

Comments
 (0)