28
28
import java .util .Collections ;
29
29
30
30
import pub .devrel .easypermissions .testhelper .TestActivity ;
31
+ import pub .devrel .easypermissions .testhelper .TestAppCompatActivity ;
31
32
import pub .devrel .easypermissions .testhelper .TestFragment ;
32
- import pub .devrel .easypermissions .testhelper .TestSupportActivity ;
33
+ import pub .devrel .easypermissions .testhelper .TestSupportFragmentActivity ;
33
34
34
35
import static com .google .common .truth .Truth .assertThat ;
35
36
import static junit .framework .Assert .fail ;
@@ -57,10 +58,12 @@ public class EasyPermissionsTest {
57
58
PackageManager .PERMISSION_DENIED , PackageManager .PERMISSION_GRANTED };
58
59
private Application app ;
59
60
private TestActivity spyActivity ;
60
- private TestSupportActivity spySupportActivity ;
61
+ private TestSupportFragmentActivity spySupportFragmentActivity ;
62
+ private TestAppCompatActivity spyAppCompatActivity ;
61
63
private TestFragment spyFragment ;
62
64
private ActivityController <TestActivity > activityController ;
63
- private ActivityController <TestSupportActivity > supportActivityController ;
65
+ private ActivityController <TestSupportFragmentActivity > supportFragmentActivityController ;
66
+ private ActivityController <TestAppCompatActivity > appCompatActivityController ;
64
67
private SupportFragmentController <TestFragment > fragmentController ;
65
68
@ Captor
66
69
private ArgumentCaptor <Integer > integerCaptor ;
@@ -254,75 +257,75 @@ public void shouldNotHavePermissionPermanentlyDenied_whenShowRationaleFromActivi
254
257
}
255
258
256
259
@ 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 );
259
262
260
- verify (spySupportActivity , times (1 ))
263
+ verify (spyAppCompatActivity , times (1 ))
261
264
.onPermissionsGranted (integerCaptor .capture (), listCaptor .capture ());
262
- assertThat (integerCaptor .getValue ()).isEqualTo (TestSupportActivity .REQUEST_CODE );
265
+ assertThat (integerCaptor .getValue ()).isEqualTo (TestAppCompatActivity .REQUEST_CODE );
263
266
assertThat (listCaptor .getValue ())
264
267
.containsAllIn (new ArrayList <>(Collections .singletonList (Manifest .permission .ACCESS_FINE_LOCATION )));
265
268
266
- verify (spySupportActivity , times (1 ))
269
+ verify (spyAppCompatActivity , times (1 ))
267
270
.onPermissionsDenied (integerCaptor .capture (), listCaptor .capture ());
268
- assertThat (integerCaptor .getValue ()).isEqualTo (TestSupportActivity .REQUEST_CODE );
271
+ assertThat (integerCaptor .getValue ()).isEqualTo (TestAppCompatActivity .REQUEST_CODE );
269
272
assertThat (listCaptor .getValue ())
270
273
.containsAllIn (new ArrayList <>(Collections .singletonList (Manifest .permission .READ_SMS )));
271
274
272
- verify (spySupportActivity , never ()).afterPermissionGranted ();
275
+ verify (spyAppCompatActivity , never ()).afterPermissionGranted ();
273
276
}
274
277
275
278
@ Test
276
- public void shouldCallbackOnPermissionGranted_whenRequestAlreadyGrantedPermissionsFromSupportActivity () {
279
+ public void shouldCallbackOnPermissionGranted_whenRequestAlreadyGrantedPermissionsFromAppCompatActivity () {
277
280
grantPermissions (ALL_PERMS );
278
281
279
- EasyPermissions .requestPermissions (spySupportActivity , RATIONALE , TestSupportActivity .REQUEST_CODE , ALL_PERMS );
282
+ EasyPermissions .requestPermissions (spyAppCompatActivity , RATIONALE , TestAppCompatActivity .REQUEST_CODE , ALL_PERMS );
280
283
281
- verify (spySupportActivity , times (1 ))
284
+ verify (spyAppCompatActivity , times (1 ))
282
285
.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 );
285
288
assertThat (listCaptor .getValue ()).containsAllIn (ALL_PERMS );
286
289
}
287
290
288
291
@ Test
289
- public void shouldCallbackAfterPermissionGranted_whenRequestAlreadyGrantedPermissionsFromSupportActivity () {
292
+ public void shouldCallbackAfterPermissionGranted_whenRequestAlreadyGrantedPermissionsFromAppCompatActivity () {
290
293
grantPermissions (ALL_PERMS );
291
294
292
- EasyPermissions .requestPermissions (spySupportActivity , RATIONALE , TestSupportActivity .REQUEST_CODE , ALL_PERMS );
295
+ EasyPermissions .requestPermissions (spyAppCompatActivity , RATIONALE , TestAppCompatActivity .REQUEST_CODE , ALL_PERMS );
293
296
294
297
// 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 ();
296
299
}
297
300
298
301
@ Test
299
- public void shouldNotCallbackAfterPermissionGranted_whenRequestNotGrantedPermissionsFromSupportActivity () {
302
+ public void shouldNotCallbackAfterPermissionGranted_whenRequestNotGrantedPermissionsFromAppCompatActivity () {
300
303
grantPermissions (ONE_PERM );
301
304
302
- EasyPermissions .requestPermissions (spySupportActivity , RATIONALE , TestSupportActivity .REQUEST_CODE , ALL_PERMS );
305
+ EasyPermissions .requestPermissions (spyAppCompatActivity , RATIONALE , TestAppCompatActivity .REQUEST_CODE , ALL_PERMS );
303
306
304
- verify (spySupportActivity , never ()).afterPermissionGranted ();
307
+ verify (spyAppCompatActivity , never ()).afterPermissionGranted ();
305
308
}
306
309
307
310
@ Test
308
- public void shouldRequestPermissions_whenMissingPermissionAndNotShowRationaleFromSupportActivity () {
311
+ public void shouldRequestPermissions_whenMissingPermissionAndNotShowRationaleFromAppCompatActivity () {
309
312
grantPermissions (ONE_PERM );
310
313
showRationale (false , ALL_PERMS );
311
314
312
- EasyPermissions .requestPermissions (spySupportActivity , RATIONALE , TestSupportActivity .REQUEST_CODE , ALL_PERMS );
315
+ EasyPermissions .requestPermissions (spyAppCompatActivity , RATIONALE , TestAppCompatActivity .REQUEST_CODE , ALL_PERMS );
313
316
314
- verify (spySupportActivity , times (1 ))
315
- .requestPermissions (ALL_PERMS , TestSupportActivity .REQUEST_CODE );
317
+ verify (spyAppCompatActivity , times (1 ))
318
+ .requestPermissions (ALL_PERMS , TestAppCompatActivity .REQUEST_CODE );
316
319
}
317
320
318
321
@ Test
319
- public void shouldShowCorrectDialog_whenMissingPermissionsAndShowRationaleFromSupportActivity () {
322
+ public void shouldShowCorrectDialog_whenMissingPermissionsAndShowRationaleFromAppCompatActivity () {
320
323
grantPermissions (ONE_PERM );
321
324
showRationale (true , ALL_PERMS );
322
325
323
- EasyPermissions .requestPermissions (spySupportActivity , RATIONALE , TestSupportActivity .REQUEST_CODE , ALL_PERMS );
326
+ EasyPermissions .requestPermissions (spyAppCompatActivity , RATIONALE , TestAppCompatActivity .REQUEST_CODE , ALL_PERMS );
324
327
325
- android .support .v4 .app .Fragment dialogFragment = spySupportActivity .getSupportFragmentManager ()
328
+ android .support .v4 .app .Fragment dialogFragment = spyAppCompatActivity .getSupportFragmentManager ()
326
329
.findFragmentByTag (RationaleDialogFragmentCompat .TAG );
327
330
assertThat (dialogFragment ).isInstanceOf (RationaleDialogFragmentCompat .class );
328
331
@@ -331,19 +334,34 @@ public void shouldShowCorrectDialog_whenMissingPermissionsAndShowRationaleFromSu
331
334
}
332
335
333
336
@ Test
334
- public void shouldShowCorrectDialogUsingRequest_whenMissingPermissionsAndShowRationaleFromSupportActivity () {
337
+ public void shouldShowCorrectDialog_whenMissingPermissionsAndShowRationaleFromSupportFragmentActivity () {
335
338
grantPermissions (ONE_PERM );
336
339
showRationale (true , ALL_PERMS );
337
340
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 )
339
357
.setPositiveButtonText (android .R .string .ok )
340
358
.setNegativeButtonText (android .R .string .cancel )
341
359
.setRationale (android .R .string .unknownName )
342
360
.setTheme (R .style .Theme_AppCompat )
343
361
.build ();
344
362
EasyPermissions .requestPermissions (request );
345
363
346
- android .support .v4 .app .Fragment dialogFragment = spySupportActivity .getSupportFragmentManager ()
364
+ android .support .v4 .app .Fragment dialogFragment = spyAppCompatActivity .getSupportFragmentManager ()
347
365
.findFragmentByTag (RationaleDialogFragmentCompat .TAG );
348
366
assertThat (dialogFragment ).isInstanceOf (RationaleDialogFragmentCompat .class );
349
367
@@ -353,45 +371,45 @@ public void shouldShowCorrectDialogUsingRequest_whenMissingPermissionsAndShowRat
353
371
}
354
372
355
373
@ Test
356
- public void shouldHaveSomePermissionDenied_whenShowRationaleFromSupportActivity () {
374
+ public void shouldHaveSomePermissionDenied_whenShowRationaleFromAppCompatActivity () {
357
375
showRationale (true , ALL_PERMS );
358
376
359
- assertThat (EasyPermissions .somePermissionDenied (spySupportActivity , ALL_PERMS )).isTrue ();
377
+ assertThat (EasyPermissions .somePermissionDenied (spyAppCompatActivity , ALL_PERMS )).isTrue ();
360
378
}
361
379
362
380
@ Test
363
- public void shouldNotHaveSomePermissionDenied_whenNotShowRationaleFromSupportActivity () {
381
+ public void shouldNotHaveSomePermissionDenied_whenNotShowRationaleFromAppCompatActivity () {
364
382
showRationale (false , ALL_PERMS );
365
383
366
- assertThat (EasyPermissions .somePermissionDenied (spySupportActivity , ALL_PERMS )).isFalse ();
384
+ assertThat (EasyPermissions .somePermissionDenied (spyAppCompatActivity , ALL_PERMS )).isFalse ();
367
385
}
368
386
369
387
@ Test
370
- public void shouldHaveSomePermissionPermanentlyDenied_whenNotShowRationaleFromSupportActivity () {
388
+ public void shouldHaveSomePermissionPermanentlyDenied_whenNotShowRationaleFromAppCompatActivity () {
371
389
showRationale (false , ALL_PERMS );
372
390
373
- assertThat (EasyPermissions .somePermissionPermanentlyDenied (spySupportActivity , Arrays .asList (ALL_PERMS ))).isTrue ();
391
+ assertThat (EasyPermissions .somePermissionPermanentlyDenied (spyAppCompatActivity , Arrays .asList (ALL_PERMS ))).isTrue ();
374
392
}
375
393
376
394
@ Test
377
- public void shouldNotHaveSomePermissionPermanentlyDenied_whenShowRationaleFromSupportActivity () {
395
+ public void shouldNotHaveSomePermissionPermanentlyDenied_whenShowRationaleFromAppCompatActivity () {
378
396
showRationale (true , ALL_PERMS );
379
397
380
- assertThat (EasyPermissions .somePermissionPermanentlyDenied (spySupportActivity , Arrays .asList (ALL_PERMS ))).isFalse ();
398
+ assertThat (EasyPermissions .somePermissionPermanentlyDenied (spyAppCompatActivity , Arrays .asList (ALL_PERMS ))).isFalse ();
381
399
}
382
400
383
401
@ Test
384
- public void shouldHavePermissionPermanentlyDenied_whenNotShowRationaleFromSupportActivity () {
402
+ public void shouldHavePermissionPermanentlyDenied_whenNotShowRationaleFromAppCompatActivity () {
385
403
showRationale (false , Manifest .permission .READ_SMS );
386
404
387
- assertThat (EasyPermissions .permissionPermanentlyDenied (spySupportActivity , Manifest .permission .READ_SMS )).isTrue ();
405
+ assertThat (EasyPermissions .permissionPermanentlyDenied (spyAppCompatActivity , Manifest .permission .READ_SMS )).isTrue ();
388
406
}
389
407
390
408
@ Test
391
- public void shouldNotHavePermissionPermanentlyDenied_whenShowRationaleFromSupportActivity () {
409
+ public void shouldNotHavePermissionPermanentlyDenied_whenShowRationaleFromAppCompatActivity () {
392
410
showRationale (true , Manifest .permission .READ_SMS );
393
411
394
- assertThat (EasyPermissions .permissionPermanentlyDenied (spySupportActivity , Manifest .permission .READ_SMS )).isFalse ();
412
+ assertThat (EasyPermissions .permissionPermanentlyDenied (spyAppCompatActivity , Manifest .permission .READ_SMS )).isFalse ();
395
413
}
396
414
397
415
@ Test
@@ -575,19 +593,23 @@ private void assertThatHasExpectedRationale(Dialog dialog, String rationale) {
575
593
private void setUpActivityAndFragment () {
576
594
activityController = Robolectric .buildActivity (TestActivity .class )
577
595
.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 )
579
599
.create ().start ().resume ();
580
600
fragmentController = SupportFragmentController .of (new TestFragment ())
581
601
.create ().start ().resume ();
582
602
583
603
spyActivity = Mockito .spy (activityController .get ());
584
- spySupportActivity = Mockito .spy (supportActivityController .get ());
604
+ spySupportFragmentActivity = Mockito .spy (supportFragmentActivityController .get ());
605
+ spyAppCompatActivity = Mockito .spy (appCompatActivityController .get ());
585
606
spyFragment = Mockito .spy (fragmentController .get ());
586
607
}
587
608
588
609
private void tearDownActivityAndFragment () {
589
610
activityController .pause ().stop ().destroy ();
590
- supportActivityController .pause ().stop ().destroy ();
611
+ supportFragmentActivityController .pause ().stop ().destroy ();
612
+ appCompatActivityController .pause ().stop ().destroy ();
591
613
fragmentController .pause ().stop ().destroy ();
592
614
}
593
615
@@ -598,7 +620,8 @@ private void grantPermissions(String[] perms) {
598
620
private void showRationale (boolean show , String ... perms ) {
599
621
for (String perm : perms ) {
600
622
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 );
602
625
when (spyFragment .shouldShowRequestPermissionRationale (perm )).thenReturn (show );
603
626
}
604
627
}
0 commit comments