@@ -1016,6 +1016,39 @@ void main() {
10161016 expect (find.text (tooltipText), findsNothing);
10171017 });
10181018
1019+ testWidgetsWithLeakTracking ('Tooltip is dismissed after tap to dismiss immediately' , (WidgetTester tester) async {
1020+
1021+ await setWidgetForTooltipMode (tester, TooltipTriggerMode .tap);
1022+
1023+ final Finder tooltip = find.byType (Tooltip );
1024+ expect (find.text (tooltipText), findsNothing);
1025+
1026+ // Tap to trigger the tooltip.
1027+ await _testGestureTap (tester, tooltip);
1028+ expect (find.text (tooltipText), findsOneWidget);
1029+
1030+ // Tap to dismiss the tooltip. Tooltip is dismissed immediately.
1031+ await _testGestureTap (tester, find.text (tooltipText));
1032+ await tester.pump (const Duration (milliseconds: 10 ));
1033+ expect (find.text (tooltipText), findsNothing);
1034+ });
1035+
1036+ testWidgetsWithLeakTracking ('Tooltip is not dismissed after tap if enableTapToDismiss is false' , (WidgetTester tester) async {
1037+ await setWidgetForTooltipMode (tester, TooltipTriggerMode .tap, enableTapToDismiss: false );
1038+
1039+ final Finder tooltip = find.byType (Tooltip );
1040+ expect (find.text (tooltipText), findsNothing);
1041+
1042+ // Tap to trigger the tooltip.
1043+ await _testGestureTap (tester, tooltip);
1044+ expect (find.text (tooltipText), findsOneWidget);
1045+
1046+ // Tap the tooltip. Tooltip is not dismissed .
1047+ await _testGestureTap (tester, find.text (tooltipText));
1048+ await tester.pump (const Duration (milliseconds: 10 ));
1049+ expect (find.text (tooltipText), findsOneWidget);
1050+ });
1051+
10191052 testWidgetsWithLeakTracking ('Tooltip is dismissed after a tap and showDuration expired when competing with a GestureDetector' , (WidgetTester tester) async {
10201053 // Regression test for https://github.com/flutter/flutter/issues/98854
10211054 const Duration showDuration = Duration (seconds: 3 );
@@ -2480,6 +2513,7 @@ Future<void> setWidgetForTooltipMode(
24802513 WidgetTester tester,
24812514 TooltipTriggerMode triggerMode, {
24822515 Duration ? showDuration,
2516+ bool ? enableTapToDismiss,
24832517 TooltipTriggeredCallback ? onTriggered,
24842518}) async {
24852519 await tester.pumpWidget (
@@ -2489,6 +2523,7 @@ Future<void> setWidgetForTooltipMode(
24892523 triggerMode: triggerMode,
24902524 onTriggered: onTriggered,
24912525 showDuration: showDuration,
2526+ enableTapToDismiss: enableTapToDismiss ?? true ,
24922527 child: const SizedBox (width: 100.0 , height: 100.0 ),
24932528 ),
24942529 ),
0 commit comments