Bug 1242443 - TestPermissions: Add test cases for non-Activity context, doNotPrompt() and doNotPromptIf(). r=nalexander

--HG--
extra : commitid : 2ffNACISegd
extra : rebase_source : 0fe21cc838fd9935b0f00938d777462d1629c057
This commit is contained in:
Sebastian Kaspari 2016-01-25 14:12:20 +01:00
parent 985beb4e9c
commit 29b34d38a9

View File

@ -167,6 +167,62 @@ public class TestPermissions {
verify(helper, never()).prompt(anyActivity(), any(String[].class));
}
@Test
public void testDoNotPromptBehavior() {
PermissionsHelper helper = mockDenyingHelper();
Permissions.setPermissionHelper(helper);
Permissions.from(mockActivity())
.withPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.doNotPrompt()
.andFallback(mock(Runnable.class))
.run(mock(Runnable.class));
verify(helper, never()).prompt(anyActivity(), any(String[].class));
}
@Test(expected = IllegalStateException.class)
public void testThrowsExceptionIfNeedstoPromptWithNonActivityContext() {
Permissions.setPermissionHelper(mockDenyingHelper());
Permissions.from(mock(Context.class))
.withPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.andFallback(mock(Runnable.class))
.run(mock(Runnable.class));
}
@Test
public void testDoNotPromptIfFalse() {
Activity activity = mockActivity();
PermissionsHelper helper = mockDenyingHelper();
Permissions.setPermissionHelper(helper);
Permissions.from(activity)
.withPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.doNotPromptIf(false)
.andFallback(mock(Runnable.class))
.run(mock(Runnable.class));
verify(helper).prompt(anyActivity(), any(String[].class));
Permissions.onRequestPermissionsResult(activity, new String[0], new int[0]);
}
@Test
public void testDoNotPromptIfTrue() {
PermissionsHelper helper = mockDenyingHelper();
Permissions.setPermissionHelper(helper);
Permissions.from(mockActivity())
.withPermissions(Manifest.permission.WRITE_EXTERNAL_STORAGE)
.doNotPromptIf(true)
.andFallback(mock(Runnable.class))
.run(mock(Runnable.class));
verify(helper, never()).prompt(anyActivity(), any(String[].class));
}
private Activity mockActivity() {
return mock(Activity.class);
}