This includes 3 fixes: Adds missing settings:controller attribute for bold & high-contrast text preferences. Separates VibrationSettings into two fragments, one per fragment XML resource. Instead of using a conditional to choose the XML resource ID, we now use the conditional to choose which fragment to launch. This allows both fragment's preference controllers to be inspected by CodeInspectionTest#runSliceControllerInXmlInspection. Also updates the preference keys which must be unique per XML in order to appear in Settings Search. Adds Magnification preference controllers to exempt-not-in-XML list. These controllers are for fragments that are not declared in an XML. See ToggleScreenMagnificationPreferenceFragment #getPreferenceScreenResId. Bug: 289967175 Test: atest SettingsRoboTests:com.android.settings.accessibility Test: atest CodeInspectionTest#runSliceControllerInXmlInspection; Observe no errors in the accessibility package. Test: Open Settings > Accessibility > Vibration & haptics; observe vibration intensity page is shown (behavior unchanged). Hardcode config_vibration_supported_intensity_levels=1; observe vibration page with toggles is shown (behavior unchanged). Change-Id: I257b5ad390371bedb1623af6289016b06d478707
Running Settings Robolectric tests
The full suite
$ croot
$ make RunSettingsRoboTests
Running a single test class
$ croot
$ make RunSettingsRoboTests ROBOTEST_FILTER=<ClassName>
For example:
make RunSettingsRoboTests ROBOTEST_FILTER=CodeInspectionTest
You can also use partial class name in ROBOTEST_FILTER. If the partial class name matches multiple file names, all of them will be executed.