From ff3ad8290e793b2ca3ae03403d8b415c71e090dc Mon Sep 17 00:00:00 2001 From: Valentin Vignal <32538273+ValentinVignal@users.noreply.github.com> Date: Tue, 6 Aug 2024 10:28:25 +0800 Subject: [PATCH] Add tests for ordered_traversal_group.0.dart (#152849) Contributes to https://github.com/flutter/flutter/issues/130459 It adds a test for - `examples/api/lib/widgets/focus_traversal/focus_traversal_group.0.dart` --- dev/bots/check_code_samples.dart | 1 - .../focus_traversal_group.0_test.dart | 6 +-- .../ordered_traversal_policy.0_test.dart | 38 +++++++++++++++++++ 3 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 examples/api/test/widgets/focus_traversal/ordered_traversal_policy.0_test.dart diff --git a/dev/bots/check_code_samples.dart b/dev/bots/check_code_samples.dart index bc2eae8659..00156af30b 100644 --- a/dev/bots/check_code_samples.dart +++ b/dev/bots/check_code_samples.dart @@ -343,7 +343,6 @@ final Set _knownMissingTests = { 'examples/api/test/widgets/scroll_position/scroll_metrics_notification.0_test.dart', 'examples/api/test/widgets/media_query/media_query_data.system_gesture_insets.0_test.dart', 'examples/api/test/widgets/animated_list/animated_list.0_test.dart', - 'examples/api/test/widgets/focus_traversal/ordered_traversal_policy.0_test.dart', 'examples/api/test/widgets/image/image.frame_builder.0_test.dart', 'examples/api/test/widgets/image/image.loading_builder.0_test.dart', 'examples/api/test/widgets/page_storage/page_storage.0_test.dart', diff --git a/examples/api/test/widgets/focus_traversal/focus_traversal_group.0_test.dart b/examples/api/test/widgets/focus_traversal/focus_traversal_group.0_test.dart index 0e6590cbb8..ca8383963f 100644 --- a/examples/api/test/widgets/focus_traversal/focus_traversal_group.0_test.dart +++ b/examples/api/test/widgets/focus_traversal/focus_traversal_group.0_test.dart @@ -8,9 +8,9 @@ import 'package:flutter_api_samples/widgets/focus_traversal/focus_traversal_grou import 'package:flutter_test/flutter_test.dart'; void main() { - bool hasFocus(WidgetTester tester, String text) { - return Focus.of(tester.element(find.text(text))).hasPrimaryFocus; - } + bool hasFocus(WidgetTester tester, String text) { + return Focus.of(tester.element(find.text(text))).hasPrimaryFocus; + } testWidgets('The focus updates should follow the focus traversal groups policy', (WidgetTester tester) async { await tester.pumpWidget( diff --git a/examples/api/test/widgets/focus_traversal/ordered_traversal_policy.0_test.dart b/examples/api/test/widgets/focus_traversal/ordered_traversal_policy.0_test.dart new file mode 100644 index 0000000000..99f4ef598d --- /dev/null +++ b/examples/api/test/widgets/focus_traversal/ordered_traversal_policy.0_test.dart @@ -0,0 +1,38 @@ +// 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/services.dart'; +import 'package:flutter_api_samples/widgets/focus_traversal/ordered_traversal_policy.0.dart' as example; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + bool hasFocus(WidgetTester tester, String text) { + return Focus.of(tester.element(find.text(text))).hasPrimaryFocus; + } + + testWidgets('The focus updates should follow the focus traversal groups policy', (WidgetTester tester) async { + await tester.pumpWidget( + const example.OrderedTraversalPolicyExampleApp(), + ); + + expect(hasFocus(tester, 'One'), isTrue); + + const List focusOrder = [ + 'Two', + 'Three', + 'Four', + 'Five', + 'Six', + 'One', + ]; + + for (final String text in focusOrder) { + await tester.sendKeyEvent(LogicalKeyboardKey.tab); + await tester.pump(); + + expect(hasFocus(tester, text), isTrue); + } + }); +}