Merge "Update SliceContollerInXmlTest to match latest slice spec." into pi-dev

This commit is contained in:
TreeHugger Robot
2018-04-06 17:15:46 +00:00
committed by Android (Google) Code Review
3 changed files with 26 additions and 25 deletions

View File

@@ -1,2 +1,2 @@
com.android.settings.testutils.FakeToggleController com.android.settings.testutils.FakeToggleController
com.android.settings.core.TogglePreferenceControllerTest$FakeToggle com.android.settings.testutils.FakeSliderController

View File

@@ -21,6 +21,7 @@ import static com.google.common.truth.Truth.assertThat;
import com.android.settings.core.BasePreferenceControllerSignatureInspector; import com.android.settings.core.BasePreferenceControllerSignatureInspector;
import com.android.settings.core.instrumentation.InstrumentableFragmentCodeInspector; import com.android.settings.core.instrumentation.InstrumentableFragmentCodeInspector;
import com.android.settings.search.SearchIndexProviderCodeInspector; import com.android.settings.search.SearchIndexProviderCodeInspector;
import com.android.settings.slices.SliceControllerInXmlCodeInspector;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before; import org.junit.Before;
@@ -50,6 +51,11 @@ public class CodeInspectionTest {
new InstrumentableFragmentCodeInspector(mClasses).run(); new InstrumentableFragmentCodeInspector(mClasses).run();
} }
@Test
public void runSliceControllerInXmlInspection() throws Exception {
new SliceControllerInXmlCodeInspector(mClasses).run();
}
@Test @Test
public void runBasePreferenceControllerConstructorSignatureInspection() { public void runBasePreferenceControllerConstructorSignatureInspection() {
new BasePreferenceControllerSignatureInspector(mClasses).run(); new BasePreferenceControllerSignatureInspector(mClasses).run();

View File

@@ -19,7 +19,6 @@ package com.android.settings.slices;
import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_CONTROLLER; import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_CONTROLLER;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.Truth.assertWithMessage; import static com.google.common.truth.Truth.assertWithMessage;
import static org.mockito.Mockito.spy;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
@@ -27,8 +26,8 @@ import android.provider.SearchIndexableResource;
import android.text.TextUtils; import android.text.TextUtils;
import com.android.settings.core.PreferenceXmlParserUtils; import com.android.settings.core.PreferenceXmlParserUtils;
import com.android.settings.core.SliderPreferenceController;
import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.TogglePreferenceController;
import com.android.settings.core.codeinspection.ClassScanner;
import com.android.settings.core.codeinspection.CodeInspector; import com.android.settings.core.codeinspection.CodeInspector;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.DatabaseIndexingUtils; import com.android.settings.search.DatabaseIndexingUtils;
@@ -36,25 +35,21 @@ import com.android.settings.search.Indexable;
import com.android.settings.search.SearchFeatureProvider; import com.android.settings.search.SearchFeatureProvider;
import com.android.settings.search.SearchFeatureProviderImpl; import com.android.settings.search.SearchFeatureProviderImpl;
import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserException;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.Collections;
import java.util.List; import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class) public class SliceControllerInXmlCodeInspector extends CodeInspector {
public class SliceControllerInXmlTest {
private static final List<Class> mSliceControllerClasses = Collections.singletonList( private static final List<Class> mSliceControllerClasses = Arrays.asList(
TogglePreferenceController.class TogglePreferenceController.class,
SliderPreferenceController.class
); );
private final List<String> mXmlDeclaredControllers = new ArrayList<>(); private final List<String> mXmlDeclaredControllers = new ArrayList<>();
@@ -66,15 +61,13 @@ public class SliceControllerInXmlTest {
+ "If it should not appear in XML, add the controller's classname to " + "If it should not appear in XML, add the controller's classname to "
+ "grandfather_slice_controller_not_in_xml. Controllers:\n"; + "grandfather_slice_controller_not_in_xml. Controllers:\n";
private Context mContext; private final Context mContext;
private final SearchFeatureProvider mSearchProvider;
private SearchFeatureProvider mSearchProvider; private final FakeFeatureFactory mFakeFeatureFactory;
private FakeFeatureFactory mFakeFeatureFactory;
@Before
public void setUp() throws IOException, XmlPullParserException {
mContext = spy(RuntimeEnvironment.application);
public SliceControllerInXmlCodeInspector(List<Class<?>> classes) throws Exception {
super(classes);
mContext = RuntimeEnvironment.application;
mSearchProvider = new SearchFeatureProviderImpl(); mSearchProvider = new SearchFeatureProviderImpl();
mFakeFeatureFactory = FakeFeatureFactory.setupForTest(); mFakeFeatureFactory = FakeFeatureFactory.setupForTest();
mFakeFeatureFactory.searchFeatureProvider = mSearchProvider; mFakeFeatureFactory.searchFeatureProvider = mSearchProvider;
@@ -102,13 +95,15 @@ public class SliceControllerInXmlTest {
assertThat(mXmlDeclaredControllers).isNotEmpty(); assertThat(mXmlDeclaredControllers).isNotEmpty();
} }
@Test @Override
public void testAllControllersDeclaredInXml() throws Exception { public void run() {
final List<Class<?>> classes =
new ClassScanner().getClassesForPackage(mContext.getPackageName());
final List<String> missingControllersInXml = new ArrayList<>(); final List<String> missingControllersInXml = new ArrayList<>();
for (Class<?> clazz : classes) { for (Class<?> clazz : mClasses) {
if (!isConcreteSettingsClass(clazz)) {
// Only care about non-abstract classes.
continue;
}
if (!isInlineSliceClass(clazz)) { if (!isInlineSliceClass(clazz)) {
// Only care about inline-slice controller classes. // Only care about inline-slice controller classes.
continue; continue;