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.language.LanguageAndRegionSettings
com.android.settings.notification.ZenModePrioritySettings
com.android.settings.accounts.AccountDetailDashboardFragment
com.android.settings.fuelgauge.PowerUsageAnomalyDetails
com.android.settings.fuelgauge.PowerUsageDetail
com.android.settings.fuelgauge.AdvancedPowerUsageDetail
com.android.settings.deviceinfo.StorageProfileFragment
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.wifi.WifiInfo
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.deviceinfo.Status
com.android.settings.datausage.DataSaverSummary
com.android.settings.notification.ChannelNotificationSettings
com.android.settings.datausage.AppDataUsage
com.android.settings.accessibility.FontSizePreferenceFragmentForSetupWizard
com.android.settings.inputmethod.PhysicalKeyboardFragment
com.android.settings.applications.ManageDomainUrls
com.android.settings.applications.WriteSettingsDetails
com.android.settings.location.LocationSettings
@@ -35,14 +31,12 @@ com.android.settings.applications.ProcessStatsSummary
com.android.settings.users.RestrictedProfileSettings
com.android.settings.accounts.ChooseAccountActivity
com.android.settings.accounts.ManagedProfileSettings
com.android.settings.notification.ZenModeAutomationSettings
com.android.settings.accessibility.ToggleAutoclickPreferenceFragment
com.android.settings.applications.AppLaunchSettings
com.android.settings.fuelgauge.BatterySaverSettings
com.android.settings.location.ScanningSettings
com.android.settings.tts.TextToSpeechSettings
com.android.settings.applications.ProcessStatsUi
com.android.settings.fuelgauge.PowerUsageDetail
com.android.settings.notification.ZenModeScheduleRuleSettings
com.android.settings.datausage.BillingCycleSettings
com.android.settings.notification.NotificationStation
@@ -52,18 +46,13 @@ com.android.settings.accessibility.ToggleSelectToSpeakPreferenceFragmentForSetup
com.android.settings.accounts.AccountSyncSettings
com.android.settings.notification.RedactionInterstitial$RedactionInterstitialFragment
com.android.settings.inputmethod.InputMethodAndSubtypeEnabler
com.android.settings.inputmethod.AvailableVirtualKeyboardFragment
com.android.settings.applications.DrawOverlayDetails
com.android.settings.tts.TtsEngineSettingsFragment
com.android.settings.backup.ToggleBackupSettingFragment
com.android.settings.users.UserDetailsSettings
com.android.settings.datausage.UnrestrictedDataAccess
com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragmentForSetupWizard
com.android.settings.fuelgauge.BatteryHistoryDetail
com.android.settings.fuelgauge.PowerUsageSummary
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.deviceinfo.PublicVolumeSettings
com.android.settings.applications.InstalledAppDetails
@@ -77,15 +66,12 @@ com.android.settings.deviceinfo.PrivateVolumeUnmount
com.android.settings.deletionhelper.AutomaticStorageManagerSettings
com.android.settings.notification.ZenAccessSettings
com.android.settings.accessibility.ToggleFontSizePreferenceFragment
com.android.settings.accessibility.ToggleGlobalGesturePreferenceFragment
com.android.settings.wifi.ConfigureWifiSettings
com.android.settings.applications.PremiumSmsAccess
com.android.settings.applications.UsageAccessDetails
com.android.settings.applications.AppStorageSettings
com.android.settings.notification.NotificationAccessSettings
com.android.settings.notification.ZenModeSettings
com.android.settings.accessibility.ToggleDaltonizerPreferenceFragment
com.android.settings.applications.ConvertToFbe
com.android.settings.localepicker.LocaleListEditor
com.android.settings.qstile.DevelopmentTileConfigActivity$DevelopmentTileConfigFragment
com.android.settings.applications.ExternalSourcesDetails

View File

@@ -1,2 +1 @@
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.fuelgauge.PowerUsageSummary
com.android.settings.inputmethod.InputMethodAndLanguageSettings

View File

@@ -24,6 +24,8 @@ import java.io.InputStreamReader;
import java.lang.reflect.Modifier;
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()}
* method.
@@ -46,6 +48,17 @@ public abstract class CodeInspector {
*/
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) {
// Abstract classes
if (Modifier.isAbstract(clazz.getModifiers())) {

View File

@@ -51,9 +51,11 @@ public class InstrumentableFragmentCodeInspector extends CodeInspector {
}
final String className = clazz.getName();
// If it's a fragment, it must also be instrumentable.
final boolean whitelisted =
grandfather_notImplementingInstrumentable.remove(className);
if (Fragment.class.isAssignableFrom(clazz)
&& !Instrumentable.class.isAssignableFrom(clazz)
&& !grandfather_notImplementingInstrumentable.contains(className)) {
&& !whitelisted) {
broken.add(className);
}
}
@@ -65,5 +67,7 @@ public class InstrumentableFragmentCodeInspector extends CodeInspector {
assertWithMessage(sb.toString())
.that(broken.isEmpty())
.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.
final boolean implementsIndexable = Indexable.class.isAssignableFrom(clazz);
if (!implementsIndexable) {
if (!notImplementingIndexableGrandfatherList.contains(className)) {
if (!notImplementingIndexableGrandfatherList.remove(className)) {
notImplementingIndexable.add(className);
}
continue;
@@ -99,7 +99,7 @@ public class SearchIndexProviderCodeInspector extends CodeInspector {
final boolean hasSearchIndexProvider = hasSearchIndexProvider(clazz);
// If it implements Indexable, it must also implement the index provider field.
if (!hasSearchIndexProvider) {
if (!notImplementingIndexProviderGrandfatherList.contains(className)) {
if (!notImplementingIndexProviderGrandfatherList.remove(className)) {
notImplementingIndexProvider.add(className);
}
continue;
@@ -109,14 +109,14 @@ public class SearchIndexProviderCodeInspector extends CodeInspector {
final boolean isSharingPrefControllers = DashboardFragmentSearchIndexProviderInspector
.isSharingPreferenceControllers(clazz);
if (!isSharingPrefControllers) {
if (!notSharingPrefControllersGrandfatherList.contains(className)) {
if (!notSharingPrefControllersGrandfatherList.remove(className)) {
notSharingPreferenceControllers.add(className);
}
continue;
}
// Must be in SearchProviderRegistry
if (SearchIndexableResources.getResourceByName(className) == null) {
if (!notInSearchIndexableRegistryGrandfatherList.contains(className)) {
if (!notInSearchIndexableRegistryGrandfatherList.remove(className)) {
notInSearchProviderRegistry.add(className);
}
continue;
@@ -145,6 +145,15 @@ public class SearchIndexProviderCodeInspector extends CodeInspector {
assertWithMessage(notInProviderRegistryError)
.that(notInSearchProviderRegistry)
.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) {