Hides Screen Attention setting when AttentionService isn't installed.
Bug: 191696609 Test: make RunSettingsRoboTests Change-Id: I5a38b023db91202801a8a3e975f562ddcfe6696e
This commit is contained in:
@@ -22,16 +22,24 @@ import static androidx.test.core.app.ApplicationProvider.getApplicationContext;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
import static org.mockito.ArgumentMatchers.isA;
|
||||
import static org.mockito.Mockito.atLeast;
|
||||
import static org.mockito.Mockito.doNothing;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.ContentResolver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.ServiceInfo;
|
||||
import android.content.res.Resources;
|
||||
import android.provider.SearchIndexableResource;
|
||||
import android.provider.Settings;
|
||||
@@ -80,6 +88,9 @@ public class ScreenTimeoutSettingsTest {
|
||||
@Mock
|
||||
Preference mDisableOptionsPreference;
|
||||
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
@@ -90,6 +101,15 @@ public class ScreenTimeoutSettingsTest {
|
||||
mContentResolver = mContext.getContentResolver();
|
||||
mResources = spy(mContext.getResources());
|
||||
|
||||
doReturn(mPackageManager).when(mContext).getPackageManager();
|
||||
when(mPackageManager.getAttentionServicePackageName()).thenReturn("some.package");
|
||||
when(mPackageManager.checkPermission(any(), any())).thenReturn(
|
||||
PackageManager.PERMISSION_GRANTED);
|
||||
final ResolveInfo attentionServiceResolveInfo = new ResolveInfo();
|
||||
attentionServiceResolveInfo.serviceInfo = new ServiceInfo();
|
||||
when(mPackageManager.resolveService(isA(Intent.class), anyInt())).thenReturn(
|
||||
attentionServiceResolveInfo);
|
||||
|
||||
doReturn(TIMEOUT_ENTRIES).when(mResources).getStringArray(R.array.screen_timeout_entries);
|
||||
doReturn(TIMEOUT_VALUES).when(mResources).getStringArray(R.array.screen_timeout_entries);
|
||||
doReturn(true).when(mResources).getBoolean(
|
||||
@@ -147,6 +167,13 @@ public class ScreenTimeoutSettingsTest {
|
||||
verify(mSettings.mAdaptiveSleepController, never()).addToScreen(mPreferenceScreen);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateCandidates_AttentionServiceNotInstalled_doNoShowAdaptiveSleepPreference() {
|
||||
when(mPackageManager.resolveService(isA(Intent.class), anyInt())).thenReturn(null);
|
||||
|
||||
verify(mSettings.mAdaptiveSleepController, never()).addToScreen(mPreferenceScreen);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateCandidates_enforcedAdmin_showDisabledByAdminPreference() {
|
||||
mSettings.mAdmin = new RestrictedLockUtils.EnforcedAdmin();
|
||||
|
Reference in New Issue
Block a user