@@ -1558,6 +1558,50 @@ void main() {
1558
1558
expect (builder.properties.any ((DiagnosticsNode property) => property.name == 'renderObject' && property.value == null ), isTrue);
1559
1559
});
1560
1560
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
+
1561
1605
testWidgets ('BuildOwner.globalKeyCount keeps track of in-use global keys' , (WidgetTester tester) async {
1562
1606
final int initialCount = tester.binding.buildOwner! .globalKeyCount;
1563
1607
final GlobalKey key1 = GlobalKey ();
0 commit comments