diff --git a/res/xml/adaptive_sleep_detail.xml b/res/xml/adaptive_sleep_detail.xml
index 606bb55d465..568e6944581 100644
--- a/res/xml/adaptive_sleep_detail.xml
+++ b/res/xml/adaptive_sleep_detail.xml
@@ -28,6 +28,14 @@
settings:preview="@drawable/adaptive_sleep"
settings:controller="com.android.settings.widget.VideoPreferenceController"/>
+
+
{
- final Intent intent = new Intent(
- android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
- intent.setData(Uri.parse("package:" + mPackageName));
- mContext.startActivity(intent);
- return true;
- });
- return preference;
- }
-
- @VisibleForTesting
- void setupForTesting(PackageManager packageManager, Context context) {
- mContext = context;
- mPackageManager = packageManager;
- mPermissionRequiredPreference = createPermissionMissionPreference();
- }
}
diff --git a/tests/robotests/src/com/android/settings/display/AdaptiveSleepSettingsTest.java b/tests/robotests/src/com/android/settings/display/AdaptiveSleepPermissionPreferenceControllerTest.java
similarity index 58%
rename from tests/robotests/src/com/android/settings/display/AdaptiveSleepSettingsTest.java
rename to tests/robotests/src/com/android/settings/display/AdaptiveSleepPermissionPreferenceControllerTest.java
index 971ebc52d67..f2edf980443 100644
--- a/tests/robotests/src/com/android/settings/display/AdaptiveSleepSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/display/AdaptiveSleepPermissionPreferenceControllerTest.java
@@ -16,65 +16,68 @@
package com.android.settings.display;
+import static com.android.settings.core.BasePreferenceController.AVAILABLE_UNSEARCHABLE;
+
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
import android.Manifest;
import android.content.Context;
import android.content.pm.PackageManager;
-import androidx.preference.PreferenceScreen;
+import androidx.preference.Preference;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
+import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
@RunWith(RobolectricTestRunner.class)
-public class AdaptiveSleepSettingsTest {
- private AdaptiveSleepSettings mSettings;
- private static final String PACKAGE_NAME = "package_name";
+public class AdaptiveSleepPermissionPreferenceControllerTest {
+ private final static String PACKAGE_NAME = "package_name";
+ private AdaptiveSleepPermissionPreferenceController mController;
@Mock
private PackageManager mPackageManager;
@Mock
- private PreferenceScreen mScreen;
+ private Preference mPreference;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
-
- Context context = RuntimeEnvironment.application;
- mSettings = spy(new AdaptiveSleepSettings());
-
+ Context context = Mockito.spy(RuntimeEnvironment.application);
+ doReturn(mPackageManager).when(context).getPackageManager();
doReturn(PACKAGE_NAME).when(mPackageManager).getAttentionServicePackageName();
doReturn(PackageManager.PERMISSION_GRANTED).when(mPackageManager).checkPermission(
Manifest.permission.CAMERA, PACKAGE_NAME);
- doReturn(mScreen).when(mSettings).getPreferenceScreen();
-
- mSettings.setupForTesting(mPackageManager, context);
- mSettings.onAttach(context);
-
+ mController = new AdaptiveSleepPermissionPreferenceController(context, "test_key");
+ doReturn(mController.getPreferenceKey()).when(mPreference).getKey();
}
@Test
- public void onResume_hasPermission_preferenceInvisible() {
- mSettings.onResume();
-
- assertThat(mSettings.mPermissionRequiredPreference.isVisible()).isFalse();
+ public void getAvailabilityStatus_returnAvailableUnsearchable() {
+ assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
}
@Test
- public void onResume_noPermission_preferenceVisible() {
+ public void updateStates_permissionGranted_preferenceInvisible() {
+ mController.updateState(mPreference);
+
+ verify(mPreference).setVisible(false);
+ }
+
+ @Test
+ public void updateStates_permissionRevoked_preferenceVisible() {
doReturn(PackageManager.PERMISSION_DENIED).when(mPackageManager).checkPermission(
Manifest.permission.CAMERA, PACKAGE_NAME);
- mSettings.onResume();
+ mController.updateState(mPreference);
- assertThat(mSettings.mPermissionRequiredPreference.isVisible()).isTrue();
+ verify(mPreference).setVisible(true);
}
}