// 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');
  });
}
