Merge "Code inspector test clean up."

This commit is contained in:
TreeHugger Robot
2017-05-15 23:33:01 +00:00
committed by Android (Google) Code Review
7 changed files with 31 additions and 25 deletions

View File

@@ -1,9 +1,7 @@
com.android.settings.bluetooth.DevicePickerFragment com.android.settings.bluetooth.DevicePickerFragment
com.android.settings.language.LanguageAndRegionSettings
com.android.settings.notification.ZenModePrioritySettings com.android.settings.notification.ZenModePrioritySettings
com.android.settings.accounts.AccountDetailDashboardFragment com.android.settings.accounts.AccountDetailDashboardFragment
com.android.settings.fuelgauge.PowerUsageAnomalyDetails com.android.settings.fuelgauge.PowerUsageAnomalyDetails
com.android.settings.fuelgauge.PowerUsageDetail
com.android.settings.fuelgauge.AdvancedPowerUsageDetail com.android.settings.fuelgauge.AdvancedPowerUsageDetail
com.android.settings.deviceinfo.StorageProfileFragment com.android.settings.deviceinfo.StorageProfileFragment
com.android.settings.wifi.details.WifiNetworkDetailsFragment com.android.settings.wifi.details.WifiNetworkDetailsFragment

View File

@@ -18,16 +18,12 @@ com.android.settings.fingerprint.FingerprintSettings$FingerprintSettingsFragment
com.android.settings.applications.ProcessStatsDetail com.android.settings.applications.ProcessStatsDetail
com.android.settings.wifi.WifiInfo com.android.settings.wifi.WifiInfo
com.android.settings.applications.VrListenerSettings com.android.settings.applications.VrListenerSettings
com.android.settings.nfc.PaymentSettings
com.android.settings.inputmethod.VirtualKeyboardFragment
com.android.settings.bluetooth.DevicePickerFragment
com.android.settings.inputmethod.UserDictionaryList com.android.settings.inputmethod.UserDictionaryList
com.android.settings.deviceinfo.Status com.android.settings.deviceinfo.Status
com.android.settings.datausage.DataSaverSummary com.android.settings.datausage.DataSaverSummary
com.android.settings.notification.ChannelNotificationSettings com.android.settings.notification.ChannelNotificationSettings
com.android.settings.datausage.AppDataUsage com.android.settings.datausage.AppDataUsage
com.android.settings.accessibility.FontSizePreferenceFragmentForSetupWizard com.android.settings.accessibility.FontSizePreferenceFragmentForSetupWizard
com.android.settings.inputmethod.PhysicalKeyboardFragment
com.android.settings.applications.ManageDomainUrls com.android.settings.applications.ManageDomainUrls
com.android.settings.applications.WriteSettingsDetails com.android.settings.applications.WriteSettingsDetails
com.android.settings.location.LocationSettings com.android.settings.location.LocationSettings
@@ -35,14 +31,12 @@ com.android.settings.applications.ProcessStatsSummary
com.android.settings.users.RestrictedProfileSettings com.android.settings.users.RestrictedProfileSettings
com.android.settings.accounts.ChooseAccountActivity com.android.settings.accounts.ChooseAccountActivity
com.android.settings.accounts.ManagedProfileSettings com.android.settings.accounts.ManagedProfileSettings
com.android.settings.notification.ZenModeAutomationSettings
com.android.settings.accessibility.ToggleAutoclickPreferenceFragment com.android.settings.accessibility.ToggleAutoclickPreferenceFragment
com.android.settings.applications.AppLaunchSettings com.android.settings.applications.AppLaunchSettings
com.android.settings.fuelgauge.BatterySaverSettings com.android.settings.fuelgauge.BatterySaverSettings
com.android.settings.location.ScanningSettings com.android.settings.location.ScanningSettings
com.android.settings.tts.TextToSpeechSettings com.android.settings.tts.TextToSpeechSettings
com.android.settings.applications.ProcessStatsUi com.android.settings.applications.ProcessStatsUi
com.android.settings.fuelgauge.PowerUsageDetail
com.android.settings.notification.ZenModeScheduleRuleSettings com.android.settings.notification.ZenModeScheduleRuleSettings
com.android.settings.datausage.BillingCycleSettings com.android.settings.datausage.BillingCycleSettings
com.android.settings.notification.NotificationStation com.android.settings.notification.NotificationStation
@@ -52,18 +46,13 @@ com.android.settings.accessibility.ToggleSelectToSpeakPreferenceFragmentForSetup
com.android.settings.accounts.AccountSyncSettings com.android.settings.accounts.AccountSyncSettings
com.android.settings.notification.RedactionInterstitial$RedactionInterstitialFragment com.android.settings.notification.RedactionInterstitial$RedactionInterstitialFragment
com.android.settings.inputmethod.InputMethodAndSubtypeEnabler com.android.settings.inputmethod.InputMethodAndSubtypeEnabler
com.android.settings.inputmethod.AvailableVirtualKeyboardFragment
com.android.settings.applications.DrawOverlayDetails com.android.settings.applications.DrawOverlayDetails
com.android.settings.tts.TtsEngineSettingsFragment
com.android.settings.backup.ToggleBackupSettingFragment com.android.settings.backup.ToggleBackupSettingFragment
com.android.settings.users.UserDetailsSettings com.android.settings.users.UserDetailsSettings
com.android.settings.datausage.UnrestrictedDataAccess com.android.settings.datausage.UnrestrictedDataAccess
com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragmentForSetupWizard com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragmentForSetupWizard
com.android.settings.fuelgauge.BatteryHistoryDetail com.android.settings.fuelgauge.BatteryHistoryDetail
com.android.settings.fuelgauge.PowerUsageSummary
com.android.settings.applications.RunningServices com.android.settings.applications.RunningServices
com.android.settings.wifi.p2p.WifiP2pSettings
com.android.settings.applications.assistant.ManageAssist
com.android.settings.applications.ConfirmConvertToFbe com.android.settings.applications.ConfirmConvertToFbe
com.android.settings.deviceinfo.PublicVolumeSettings com.android.settings.deviceinfo.PublicVolumeSettings
com.android.settings.applications.InstalledAppDetails com.android.settings.applications.InstalledAppDetails
@@ -77,15 +66,12 @@ com.android.settings.deviceinfo.PrivateVolumeUnmount
com.android.settings.deletionhelper.AutomaticStorageManagerSettings com.android.settings.deletionhelper.AutomaticStorageManagerSettings
com.android.settings.notification.ZenAccessSettings com.android.settings.notification.ZenAccessSettings
com.android.settings.accessibility.ToggleFontSizePreferenceFragment com.android.settings.accessibility.ToggleFontSizePreferenceFragment
com.android.settings.accessibility.ToggleGlobalGesturePreferenceFragment
com.android.settings.wifi.ConfigureWifiSettings
com.android.settings.applications.PremiumSmsAccess com.android.settings.applications.PremiumSmsAccess
com.android.settings.applications.UsageAccessDetails com.android.settings.applications.UsageAccessDetails
com.android.settings.applications.AppStorageSettings com.android.settings.applications.AppStorageSettings
com.android.settings.notification.NotificationAccessSettings com.android.settings.notification.NotificationAccessSettings
com.android.settings.notification.ZenModeSettings com.android.settings.notification.ZenModeSettings
com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment
com.android.settings.applications.ConvertToFbe
com.android.settings.localepicker.LocaleListEditor com.android.settings.localepicker.LocaleListEditor
com.android.settings.qstile.DevelopmentTileConfigActivity$DevelopmentTileConfigFragment com.android.settings.qstile.DevelopmentTileConfigActivity$DevelopmentTileConfigFragment
com.android.settings.applications.ExternalSourcesDetails com.android.settings.applications.ExternalSourcesDetails

