Check for attention permissions

If attention package does not have sufficient permissions - disable the
setting.

Bug: 130246574, 130350903
Test: make RunSettingsRoboTests and manually confirmed
Change-Id: Ia7a86c940522e72f7e895d6aec7500f1ef6f9889
This commit is contained in:
Alex Salo
2019-04-11 14:41:57 -07:00
parent 75691d29ef
commit c821ae1ee6
2 changed files with 58 additions and 1 deletions

View File

@@ -20,15 +20,21 @@ import static android.provider.Settings.System.ADAPTIVE_SLEEP;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.PackageManager;
import android.provider.Settings;
import com.android.settings.R;
import com.android.settingslib.RestrictedPreference;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@@ -42,6 +48,9 @@ public class AdaptiveSleepPreferenceControllerTest {
private AdaptiveSleepPreferenceController mController;
private ContentResolver mContentResolver;
@Mock
private PackageManager mPackageManager;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
@@ -49,6 +58,10 @@ public class AdaptiveSleepPreferenceControllerTest {
mContext = RuntimeEnvironment.application;
mContentResolver = mContext.getContentResolver();
mController = new AdaptiveSleepPreferenceController(mContext, PREFERENCE_KEY);
when(mPackageManager.checkPermission(any(), any())).thenReturn(
PackageManager.PERMISSION_GRANTED);
}
@Test
@@ -114,4 +127,24 @@ public class AdaptiveSleepPreferenceControllerTest {
new AdaptiveSleepPreferenceController(mContext, "any_key");
assertThat(controller.isSliceable()).isTrue();
}
@Test
public void isChecked_returnsFalseWhenNotSufficientPermissions() {
when(mPackageManager.checkPermission(any(), any())).thenReturn(
PackageManager.PERMISSION_DENIED);
mController.setChecked(true);
assertThat(mController.isChecked()).isFalse();
}
@Test
public void isEnabled_returnsFalseWhenNotSufficientPermissions() {
when(mPackageManager.checkPermission(any(), any())).thenReturn(
PackageManager.PERMISSION_DENIED);
mController.setChecked(true);
final RestrictedPreference mPreference = new RestrictedPreference(mContext);
mController.updateState(mPreference);
assertThat(mPreference.isEnabled()).isFalse();
}
}