1 package org.robolectric.android.internal; 2 3 import static com.google.common.base.Preconditions.checkNotNull; 4 5 import android.app.Application; 6 import androidx.test.internal.platform.content.PermissionGranter; 7 import androidx.test.platform.app.InstrumentationRegistry; 8 import org.robolectric.shadow.api.Shadow; 9 import org.robolectric.shadows.ShadowApplication; 10 11 /** A {@link PermissionGranter} that runs on a local JVM with Robolectric. */ 12 public class LocalPermissionGranter implements PermissionGranter { 13 14 private String[] permissions; 15 16 @Override addPermissions(String... permissions)17 public void addPermissions(String... permissions) { 18 this.permissions = permissions; 19 } 20 21 @Override requestPermissions()22 public void requestPermissions() { 23 checkNotNull(permissions); 24 Application application = 25 (Application) InstrumentationRegistry.getInstrumentation().getTargetContext(); 26 ShadowApplication shadowApplication = Shadow.extract(application); 27 shadowApplication.grantPermissions(permissions); 28 } 29 } 30