View File

@@ -1,2 +1 @@
com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard
com.android.settings.print.PrintServiceSettingsFragment

View File

@@ -1,5 +1,2 @@
com.android.settings.language.LanguageAndInputSettings
com.android.settings.enterprise.EnterprisePrivacySettings
com.android.settings.applications.AdvancedAppSettings com.android.settings.applications.AdvancedAppSettings
com.android.settings.fuelgauge.PowerUsageSummary com.android.settings.fuelgauge.PowerUsageSummary
com.android.settings.inputmethod.InputMethodAndLanguageSettings

View File

@@ -24,6 +24,8 @@ import java.io.InputStreamReader;
import java.lang.reflect.Modifier; import java.lang.reflect.Modifier;
import java.util.List; import java.util.List;
import static com.google.common.truth.Truth.assertWithMessage;
/** /**
* Inspector takes a list of class objects and perform static code analysis in its {@link #run()} * Inspector takes a list of class objects and perform static code analysis in its {@link #run()}
* method. * method.
@@ -46,6 +48,17 @@ public abstract class CodeInspector {
*/ */
public abstract void run(); public abstract void run();
protected void assertNoObsoleteInGrandfatherList(String listName, List<String> list) {
final StringBuilder obsoleteGrandfatherItems = new StringBuilder(
listName + " contains item that should not be grandfathered.\n");
for (String c : list) {
obsoleteGrandfatherItems.append(c).append("\n");
}
assertWithMessage(obsoleteGrandfatherItems.toString())
.that(list)
.isEmpty();
}
protected boolean isConcreteSettingsClass(Class clazz) { protected boolean isConcreteSettingsClass(Class clazz) {
// Abstract classes // Abstract classes
if (Modifier.isAbstract(clazz.getModifiers())) { if (Modifier.isAbstract(clazz.getModifiers())) {

View File

@@ -51,9 +51,11 @@ public class InstrumentableFragmentCodeInspector extends CodeInspector {
} }
final String className = clazz.getName(); final String className = clazz.getName();
// If it's a fragment, it must also be instrumentable. // If it's a fragment, it must also be instrumentable.
final boolean whitelisted =
grandfather_notImplementingInstrumentable.remove(className);
if (Fragment.class.isAssignableFrom(clazz) if (Fragment.class.isAssignableFrom(clazz)
&& !Instrumentable.class.isAssignableFrom(clazz) && !Instrumentable.class.isAssignableFrom(clazz)
&& !grandfather_notImplementingInstrumentable.contains(className)) { && !whitelisted) {
broken.add(className); broken.add(className);
} }
} }
@@ -65,5 +67,7 @@ public class InstrumentableFragmentCodeInspector extends CodeInspector {
assertWithMessage(sb.toString()) assertWithMessage(sb.toString())
.that(broken.isEmpty()) .that(broken.isEmpty())
.isTrue(); .isTrue();
assertNoObsoleteInGrandfatherList("grandfather_not_implementing_instrumentable",
grandfather_notImplementingInstrumentable);
} }
} }

