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.XmlTestUtils; 8 import com.android.settings.testutils.shadow.ShadowPowerManager; 9 import com.android.settingslib.core.AbstractPreferenceController; 10 11 import org.junit.Test; 12 import org.junit.runner.RunWith; 13 import org.robolectric.RobolectricTestRunner; 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(RobolectricTestRunner.class) 21 public class DisplaySettingsTest { 22 23 @Test 24 @Config(shadows = ShadowPowerManager.class) testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen()25 public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() { 26 final Context context = RuntimeEnvironment.application; 27 final DisplaySettings fragment = new DisplaySettings(); 28 final List<String> preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context, 29 fragment.getPreferenceScreenResId()); 30 final List<String> preferenceKeys = new ArrayList<>(); 31 32 for (AbstractPreferenceController controller : fragment.createPreferenceControllers(context)) { 33 preferenceKeys.add(controller.getPreferenceKey()); 34 } 35 // Nightmode is currently hidden 36 preferenceKeys.remove("night_mode"); 37 38 assertThat(preferenceScreenKeys).containsAtLeastElementsIn(preferenceKeys); 39 } 40 } 41