From 83a63abd2d29ed9c5e692a56e09463806f721b7f Mon Sep 17 00:00:00 2001 From: Alex Salo Date: Wed, 1 May 2019 10:10:21 -0700 Subject: [PATCH] Re-enable the test Update the test to handle new API and simplify the logic in the controller. Bug: 130897305 Test: make RunSettingsRoboTests -j64 Change-Id: I0c46ff22d4a3bf913add753f85a24af9aeee0a33 --- .../AdaptiveSleepPreferenceController.java | 24 +++++-------------- ...AdaptiveSleepPreferenceControllerTest.java | 24 ++++++++++++------- 2 files changed, 22 insertions(+), 26 deletions(-) diff --git a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java index 6aa71873c4d..fab3efad39e 100644 --- a/src/com/android/settings/display/AdaptiveSleepPreferenceController.java +++ b/src/com/android/settings/display/AdaptiveSleepPreferenceController.java @@ -20,9 +20,6 @@ import android.content.Context; import android.content.pm.PackageManager; import android.provider.Settings; -import androidx.preference.Preference; -import androidx.preference.PreferenceScreen; - import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; @@ -60,10 +57,12 @@ public class AdaptiveSleepPreferenceController extends TogglePreferenceControlle @Override @AvailabilityStatus public int getAvailabilityStatus() { - return mContext.getResources().getBoolean( - com.android.internal.R.bool.config_adaptive_sleep_available) - ? AVAILABLE - : UNSUPPORTED_ON_DEVICE; + final boolean supportedOnDevice = mContext.getResources().getBoolean( + com.android.internal.R.bool.config_adaptive_sleep_available); + if (!supportedOnDevice) { + return UNSUPPORTED_ON_DEVICE; + } + return hasSufficientPermissions ? AVAILABLE : DISABLED_DEPENDENT_SETTING; } @Override @@ -77,15 +76,4 @@ public class AdaptiveSleepPreferenceController extends TogglePreferenceControlle ? R.string.adaptive_sleep_summary_on : R.string.adaptive_sleep_summary_off); } - - @Override - public void displayPreference(PreferenceScreen screen) { - super.displayPreference(screen); - final Preference preference = screen.findPreference(SYSTEM_KEY); - - if (preference != null) { - preference.setEnabled(hasSufficientPermissions); - } - - } } diff --git a/tests/robotests/src/com/android/settings/display/AdaptiveSleepPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/AdaptiveSleepPreferenceControllerTest.java index 89388730742..69d1cbc8048 100644 --- a/tests/robotests/src/com/android/settings/display/AdaptiveSleepPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/AdaptiveSleepPreferenceControllerTest.java @@ -21,6 +21,8 @@ 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.doReturn; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import android.content.ContentResolver; @@ -28,11 +30,12 @@ import android.content.Context; import android.content.pm.PackageManager; import android.provider.Settings; +import androidx.preference.Preference; +import androidx.preference.PreferenceScreen; + import com.android.settings.R; -import com.android.settingslib.RestrictedPreference; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -41,7 +44,6 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) -@Ignore("b/130897305") public class AdaptiveSleepPreferenceControllerTest { private static final String PREFERENCE_KEY = "adaptive_sleep"; @@ -52,18 +54,25 @@ public class AdaptiveSleepPreferenceControllerTest { @Mock private PackageManager mPackageManager; + @Mock + private PreferenceScreen mScreen; + @Mock + private Preference mPreference; @Before public void setUp() { MockitoAnnotations.initMocks(this); - mContext = RuntimeEnvironment.application; + mContext = spy(RuntimeEnvironment.application); mContentResolver = mContext.getContentResolver(); - mController = new AdaptiveSleepPreferenceController(mContext, PREFERENCE_KEY); - + doReturn(mPackageManager).when(mContext).getPackageManager(); + when(mPackageManager.getAttentionServicePackageName()).thenReturn("some.package"); when(mPackageManager.checkPermission(any(), any())).thenReturn( PackageManager.PERMISSION_GRANTED); + when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); + + mController = new AdaptiveSleepPreferenceController(mContext, PREFERENCE_KEY); } @Test @@ -145,8 +154,7 @@ public class AdaptiveSleepPreferenceControllerTest { PackageManager.PERMISSION_DENIED); mController.setChecked(true); - final RestrictedPreference mPreference = new RestrictedPreference(mContext); - mController.updateState(mPreference); + mController.displayPreference(mScreen); assertThat(mPreference.isEnabled()).isFalse(); } }