diff --git a/dev/a11y_assessments/lib/use_cases/text_button.dart b/dev/a11y_assessments/lib/use_cases/text_button.dart index ee83bf989f..4932d53d2f 100644 --- a/dev/a11y_assessments/lib/use_cases/text_button.dart +++ b/dev/a11y_assessments/lib/use_cases/text_button.dart @@ -26,7 +26,7 @@ class MainWidget extends StatefulWidget { } class MainWidgetState extends State { - double currentSliderValue = 20; + int _count = 0; @override Widget build(BuildContext context) { @@ -39,25 +39,32 @@ class MainWidgetState extends State { child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ - Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - const Text('This is a TextButton:'), - TextButton( - onPressed: () { }, - child: const Text('Action'), - ), - ], + MergeSemantics( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text('This is a TextButton:'), + TextButton( + onPressed: () { + setState(() { _count++; }); + }, + child: const Text('Action'), + ), + Text('Clicked $_count time(s).'), + ], + ), ), - const Row( - mainAxisAlignment: MainAxisAlignment.center, - children: [ - Text('This is a disabled TextButton:'), - TextButton( - onPressed: null, - child: Text('Action'), - ), - ], + const MergeSemantics( + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text('This is a disabled TextButton:'), + TextButton( + onPressed: null, + child: Text('Action Disabled'), + ), + ], + ), ), ], ), diff --git a/dev/a11y_assessments/test/text_button_test.dart b/dev/a11y_assessments/test/text_button_test.dart index e3cbd1e9ae..46f0444595 100644 --- a/dev/a11y_assessments/test/text_button_test.dart +++ b/dev/a11y_assessments/test/text_button_test.dart @@ -10,6 +10,20 @@ import 'test_utils.dart'; void main() { testWidgets('text button can run', (WidgetTester tester) async { await pumpsUseCase(tester, TextButtonUseCase()); - expect(find.text('Action'), findsExactly(2)); + expect(find.text('Action'), findsOneWidget); + expect(find.text('Action Disabled'), findsOneWidget); + }); + + testWidgets('text button increments correctly when clicked', (WidgetTester tester) async { + await pumpsUseCase(tester, TextButtonUseCase()); + + expect(find.text('Action'), findsOneWidget); + await tester.tap(find.text('Action')); + await tester.pumpAndSettle(); + expect(find.text('Clicked 1 time(s).'), findsOneWidget); + + await tester.tap(find.text('Action')); + await tester.pumpAndSettle(); + expect(find.text('Clicked 2 time(s).'), findsOneWidget); }); }