| // Copyright 2014 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:flutter/material.dart'; |
| import 'package:flutter_test/flutter_test.dart'; |
| |
| void main() { |
| testWidgets('collectAllElements goes in LTR DFS', (WidgetTester tester) async { |
| final GlobalKey key = GlobalKey(); |
| await tester.pumpWidget(Directionality( |
| key: key, |
| textDirection: TextDirection.ltr, |
| child: Row( |
| children: <Widget>[ |
| RichText(text: const TextSpan(text: 'a')), |
| RichText(text: const TextSpan(text: 'b')), |
| ], |
| ), |
| )); |
| |
| final List<Element> elements = collectAllElementsFrom( |
| key.currentContext! as Element, |
| skipOffstage: false, |
| ).toList(); |
| |
| expect(elements.length, 3); |
| expect(elements[0].widget, isA<Row>()); |
| expect(elements[1].widget, isA<RichText>()); |
| expect(((elements[1].widget as RichText).text as TextSpan).text, 'a'); |
| expect(elements[2].widget, isA<RichText>()); |
| expect(((elements[2].widget as RichText).text as TextSpan).text, 'b'); |
| }); |
| } |