View File

@@ -91,7 +91,7 @@ public class SearchIndexProviderCodeInspector extends CodeInspector {
// If it's a SettingsPreferenceFragment, it must also be Indexable. // If it's a SettingsPreferenceFragment, it must also be Indexable.
final boolean implementsIndexable = Indexable.class.isAssignableFrom(clazz); final boolean implementsIndexable = Indexable.class.isAssignableFrom(clazz);
if (!implementsIndexable) { if (!implementsIndexable) {
if (!notImplementingIndexableGrandfatherList.contains(className)) { if (!notImplementingIndexableGrandfatherList.remove(className)) {
notImplementingIndexable.add(className); notImplementingIndexable.add(className);
} }
continue; continue;
@@ -99,7 +99,7 @@ public class SearchIndexProviderCodeInspector extends CodeInspector {
final boolean hasSearchIndexProvider = hasSearchIndexProvider(clazz); final boolean hasSearchIndexProvider = hasSearchIndexProvider(clazz);
// If it implements Indexable, it must also implement the index provider field. // If it implements Indexable, it must also implement the index provider field.
if (!hasSearchIndexProvider) { if (!hasSearchIndexProvider) {
if (!notImplementingIndexProviderGrandfatherList.contains(className)) { if (!notImplementingIndexProviderGrandfatherList.remove(className)) {
notImplementingIndexProvider.add(className); notImplementingIndexProvider.add(className);
} }
continue; continue;
@@ -109,14 +109,14 @@ public class SearchIndexProviderCodeInspector extends CodeInspector {
final boolean isSharingPrefControllers = DashboardFragmentSearchIndexProviderInspector final boolean isSharingPrefControllers = DashboardFragmentSearchIndexProviderInspector
.isSharingPreferenceControllers(clazz); .isSharingPreferenceControllers(clazz);
if (!isSharingPrefControllers) { if (!isSharingPrefControllers) {
if (!notSharingPrefControllersGrandfatherList.contains(className)) { if (!notSharingPrefControllersGrandfatherList.remove(className)) {
notSharingPreferenceControllers.add(className); notSharingPreferenceControllers.add(className);
} }
continue; continue;
} }
// Must be in SearchProviderRegistry // Must be in SearchProviderRegistry
if (SearchIndexableResources.getResourceByName(className) == null) { if (SearchIndexableResources.getResourceByName(className) == null) {
if (!notInSearchIndexableRegistryGrandfatherList.contains(className)) { if (!notInSearchIndexableRegistryGrandfatherList.remove(className)) {
notInSearchProviderRegistry.add(className); notInSearchProviderRegistry.add(className);
} }
continue; continue;
@@ -145,6 +145,15 @@ public class SearchIndexProviderCodeInspector extends CodeInspector {
assertWithMessage(notInProviderRegistryError) assertWithMessage(notInProviderRegistryError)
.that(notInSearchProviderRegistry) .that(notInSearchProviderRegistry)
.isEmpty(); .isEmpty();
assertNoObsoleteInGrandfatherList("grandfather_not_implementing_indexable",
notImplementingIndexableGrandfatherList);
assertNoObsoleteInGrandfatherList("grandfather_not_implementing_index_provider",
notImplementingIndexProviderGrandfatherList);
assertNoObsoleteInGrandfatherList("grandfather_not_in_search_index_provider_registry",
notInSearchIndexableRegistryGrandfatherList);
assertNoObsoleteInGrandfatherList(
"grandfather_not_sharing_pref_controllers_with_search_provider",
notSharingPrefControllersGrandfatherList);
} }
private boolean hasSearchIndexProvider(Class clazz) { private boolean hasSearchIndexProvider(Class clazz) {