From 357bd6574971af634066d9ff9c1fc1320edf71f7 Mon Sep 17 00:00:00 2001 From: Valentin Vignal <32538273+ValentinVignal@users.noreply.github.com> Date: Wed, 22 May 2024 06:19:04 +0800 Subject: [PATCH] Add test for undo_history_controller.0.dart (#148205) Contributes to https://github.com/flutter/flutter/issues/130459 It adds test for `examples/api/test/widgets/undo_history/undo_history_controller.0_test.dart`. --- dev/bots/check_code_samples.dart | 1 - .../undo_history_controller.0_test.dart | 50 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 examples/api/test/widgets/undo_history/undo_history_controller.0_test.dart diff --git a/dev/bots/check_code_samples.dart b/dev/bots/check_code_samples.dart index 58c8e547a0..e31a20a8a1 100644 --- a/dev/bots/check_code_samples.dart +++ b/dev/bots/check_code_samples.dart @@ -420,7 +420,6 @@ final Set _knownMissingTests = { 'examples/api/test/widgets/notification_listener/notification.0_test.dart', 'examples/api/test/widgets/editable_text/text_editing_controller.0_test.dart', 'examples/api/test/widgets/editable_text/editable_text.on_changed.0_test.dart', - 'examples/api/test/widgets/undo_history/undo_history_controller.0_test.dart', 'examples/api/test/widgets/overscroll_indicator/glowing_overscroll_indicator.1_test.dart', 'examples/api/test/widgets/overscroll_indicator/glowing_overscroll_indicator.0_test.dart', 'examples/api/test/widgets/tween_animation_builder/tween_animation_builder.0_test.dart', diff --git a/examples/api/test/widgets/undo_history/undo_history_controller.0_test.dart b/examples/api/test/widgets/undo_history/undo_history_controller.0_test.dart new file mode 100644 index 0000000000..91422a29f3 --- /dev/null +++ b/examples/api/test/widgets/undo_history/undo_history_controller.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/material.dart'; +import 'package:flutter_api_samples/widgets/undo_history/undo_history_controller.0.dart' as example; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + testWidgets('The undo history controller should undo and redo the history changes', (WidgetTester tester) async { + await tester.pumpWidget( + const example.UndoHistoryControllerExampleApp(), + ); + + // Equals to UndoHistoryState._kThrottleDuration. + const Duration kThrottleDuration = Duration(milliseconds: 500); + + expect(find.byType(TextField), findsOne); + expect(find.widgetWithText(TextButton, 'Undo'), findsOne); + expect(find.widgetWithText(TextButton, 'Redo'), findsOne); + + await tester.enterText(find.byType(TextField), '1st change'); + await tester.pump(kThrottleDuration); + expect(find.text('1st change'), findsOne); + + await tester.enterText(find.byType(TextField), '2nd change'); + await tester.pump(kThrottleDuration); + expect(find.text('2nd change'), findsOne); + + await tester.enterText(find.byType(TextField), '3rd change'); + await tester.pump(kThrottleDuration); + expect(find.text('3rd change'), findsOne); + + await tester.tap(find.text('Undo')); + await tester.pump(); + expect(find.text('2nd change'), findsOne); + + await tester.tap(find.text('Undo')); + await tester.pump(); + expect(find.text('1st change'), findsOne); + + await tester.tap(find.text('Redo')); + await tester.pump(); + expect(find.text('2nd change'), findsOne); + + await tester.tap(find.text('Redo')); + await tester.pump(); + expect(find.text('3rd change'), findsOne); + }); +}