1 package com.android.settings; 2 3 import static com.google.common.truth.Truth.assertThat; 4 5 import android.content.Context; 6 7 import com.android.settings.testutils.SettingsRobolectricTestRunner; 8 import com.android.settings.testutils.XmlTestUtils; 9 import com.android.settings.testutils.shadow.ShadowPowerManagerWrapper; 10 import com.android.settingslib.core.AbstractPreferenceController; 11 12 import org.junit.Test; 13 import org.junit.runner.RunWith; 14 import org.robolectric.RuntimeEnvironment; 15 import org.robolectric.annotation.Config; 16 17 import java.util.ArrayList; 18 import java.util.List; 19 20 @RunWith(SettingsRobolectricTestRunner.class) 21 @Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) 22 public class DisplaySettingsTest { 23 24 @Test 25 @Config(shadows = ShadowPowerManagerWrapper.class) 26 public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() { 27 final Context context = RuntimeEnvironment.application; 28 // PowerManager wrapper = mock(PowerManager.class); 29 // doReturn(wrapper).when(context).getSystemService(Context.POWER_SERVICE); 30 final DisplaySettings fragment = new DisplaySettings(); 31 final List<String> preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context, 32 fragment.getPreferenceScreenResId()); 33 final List<String> preferenceKeys = new ArrayList<>(); 34 35 for (AbstractPreferenceController controller : fragment.getPreferenceControllers(context)) { 36 preferenceKeys.add(controller.getPreferenceKey()); 37 } 38 // Nightmode is currently hidden 39 preferenceKeys.remove("night_mode"); 40 41 assertThat(preferenceScreenKeys).containsAllIn(preferenceKeys); 42 } 43 } 44