diff --git a/dev/bots/check_code_samples.dart b/dev/bots/check_code_samples.dart index 74a9612f06d..4b93a7d220b 100644 --- a/dev/bots/check_code_samples.dart +++ b/dev/bots/check_code_samples.dart @@ -378,7 +378,6 @@ final Set _knownMissingTests = { 'examples/api/test/widgets/single_child_scroll_view/single_child_scroll_view.1_test.dart', 'examples/api/test/widgets/single_child_scroll_view/single_child_scroll_view.0_test.dart', 'examples/api/test/widgets/restoration/restoration_mixin.0_test.dart', - '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/focus_scope/focus_scope.0_test.dart', 'examples/api/test/widgets/scroll_view/custom_scroll_view.1_test.dart', diff --git a/examples/api/test/widgets/actions/action_listener.0_test.dart b/examples/api/test/widgets/actions/action_listener.0_test.dart new file mode 100644 index 00000000000..b5363ebf16d --- /dev/null +++ b/examples/api/test/widgets/actions/action_listener.0_test.dart @@ -0,0 +1,50 @@ +// 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/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_api_samples/widgets/actions/action_listener.0.dart' as example; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + testWidgets('ActionListener can be enabled, triggered, and disabled', (WidgetTester tester) async { + final List log = []; + + final DebugPrintCallback originalDebugPrint = debugPrint; + debugPrint = (String? message, {int? wrapWidth}) { + log.add(message); + }; + try { + await tester.pumpWidget( + const example.ActionListenerExampleApp(), + ); + + expect(find.widgetWithText(AppBar, 'ActionListener Sample'), findsOne); + expect(find.widgetWithText(OutlinedButton, 'Enable'), findsOne); + + await tester.tap(find.byType(OutlinedButton)); + await tester.pump(); + + expect(find.widgetWithText(OutlinedButton, 'Disable'), findsOne); + expect(find.widgetWithText(ElevatedButton, 'Call Action Listener'), findsOne); + expect(log, const ['Action Listener was added']); + + await tester.tap(find.text('Call Action Listener')); + await tester.pumpAndSettle(); + + expect(find.widgetWithText(SnackBar, 'Action Listener Called'), findsOne); + + await tester.tap(find.text('Disable')); + await tester.pump(); + + expect(find.widgetWithText(OutlinedButton, 'Enable'), findsOne); + expect( + log, + const ['Action Listener was added', 'Action Listener was removed'], + ); + } finally { + debugPrint = originalDebugPrint; + } + }); +}