Add test for focus example 2 (#147624)

Part of #130459. Adds tests to [the last focus example](https://api.flutter.dev/flutter/widgets/Focus-class.html#widgets.Focus.3).
This commit is contained in:
derdilla 2024-05-21 20:53:55 +02:00 committed by GitHub
parent 7a3baded76
commit e0533caeb7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 42 additions and 1 deletions

View File

@ -431,7 +431,6 @@ final Set<String> _knownMissingTests = <String>{
'examples/api/test/widgets/actions/action_listener.0_test.dart',
'examples/api/test/widgets/actions/focusable_action_detector.0_test.dart',
'examples/api/test/widgets/color_filter/color_filtered.0_test.dart',
'examples/api/test/widgets/focus_scope/focus.2_test.dart',
'examples/api/test/widgets/focus_scope/focus_scope.0_test.dart',
'examples/api/test/widgets/scroll_view/custom_scroll_view.1_test.dart',
'examples/api/test/widgets/inherited_notifier/inherited_notifier.0_test.dart',

View File

@ -0,0 +1,42 @@
// 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_api_samples/widgets/focus_scope/focus.2.dart'
as example;
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('Adds children through button', (WidgetTester tester) async {
await tester.pumpWidget(const example.FocusExampleApp());
expect(find.byIcon(Icons.add), findsOneWidget);
expect(find.text('CHILD 0'), findsOneWidget);
for (int i = 1; i <= 20; i += 1) {
await tester.tap(find.byIcon(Icons.add));
await tester.pumpAndSettle();
expect(find.text('CHILD $i'), findsOneWidget);
expect(find.textContaining('CHILD '), findsNWidgets(i + 1));
}
});
testWidgets('Inserts focus nodes', (WidgetTester tester) async {
await tester.pumpWidget(const example.FocusExampleApp());
expect(find.byIcon(Icons.add), findsOneWidget);
for (int i = 0; i <= 10; i += 1) {
expect(find.text('CHILD $i'), findsOneWidget);
final ActionChip chip = tester.widget<ActionChip>(find.ancestor(
of: find.text('CHILD $i'),
matching: find.byType(ActionChip)
));
expect(chip.focusNode, isNotNull);
expect(chip.focusNode!.hasPrimaryFocus, isTrue);
expect(chip.focusNode!.debugLabel, 'Child $i');
await tester.tap(find.byIcon(Icons.add));
await tester.pumpAndSettle();
}
});
}