diff --git a/packages/flutter/lib/src/material/theme_data.dart b/packages/flutter/lib/src/material/theme_data.dart index 4eef2222ce..ad5c1ded25 100644 --- a/packages/flutter/lib/src/material/theme_data.dart +++ b/packages/flutter/lib/src/material/theme_data.dart @@ -1441,66 +1441,65 @@ class ThemeData extends Diagnosticable { void debugFillProperties(DiagnosticPropertiesBuilder properties) { super.debugFillProperties(properties); final ThemeData defaultData = ThemeData.fallback(); - properties.add(EnumProperty('platform', platform, defaultValue: defaultTargetPlatform)); - properties.add(EnumProperty('brightness', brightness, defaultValue: defaultData.brightness)); - properties.add(DiagnosticsProperty('visualDensity', visualDensity, defaultValue: defaultData.visualDensity)); - properties.add(ColorProperty('primaryColor', primaryColor, defaultValue: defaultData.primaryColor)); - properties.add(EnumProperty('primaryColorBrightness', primaryColorBrightness, defaultValue: defaultData.primaryColorBrightness)); - properties.add(ColorProperty('accentColor', accentColor, defaultValue: defaultData.accentColor)); - properties.add(EnumProperty('accentColorBrightness', accentColorBrightness, defaultValue: defaultData.accentColorBrightness)); - properties.add(ColorProperty('canvasColor', canvasColor, defaultValue: defaultData.canvasColor)); - properties.add(ColorProperty('scaffoldBackgroundColor', scaffoldBackgroundColor, defaultValue: defaultData.scaffoldBackgroundColor)); - properties.add(ColorProperty('bottomAppBarColor', bottomAppBarColor, defaultValue: defaultData.bottomAppBarColor)); - properties.add(ColorProperty('cardColor', cardColor, defaultValue: defaultData.cardColor)); - properties.add(ColorProperty('dividerColor', dividerColor, defaultValue: defaultData.dividerColor)); - properties.add(ColorProperty('focusColor', focusColor, defaultValue: defaultData.focusColor)); - properties.add(ColorProperty('hoverColor', hoverColor, defaultValue: defaultData.hoverColor)); - properties.add(ColorProperty('highlightColor', highlightColor, defaultValue: defaultData.highlightColor)); - properties.add(ColorProperty('splashColor', splashColor, defaultValue: defaultData.splashColor)); - properties.add(ColorProperty('selectedRowColor', selectedRowColor, defaultValue: defaultData.selectedRowColor)); - properties.add(ColorProperty('unselectedWidgetColor', unselectedWidgetColor, defaultValue: defaultData.unselectedWidgetColor)); - properties.add(ColorProperty('disabledColor', disabledColor, defaultValue: defaultData.disabledColor)); - properties.add(ColorProperty('buttonColor', buttonColor, defaultValue: defaultData.buttonColor)); - properties.add(ColorProperty('secondaryHeaderColor', secondaryHeaderColor, defaultValue: defaultData.secondaryHeaderColor)); - properties.add(ColorProperty('textSelectionColor', textSelectionColor, defaultValue: defaultData.textSelectionColor)); - properties.add(ColorProperty('cursorColor', cursorColor, defaultValue: defaultData.cursorColor)); - properties.add(ColorProperty('textSelectionHandleColor', textSelectionHandleColor, defaultValue: defaultData.textSelectionHandleColor)); - properties.add(ColorProperty('backgroundColor', backgroundColor, defaultValue: defaultData.backgroundColor)); - properties.add(ColorProperty('dialogBackgroundColor', dialogBackgroundColor, defaultValue: defaultData.dialogBackgroundColor)); - properties.add(ColorProperty('indicatorColor', indicatorColor, defaultValue: defaultData.indicatorColor)); - properties.add(ColorProperty('hintColor', hintColor, defaultValue: defaultData.hintColor)); - properties.add(ColorProperty('errorColor', errorColor, defaultValue: defaultData.errorColor)); - properties.add(ColorProperty('toggleableActiveColor', toggleableActiveColor, defaultValue: defaultData.toggleableActiveColor)); - properties.add(DiagnosticsProperty('buttonTheme', buttonTheme)); - properties.add(DiagnosticsProperty('toggleButtonsTheme', toggleButtonsTheme)); - properties.add(DiagnosticsProperty('textTheme', textTheme)); - properties.add(DiagnosticsProperty('primaryTextTheme', primaryTextTheme)); - properties.add(DiagnosticsProperty('accentTextTheme', accentTextTheme)); - properties.add(DiagnosticsProperty('inputDecorationTheme', inputDecorationTheme)); - properties.add(DiagnosticsProperty('iconTheme', iconTheme)); - properties.add(DiagnosticsProperty('primaryIconTheme', primaryIconTheme)); - properties.add(DiagnosticsProperty('accentIconTheme', accentIconTheme)); - properties.add(DiagnosticsProperty('sliderTheme', sliderTheme)); - properties.add(DiagnosticsProperty('tabBarTheme', tabBarTheme)); - properties.add(DiagnosticsProperty('tooltipTheme', tooltipTheme)); - properties.add(DiagnosticsProperty('cardTheme', cardTheme)); - properties.add(DiagnosticsProperty('chipTheme', chipTheme)); - properties.add(DiagnosticsProperty('materialTapTargetSize', materialTapTargetSize)); - properties.add(DiagnosticsProperty('applyElevationOverlayColor', applyElevationOverlayColor)); - properties.add(DiagnosticsProperty('pageTransitionsTheme', pageTransitionsTheme)); - properties.add(DiagnosticsProperty('appBarTheme', appBarTheme, defaultValue: defaultData.appBarTheme)); - properties.add(DiagnosticsProperty('bottomAppBarTheme', bottomAppBarTheme, defaultValue: defaultData.bottomAppBarTheme)); - properties.add(DiagnosticsProperty('colorScheme', colorScheme, defaultValue: defaultData.colorScheme)); - properties.add(DiagnosticsProperty('dialogTheme', dialogTheme, defaultValue: defaultData.dialogTheme)); - properties.add(DiagnosticsProperty('floatingActionButtonThemeData', floatingActionButtonTheme, defaultValue: defaultData.floatingActionButtonTheme)); - properties.add(DiagnosticsProperty('typography', typography, defaultValue: defaultData.typography)); - properties.add(DiagnosticsProperty('cupertinoOverrideTheme', cupertinoOverrideTheme, defaultValue: defaultData.cupertinoOverrideTheme)); - properties.add(DiagnosticsProperty('snackBarTheme', snackBarTheme, defaultValue: defaultData.snackBarTheme)); - properties.add(DiagnosticsProperty('bottomSheetTheme', bottomSheetTheme, defaultValue: defaultData.bottomSheetTheme)); - properties.add(DiagnosticsProperty('popupMenuTheme', popupMenuTheme, defaultValue: defaultData.popupMenuTheme)); - properties.add(DiagnosticsProperty('bannerTheme', bannerTheme, defaultValue: defaultData.bannerTheme)); - properties.add(DiagnosticsProperty('dividerTheme', dividerTheme, defaultValue: defaultData.dividerTheme)); - properties.add(DiagnosticsProperty('buttonBarTheme', buttonBarTheme, defaultValue: defaultData.buttonBarTheme)); + properties.add(EnumProperty('platform', platform, defaultValue: defaultTargetPlatform, level: DiagnosticLevel.debug)); + properties.add(EnumProperty('brightness', brightness, defaultValue: defaultData.brightness, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('primaryColor', primaryColor, defaultValue: defaultData.primaryColor, level: DiagnosticLevel.debug)); + properties.add(EnumProperty('primaryColorBrightness', primaryColorBrightness, defaultValue: defaultData.primaryColorBrightness, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('accentColor', accentColor, defaultValue: defaultData.accentColor, level: DiagnosticLevel.debug)); + properties.add(EnumProperty('accentColorBrightness', accentColorBrightness, defaultValue: defaultData.accentColorBrightness, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('canvasColor', canvasColor, defaultValue: defaultData.canvasColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('scaffoldBackgroundColor', scaffoldBackgroundColor, defaultValue: defaultData.scaffoldBackgroundColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('bottomAppBarColor', bottomAppBarColor, defaultValue: defaultData.bottomAppBarColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('cardColor', cardColor, defaultValue: defaultData.cardColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('dividerColor', dividerColor, defaultValue: defaultData.dividerColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('focusColor', focusColor, defaultValue: defaultData.focusColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('hoverColor', hoverColor, defaultValue: defaultData.hoverColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('highlightColor', highlightColor, defaultValue: defaultData.highlightColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('splashColor', splashColor, defaultValue: defaultData.splashColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('selectedRowColor', selectedRowColor, defaultValue: defaultData.selectedRowColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('unselectedWidgetColor', unselectedWidgetColor, defaultValue: defaultData.unselectedWidgetColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('disabledColor', disabledColor, defaultValue: defaultData.disabledColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('buttonColor', buttonColor, defaultValue: defaultData.buttonColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('secondaryHeaderColor', secondaryHeaderColor, defaultValue: defaultData.secondaryHeaderColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('textSelectionColor', textSelectionColor, defaultValue: defaultData.textSelectionColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('cursorColor', cursorColor, defaultValue: defaultData.cursorColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('textSelectionHandleColor', textSelectionHandleColor, defaultValue: defaultData.textSelectionHandleColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('backgroundColor', backgroundColor, defaultValue: defaultData.backgroundColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('dialogBackgroundColor', dialogBackgroundColor, defaultValue: defaultData.dialogBackgroundColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('indicatorColor', indicatorColor, defaultValue: defaultData.indicatorColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('hintColor', hintColor, defaultValue: defaultData.hintColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('errorColor', errorColor, defaultValue: defaultData.errorColor, level: DiagnosticLevel.debug)); + properties.add(ColorProperty('toggleableActiveColor', toggleableActiveColor, defaultValue: defaultData.toggleableActiveColor, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('buttonTheme', buttonTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('toggleButtonsTheme', toggleButtonsTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('textTheme', textTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('primaryTextTheme', primaryTextTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('accentTextTheme', accentTextTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('inputDecorationTheme', inputDecorationTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('iconTheme', iconTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('primaryIconTheme', primaryIconTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('accentIconTheme', accentIconTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('sliderTheme', sliderTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('tabBarTheme', tabBarTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('tooltipTheme', tooltipTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('cardTheme', cardTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('chipTheme', chipTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('materialTapTargetSize', materialTapTargetSize, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('applyElevationOverlayColor', applyElevationOverlayColor, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('pageTransitionsTheme', pageTransitionsTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('appBarTheme', appBarTheme, defaultValue: defaultData.appBarTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('bottomAppBarTheme', bottomAppBarTheme, defaultValue: defaultData.bottomAppBarTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('colorScheme', colorScheme, defaultValue: defaultData.colorScheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('dialogTheme', dialogTheme, defaultValue: defaultData.dialogTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('floatingActionButtonThemeData', floatingActionButtonTheme, defaultValue: defaultData.floatingActionButtonTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('typography', typography, defaultValue: defaultData.typography, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('cupertinoOverrideTheme', cupertinoOverrideTheme, defaultValue: defaultData.cupertinoOverrideTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('snackBarTheme', snackBarTheme, defaultValue: defaultData.snackBarTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('bottomSheetTheme', bottomSheetTheme, defaultValue: defaultData.bottomSheetTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('popupMenuTheme', popupMenuTheme, defaultValue: defaultData.popupMenuTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('bannerTheme', bannerTheme, defaultValue: defaultData.bannerTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('dividerTheme', dividerTheme, defaultValue: defaultData.dividerTheme, level: DiagnosticLevel.debug)); + properties.add(DiagnosticsProperty('buttonBarTheme', buttonBarTheme, defaultValue: defaultData.buttonBarTheme, level: DiagnosticLevel.debug)); } } diff --git a/packages/flutter/test/material/theme_data_test.dart b/packages/flutter/test/material/theme_data_test.dart index 02b59d3776..61d3f5e386 100644 --- a/packages/flutter/test/material/theme_data_test.dart +++ b/packages/flutter/test/material/theme_data_test.dart @@ -476,4 +476,18 @@ void main() { expect(themeDataCopy.buttonBarTheme, equals(otherTheme.buttonBarTheme)); }); + testWidgets('ThemeData.toString has less than 200 characters output', (WidgetTester tester) async { + // This test makes sure that the ThemeData debug output doesn't get too + // verbose, which has been a problem in the past. + + const ColorScheme darkColors = ColorScheme.dark(); + final ThemeData darkTheme = ThemeData.from(colorScheme: darkColors); + + expect(darkTheme.toString().length, lessThan(200)); + + const ColorScheme lightColors = ColorScheme.light(); + final ThemeData lightTheme = ThemeData.from(colorScheme: lightColors); + + expect(lightTheme.toString().length, lessThan(200)); + }); }