Grant permission on slice uris based on whitelist

Bug: 112587202
Test: robotests
Change-Id: I4e12a73f0acd848153f32c2569358dd55bed3f92
This commit is contained in:
Fan Zhang
2018-08-28 15:02:10 -07:00
parent c21f4a512a
commit d480c0e41a
4 changed files with 65 additions and 4 deletions

View File

@@ -21,9 +21,12 @@ import static android.content.ContentResolver.SCHEME_CONTENT;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -64,6 +67,7 @@ import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.annotation.Resetter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -477,6 +481,28 @@ public class SettingsSliceProviderTest {
mProvider.onSlicePinned(uri);
}
@Test
public void grantWhitelistedPackagePermissions_noWhitelist_shouldNotGrant() {
final List<Uri> uris = new ArrayList<>();
uris.add(Uri.parse("content://settings/slice"));
mProvider.grantWhitelistedPackagePermissions(mContext, uris);
verify(mManager, never()).grantSlicePermission(anyString(), any(Uri.class));
}
@Test
@Config(qualifiers = "mcc999")
public void grantWhitelistedPackagePermissions_hasPackageWhitelist_shouldGrant() {
final List<Uri> uris = new ArrayList<>();
uris.add(Uri.parse("content://settings/slice"));
mProvider.grantWhitelistedPackagePermissions(mContext, uris);
verify(mManager)
.grantSlicePermission("com.android.settings.slice_whitelist_package", uris.get(0));
}
private void insertSpecialCase(String key) {
insertSpecialCase(key, true);
}