From f7958cb6cacb4b2c9c5899be9143bc0d541617f6 Mon Sep 17 00:00:00 2001 From: Ilya Tsymbal Date: Wed, 11 Apr 2018 11:41:28 -0400 Subject: [PATCH] Created a test for permissionPermanentlyDenied --- easypermissions/build.gradle | 5 +++++ .../easypermissions/EasyPermissionsTest.java | 18 +++++++++++++++++- .../devrel/easypermissions/TestActivity.java | 10 ++++++++++ .../easypermissions/TestApplication.java | 16 ++++++++++++++++ 4 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 easypermissions/src/test/java/pub/devrel/easypermissions/TestActivity.java create mode 100644 easypermissions/src/test/java/pub/devrel/easypermissions/TestApplication.java diff --git a/easypermissions/build.gradle b/easypermissions/build.gradle index 73731e5..86f4d95 100644 --- a/easypermissions/build.gradle +++ b/easypermissions/build.gradle @@ -16,6 +16,11 @@ android { consumerProguardFiles 'proguard-rules.pro' } } + testOptions { + unitTests { + includeAndroidResources = true + } + } } dependencies { diff --git a/easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsTest.java b/easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsTest.java index 8d4c20d..c6a5bf5 100644 --- a/easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsTest.java +++ b/easypermissions/src/test/java/pub/devrel/easypermissions/EasyPermissionsTest.java @@ -3,8 +3,10 @@ import android.Manifest; import android.app.Application; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import org.robolectric.Robolectric; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @@ -17,8 +19,16 @@ * Basic Robolectric tests for {@link pub.devrel.easypermissions.EasyPermissions}. */ @RunWith(RobolectricTestRunner.class) -@Config(constants = BuildConfig.class, sdk = 23) +@Config(application = TestApplication.class, constants = BuildConfig.class, sdk = 23) public class EasyPermissionsTest { + + private TestActivity activity; + + @Before + public void setUp() { + activity = Robolectric.setupActivity(TestActivity.class); + } + @Test public void testHasPermissions() { Application app = RuntimeEnvironment.application; @@ -39,4 +49,10 @@ public void testHasPermissions() { ShadowApplication.getInstance().grantPermissions(perms); assertTrue(EasyPermissions.hasPermissions(app, perms)); } + + @Test + public void testPermissionPermanentlyDenied() { + String perm = Manifest.permission.READ_SMS; + assertFalse(EasyPermissions.permissionPermanentlyDenied(activity, perm)); + } } diff --git a/easypermissions/src/test/java/pub/devrel/easypermissions/TestActivity.java b/easypermissions/src/test/java/pub/devrel/easypermissions/TestActivity.java new file mode 100644 index 0000000..e7a8464 --- /dev/null +++ b/easypermissions/src/test/java/pub/devrel/easypermissions/TestActivity.java @@ -0,0 +1,10 @@ +package pub.devrel.easypermissions; + +import android.support.v7.app.AppCompatActivity; + +/** + * Activity to be used within tests. Some tests (e.g. {@link EasyPermissionsTest)} require an + * Activity as a parameter. + */ +class TestActivity extends AppCompatActivity { +} diff --git a/easypermissions/src/test/java/pub/devrel/easypermissions/TestApplication.java b/easypermissions/src/test/java/pub/devrel/easypermissions/TestApplication.java new file mode 100644 index 0000000..e86c4d4 --- /dev/null +++ b/easypermissions/src/test/java/pub/devrel/easypermissions/TestApplication.java @@ -0,0 +1,16 @@ +package pub.devrel.easypermissions; + +import android.app.Application; + +/** + * Simple Application is needed for hosting Activities (e.g. {@link TestActivity}) for use with + * Robolectric. + */ +public class TestApplication extends Application { + + @Override + public void onCreate() { + super.onCreate(); + setTheme(R.style.Theme_AppCompat); + } +}