Merge "Code inspector test clean up."
This commit is contained in:
committed by
Android (Google) Code Review
commit
5362bb2222
@@ -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
|
||||||
|
@@ -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
|
||||||
|
@@ -1,2 +1 @@
|
|||||||
com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard
|
com.android.settings.display.ScreenZoomPreferenceFragmentForSetupWizard
|
||||||
com.android.settings.print.PrintServiceSettingsFragment
|
|
||||||
|
@@ -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
|
|
||||||
|
@@ -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())) {
|
||||||
|
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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) {
|
||||||
|
Reference in New Issue
Block a user