package com.android.settings; import static com.google.common.truth.Truth.assertThat; import android.content.Context; import com.android.settings.testutils.XmlTestUtils; import com.android.settings.testutils.shadow.ShadowPowerManager; import com.android.settingslib.core.AbstractPreferenceController; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import java.util.ArrayList; import java.util.List; @RunWith(RobolectricTestRunner.class) public class DisplaySettingsTest { @Test @Config(shadows = ShadowPowerManager.class) public void testPreferenceControllers_getPreferenceKeys_existInPreferenceScreen() { final Context context = RuntimeEnvironment.application; final DisplaySettings fragment = new DisplaySettings(); final List preferenceScreenKeys = XmlTestUtils.getKeysFromPreferenceXml(context, fragment.getPreferenceScreenResId()); final List preferenceKeys = new ArrayList<>(); for (AbstractPreferenceController controller : fragment.createPreferenceControllers(context)) { preferenceKeys.add(controller.getPreferenceKey()); } // Nightmode is currently hidden preferenceKeys.remove("night_mode"); assertThat(preferenceScreenKeys).containsAllIn(preferenceKeys); } }