2828import java .util .Collections ;
2929
3030import pub .devrel .easypermissions .testhelper .TestActivity ;
31+ import pub .devrel .easypermissions .testhelper .TestAppCompatActivity ;
3132import pub .devrel .easypermissions .testhelper .TestFragment ;
32- import pub .devrel .easypermissions .testhelper .TestSupportActivity ;
33+ import pub .devrel .easypermissions .testhelper .TestSupportFragmentActivity ;
3334
3435import static com .google .common .truth .Truth .assertThat ;
3536import static junit .framework .Assert .fail ;
@@ -57,10 +58,12 @@ public class EasyPermissionsTest {
5758 PackageManager .PERMISSION_DENIED , PackageManager .PERMISSION_GRANTED };
5859 private Application app ;
5960 private TestActivity spyActivity ;
60- private TestSupportActivity spySupportActivity ;
61+ private TestSupportFragmentActivity spySupportFragmentActivity ;
62+ private TestAppCompatActivity spyAppCompatActivity ;
6163 private TestFragment spyFragment ;
6264 private ActivityController <TestActivity > activityController ;
63- private ActivityController <TestSupportActivity > supportActivityController ;
65+ private ActivityController <TestSupportFragmentActivity > supportFragmentActivityController ;
66+ private ActivityController <TestAppCompatActivity > appCompatActivityController ;
6467 private SupportFragmentController <TestFragment > fragmentController ;
6568 @ Captor
6669 private ArgumentCaptor <Integer > integerCaptor ;
@@ -254,75 +257,75 @@ public void shouldNotHavePermissionPermanentlyDenied_whenShowRationaleFromActivi
254257 }
255258
256259 @ Test
257- public void shouldCorrectlyCallback_whenOnRequestPermissionResultCalledFromSupportActivity () {
258- EasyPermissions .onRequestPermissionsResult (TestSupportActivity .REQUEST_CODE , ALL_PERMS , SMS_DENIED_RESULT , spySupportActivity );
260+ public void shouldCorrectlyCallback_whenOnRequestPermissionResultCalledFromAppCompatActivity () {
261+ EasyPermissions .onRequestPermissionsResult (TestAppCompatActivity .REQUEST_CODE , ALL_PERMS , SMS_DENIED_RESULT , spyAppCompatActivity );
259262
260- verify (spySupportActivity , times (1 ))
263+ verify (spyAppCompatActivity , times (1 ))
261264 .onPermissionsGranted (integerCaptor .capture (), listCaptor .capture ());
262- assertThat (integerCaptor .getValue ()).isEqualTo (TestSupportActivity .REQUEST_CODE );
265+ assertThat (integerCaptor .getValue ()).isEqualTo (TestAppCompatActivity .REQUEST_CODE );
263266 assertThat (listCaptor .getValue ())
264267 .containsAllIn (new ArrayList <>(Collections .singletonList (Manifest .permission .ACCESS_FINE_LOCATION )));
265268
266- verify (spySupportActivity , times (1 ))
269+ verify (spyAppCompatActivity , times (1 ))
267270 .onPermissionsDenied (integerCaptor .capture (), listCaptor .capture ());
268- assertThat (integerCaptor .getValue ()).isEqualTo (TestSupportActivity .REQUEST_CODE );
271+ assertThat (integerCaptor .getValue ()).isEqualTo (TestAppCompatActivity .REQUEST_CODE );
269272 assertThat (listCaptor .getValue ())
270273 .containsAllIn (new ArrayList <>(Collections .singletonList (Manifest .permission .READ_SMS )));
271274
272- verify (spySupportActivity , never ()).afterPermissionGranted ();
275+ verify (spyAppCompatActivity , never ()).afterPermissionGranted ();
273276 }
274277
275278 @ Test
276- public void shouldCallbackOnPermissionGranted_whenRequestAlreadyGrantedPermissionsFromSupportActivity () {
279+ public void shouldCallbackOnPermissionGranted_whenRequestAlreadyGrantedPermissionsFromAppCompatActivity () {
277280 grantPermissions (ALL_PERMS );
278281
279- EasyPermissions .requestPermissions (spySupportActivity , RATIONALE , TestSupportActivity .REQUEST_CODE , ALL_PERMS );
282+ EasyPermissions .requestPermissions (spyAppCompatActivity , RATIONALE , TestAppCompatActivity .REQUEST_CODE , ALL_PERMS );
280283
281- verify (spySupportActivity , times (1 ))
284+ verify (spyAppCompatActivity , times (1 ))
282285 .onPermissionsGranted (integerCaptor .capture (), listCaptor .capture ());
283- verify (spySupportActivity , never ()).requestPermissions (any (String [].class ), anyInt ());
284- assertThat (integerCaptor .getValue ()).isEqualTo (TestSupportActivity .REQUEST_CODE );
286+ verify (spyAppCompatActivity , never ()).requestPermissions (any (String [].class ), anyInt ());
287+ assertThat (integerCaptor .getValue ()).isEqualTo (TestAppCompatActivity .REQUEST_CODE );
285288 assertThat (listCaptor .getValue ()).containsAllIn (ALL_PERMS );
286289 }
287290
288291 @ Test
289- public void shouldCallbackAfterPermissionGranted_whenRequestAlreadyGrantedPermissionsFromSupportActivity () {
292+ public void shouldCallbackAfterPermissionGranted_whenRequestAlreadyGrantedPermissionsFromAppCompatActivity () {
290293 grantPermissions (ALL_PERMS );
291294
292- EasyPermissions .requestPermissions (spySupportActivity , RATIONALE , TestSupportActivity .REQUEST_CODE , ALL_PERMS );
295+ EasyPermissions .requestPermissions (spyAppCompatActivity , RATIONALE , TestAppCompatActivity .REQUEST_CODE , ALL_PERMS );
293296
294297 // Called 2 times because this is a spy and library implementation invokes super classes annotated methods as well
295- verify (spySupportActivity , times (2 )).afterPermissionGranted ();
298+ verify (spyAppCompatActivity , times (2 )).afterPermissionGranted ();
296299 }
297300
298301 @ Test
299- public void shouldNotCallbackAfterPermissionGranted_whenRequestNotGrantedPermissionsFromSupportActivity () {
302+ public void shouldNotCallbackAfterPermissionGranted_whenRequestNotGrantedPermissionsFromAppCompatActivity () {
300303 grantPermissions (ONE_PERM );
301304
302- EasyPermissions .requestPermissions (spySupportActivity , RATIONALE , TestSupportActivity .REQUEST_CODE , ALL_PERMS );
305+ EasyPermissions .requestPermissions (spyAppCompatActivity , RATIONALE , TestAppCompatActivity .REQUEST_CODE , ALL_PERMS );
303306
304- verify (spySupportActivity , never ()).afterPermissionGranted ();
307+ verify (spyAppCompatActivity , never ()).afterPermissionGranted ();
305308 }
306309
307310 @ Test
308- public void shouldRequestPermissions_whenMissingPermissionAndNotShowRationaleFromSupportActivity () {
311+ public void shouldRequestPermissions_whenMissingPermissionAndNotShowRationaleFromAppCompatActivity () {
309312 grantPermissions (ONE_PERM );
310313 showRationale (false , ALL_PERMS );
311314
312- EasyPermissions .requestPermissions (spySupportActivity , RATIONALE , TestSupportActivity .REQUEST_CODE , ALL_PERMS );
315+ EasyPermissions .requestPermissions (spyAppCompatActivity , RATIONALE , TestAppCompatActivity .REQUEST_CODE , ALL_PERMS );
313316
314- verify (spySupportActivity , times (1 ))
315- .requestPermissions (ALL_PERMS , TestSupportActivity .REQUEST_CODE );
317+ verify (spyAppCompatActivity , times (1 ))
318+ .requestPermissions (ALL_PERMS , TestAppCompatActivity .REQUEST_CODE );
316319 }
317320
318321 @ Test
319- public void shouldShowCorrectDialog_whenMissingPermissionsAndShowRationaleFromSupportActivity () {
322+ public void shouldShowCorrectDialog_whenMissingPermissionsAndShowRationaleFromAppCompatActivity () {
320323 grantPermissions (ONE_PERM );
321324 showRationale (true , ALL_PERMS );
322325
323- EasyPermissions .requestPermissions (spySupportActivity , RATIONALE , TestSupportActivity .REQUEST_CODE , ALL_PERMS );
326+ EasyPermissions .requestPermissions (spyAppCompatActivity , RATIONALE , TestAppCompatActivity .REQUEST_CODE , ALL_PERMS );
324327
325- android .support .v4 .app .Fragment dialogFragment = spySupportActivity .getSupportFragmentManager ()
328+ android .support .v4 .app .Fragment dialogFragment = spyAppCompatActivity .getSupportFragmentManager ()
326329 .findFragmentByTag (RationaleDialogFragmentCompat .TAG );
327330 assertThat (dialogFragment ).isInstanceOf (RationaleDialogFragmentCompat .class );
328331
@@ -331,19 +334,34 @@ public void shouldShowCorrectDialog_whenMissingPermissionsAndShowRationaleFromSu
331334 }
332335
333336 @ Test
334- public void shouldShowCorrectDialogUsingRequest_whenMissingPermissionsAndShowRationaleFromSupportActivity () {
337+ public void shouldShowCorrectDialog_whenMissingPermissionsAndShowRationaleFromSupportFragmentActivity () {
335338 grantPermissions (ONE_PERM );
336339 showRationale (true , ALL_PERMS );
337340
338- PermissionRequest request = new PermissionRequest .Builder (spySupportActivity , TestSupportActivity .REQUEST_CODE , ALL_PERMS )
341+ EasyPermissions .requestPermissions (spySupportFragmentActivity , RATIONALE , TestSupportFragmentActivity .REQUEST_CODE , ALL_PERMS );
342+
343+ Fragment dialogFragment = spySupportFragmentActivity .getFragmentManager ()
344+ .findFragmentByTag (RationaleDialogFragment .TAG );
345+ assertThat (dialogFragment ).isInstanceOf (RationaleDialogFragment .class );
346+
347+ Dialog dialog = ((RationaleDialogFragment ) dialogFragment ).getDialog ();
348+ assertThatHasExpectedRationale (dialog , RATIONALE );
349+ }
350+
351+ @ Test
352+ public void shouldShowCorrectDialogUsingRequest_whenMissingPermissionsAndShowRationaleFromAppCompatActivity () {
353+ grantPermissions (ONE_PERM );
354+ showRationale (true , ALL_PERMS );
355+
356+ PermissionRequest request = new PermissionRequest .Builder (spyAppCompatActivity , TestAppCompatActivity .REQUEST_CODE , ALL_PERMS )
339357 .setPositiveButtonText (android .R .string .ok )
340358 .setNegativeButtonText (android .R .string .cancel )
341359 .setRationale (android .R .string .unknownName )
342360 .setTheme (R .style .Theme_AppCompat )
343361 .build ();
344362 EasyPermissions .requestPermissions (request );
345363
346- android .support .v4 .app .Fragment dialogFragment = spySupportActivity .getSupportFragmentManager ()
364+ android .support .v4 .app .Fragment dialogFragment = spyAppCompatActivity .getSupportFragmentManager ()
347365 .findFragmentByTag (RationaleDialogFragmentCompat .TAG );
348366 assertThat (dialogFragment ).isInstanceOf (RationaleDialogFragmentCompat .class );
349367
@@ -353,45 +371,45 @@ public void shouldShowCorrectDialogUsingRequest_whenMissingPermissionsAndShowRat
353371 }
354372
355373 @ Test
356- public void shouldHaveSomePermissionDenied_whenShowRationaleFromSupportActivity () {
374+ public void shouldHaveSomePermissionDenied_whenShowRationaleFromAppCompatActivity () {
357375 showRationale (true , ALL_PERMS );
358376
359- assertThat (EasyPermissions .somePermissionDenied (spySupportActivity , ALL_PERMS )).isTrue ();
377+ assertThat (EasyPermissions .somePermissionDenied (spyAppCompatActivity , ALL_PERMS )).isTrue ();
360378 }
361379
362380 @ Test
363- public void shouldNotHaveSomePermissionDenied_whenNotShowRationaleFromSupportActivity () {
381+ public void shouldNotHaveSomePermissionDenied_whenNotShowRationaleFromAppCompatActivity () {
364382 showRationale (false , ALL_PERMS );
365383
366- assertThat (EasyPermissions .somePermissionDenied (spySupportActivity , ALL_PERMS )).isFalse ();
384+ assertThat (EasyPermissions .somePermissionDenied (spyAppCompatActivity , ALL_PERMS )).isFalse ();
367385 }
368386
369387 @ Test
370- public void shouldHaveSomePermissionPermanentlyDenied_whenNotShowRationaleFromSupportActivity () {
388+ public void shouldHaveSomePermissionPermanentlyDenied_whenNotShowRationaleFromAppCompatActivity () {
371389 showRationale (false , ALL_PERMS );
372390
373- assertThat (EasyPermissions .somePermissionPermanentlyDenied (spySupportActivity , Arrays .asList (ALL_PERMS ))).isTrue ();
391+ assertThat (EasyPermissions .somePermissionPermanentlyDenied (spyAppCompatActivity , Arrays .asList (ALL_PERMS ))).isTrue ();
374392 }
375393
376394 @ Test
377- public void shouldNotHaveSomePermissionPermanentlyDenied_whenShowRationaleFromSupportActivity () {
395+ public void shouldNotHaveSomePermissionPermanentlyDenied_whenShowRationaleFromAppCompatActivity () {
378396 showRationale (true , ALL_PERMS );
379397
380- assertThat (EasyPermissions .somePermissionPermanentlyDenied (spySupportActivity , Arrays .asList (ALL_PERMS ))).isFalse ();
398+ assertThat (EasyPermissions .somePermissionPermanentlyDenied (spyAppCompatActivity , Arrays .asList (ALL_PERMS ))).isFalse ();
381399 }
382400
383401 @ Test
384- public void shouldHavePermissionPermanentlyDenied_whenNotShowRationaleFromSupportActivity () {
402+ public void shouldHavePermissionPermanentlyDenied_whenNotShowRationaleFromAppCompatActivity () {
385403 showRationale (false , Manifest .permission .READ_SMS );
386404
387- assertThat (EasyPermissions .permissionPermanentlyDenied (spySupportActivity , Manifest .permission .READ_SMS )).isTrue ();
405+ assertThat (EasyPermissions .permissionPermanentlyDenied (spyAppCompatActivity , Manifest .permission .READ_SMS )).isTrue ();
388406 }
389407
390408 @ Test
391- public void shouldNotHavePermissionPermanentlyDenied_whenShowRationaleFromSupportActivity () {
409+ public void shouldNotHavePermissionPermanentlyDenied_whenShowRationaleFromAppCompatActivity () {
392410 showRationale (true , Manifest .permission .READ_SMS );
393411
394- assertThat (EasyPermissions .permissionPermanentlyDenied (spySupportActivity , Manifest .permission .READ_SMS )).isFalse ();
412+ assertThat (EasyPermissions .permissionPermanentlyDenied (spyAppCompatActivity , Manifest .permission .READ_SMS )).isFalse ();
395413 }
396414
397415 @ Test
@@ -575,19 +593,23 @@ private void assertThatHasExpectedRationale(Dialog dialog, String rationale) {
575593 private void setUpActivityAndFragment () {
576594 activityController = Robolectric .buildActivity (TestActivity .class )
577595 .create ().start ().resume ();
578- supportActivityController = Robolectric .buildActivity (TestSupportActivity .class )
596+ supportFragmentActivityController = Robolectric .buildActivity (TestSupportFragmentActivity .class )
597+ .create ().start ().resume ();
598+ appCompatActivityController = Robolectric .buildActivity (TestAppCompatActivity .class )
579599 .create ().start ().resume ();
580600 fragmentController = SupportFragmentController .of (new TestFragment ())
581601 .create ().start ().resume ();
582602
583603 spyActivity = Mockito .spy (activityController .get ());
584- spySupportActivity = Mockito .spy (supportActivityController .get ());
604+ spySupportFragmentActivity = Mockito .spy (supportFragmentActivityController .get ());
605+ spyAppCompatActivity = Mockito .spy (appCompatActivityController .get ());
585606 spyFragment = Mockito .spy (fragmentController .get ());
586607 }
587608
588609 private void tearDownActivityAndFragment () {
589610 activityController .pause ().stop ().destroy ();
590- supportActivityController .pause ().stop ().destroy ();
611+ supportFragmentActivityController .pause ().stop ().destroy ();
612+ appCompatActivityController .pause ().stop ().destroy ();
591613 fragmentController .pause ().stop ().destroy ();
592614 }
593615
@@ -598,7 +620,8 @@ private void grantPermissions(String[] perms) {
598620 private void showRationale (boolean show , String ... perms ) {
599621 for (String perm : perms ) {
600622 when (spyActivity .shouldShowRequestPermissionRationale (perm )).thenReturn (show );
601- when (spySupportActivity .shouldShowRequestPermissionRationale (perm )).thenReturn (show );
623+ when (spySupportFragmentActivity .shouldShowRequestPermissionRationale (perm )).thenReturn (show );
624+ when (spyAppCompatActivity .shouldShowRequestPermissionRationale (perm )).thenReturn (show );
602625 when (spyFragment .shouldShowRequestPermissionRationale (perm )).thenReturn (show );
603626 }
604627 }
0 commit comments