@@ -1558,6 +1558,50 @@ void main() {
15581558 expect (builder.properties.any ((DiagnosticsNode property) => property.name == 'renderObject' && property.value == null ), isTrue);
15591559 });
15601560
1561+ testWidgets ('debugFillProperties sorts dependencies in alphabetical order' , (WidgetTester tester) async {
1562+ final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder ();
1563+ final TestRenderObjectElement element = TestRenderObjectElement ();
1564+
1565+ final _TestInheritedElement focusTraversalOrder =
1566+ _TestInheritedElement (const FocusTraversalOrder (
1567+ order: LexicalFocusOrder ('' ),
1568+ child: Placeholder (),
1569+ ));
1570+ final _TestInheritedElement directionality =
1571+ _TestInheritedElement (const Directionality (
1572+ textDirection: TextDirection .ltr,
1573+ child: Placeholder (),
1574+ ));
1575+ final _TestInheritedElement buttonBarTheme =
1576+ _TestInheritedElement (const ButtonBarTheme (
1577+ data: ButtonBarThemeData (
1578+ alignment: MainAxisAlignment .center,
1579+ ),
1580+ child: Placeholder (),
1581+ ));
1582+
1583+ // Dependencies are added out of alphabetical order.
1584+ element
1585+ ..dependOnInheritedElement (focusTraversalOrder)
1586+ ..dependOnInheritedElement (directionality)
1587+ ..dependOnInheritedElement (buttonBarTheme);
1588+
1589+ // Dependencies will be sorted by [debugFillProperties].
1590+ element.debugFillProperties (builder);
1591+
1592+ expect (
1593+ builder.properties.any ((DiagnosticsNode property) => property.name == 'dependencies' && property.value != null ),
1594+ isTrue,
1595+ );
1596+ final DiagnosticsProperty <List <DiagnosticsNode >> dependenciesProperty =
1597+ builder.properties.firstWhere ((DiagnosticsNode property) => property.name == 'dependencies' ) as DiagnosticsProperty <List <DiagnosticsNode >>;
1598+ expect (dependenciesProperty, isNotNull);
1599+
1600+ final List <DiagnosticsNode > dependencies = dependenciesProperty.value! ;
1601+ expect (dependencies.length, equals (3 ));
1602+ expect (dependencies.toString (), '[ButtonBarTheme, Directionality, FocusTraversalOrder]' );
1603+ });
1604+
15611605 testWidgets ('BuildOwner.globalKeyCount keeps track of in-use global keys' , (WidgetTester tester) async {
15621606 final int initialCount = tester.binding.buildOwner! .globalKeyCount;
15631607 final GlobalKey key1 = GlobalKey ();
0 commit comments