diff --git a/dev/bots/check_code_samples.dart b/dev/bots/check_code_samples.dart index 2e6d92f275b7..a6b363cd7e55 100644 --- a/dev/bots/check_code_samples.dart +++ b/dev/bots/check_code_samples.dart @@ -431,8 +431,6 @@ final Set _knownMissingTests = { '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/shortcuts/logical_key_set.0_test.dart', - 'examples/api/test/widgets/shortcuts/shortcuts.0_test.dart', - 'examples/api/test/widgets/shortcuts/shortcuts.1_test.dart', 'examples/api/test/widgets/shortcuts/callback_shortcuts.0_test.dart', 'examples/api/test/widgets/page_storage/page_storage.0_test.dart', 'examples/api/test/widgets/scrollbar/raw_scrollbar.1_test.dart', diff --git a/examples/api/test/widgets/shortcuts/shortcuts.0_test.dart b/examples/api/test/widgets/shortcuts/shortcuts.0_test.dart new file mode 100644 index 000000000000..0a9275140614 --- /dev/null +++ b/examples/api/test/widgets/shortcuts/shortcuts.0_test.dart @@ -0,0 +1,55 @@ +// 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/services.dart'; +import 'package:flutter_api_samples/widgets/shortcuts/shortcuts.0.dart' + as example; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + testWidgets('Verify correct labels are displayed', (WidgetTester tester) async { + await tester.pumpWidget( + const example.ShortcutsExampleApp(), + ); + + expect(find.text('Shortcuts Sample'), findsOneWidget); + expect( + find.text('Add to the counter by pressing the up arrow key'), + findsOneWidget, + ); + expect( + find.text('Subtract from the counter by pressing the down arrow key'), + findsOneWidget, + ); + expect(find.text('count: 0'), findsOneWidget); + }); + + testWidgets('Up and down arrow press updates counter', (WidgetTester tester) async { + await tester.pumpWidget( + const example.ShortcutsExampleApp(), + ); + + int counter = 0; + + while (counter < 10) { + expect(find.text('count: $counter'), findsOneWidget); + + // Increment the counter. + await tester.sendKeyEvent(LogicalKeyboardKey.arrowUp); + await tester.pump(); + + counter++; + } + + while (counter >= 0) { + expect(find.text('count: $counter'), findsOneWidget); + + // Decrement the counter. + await tester.sendKeyEvent(LogicalKeyboardKey.arrowDown); + await tester.pump(); + + counter--; + } + }); +} diff --git a/examples/api/test/widgets/shortcuts/shortcuts.1_test.dart b/examples/api/test/widgets/shortcuts/shortcuts.1_test.dart new file mode 100644 index 000000000000..17a2155739d6 --- /dev/null +++ b/examples/api/test/widgets/shortcuts/shortcuts.1_test.dart @@ -0,0 +1,55 @@ +// 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/services.dart'; +import 'package:flutter_api_samples/widgets/shortcuts/shortcuts.1.dart' + as example; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + testWidgets('Verify correct labels are displayed', (WidgetTester tester) async { + await tester.pumpWidget( + const example.ShortcutsExampleApp(), + ); + + expect(find.text('Shortcuts Sample'), findsOneWidget); + expect( + find.text('Add to the counter by pressing the up arrow key'), + findsOneWidget, + ); + expect( + find.text('Subtract from the counter by pressing the down arrow key'), + findsOneWidget, + ); + expect(find.text('count: 0'), findsOneWidget); + }); + + testWidgets('Up and down arrow press updates counter', (WidgetTester tester) async { + await tester.pumpWidget( + const example.ShortcutsExampleApp(), + ); + + int counter = 0; + + while (counter <= 10) { + expect(find.text('count: $counter'), findsOneWidget); + + // Increment the counter. + await tester.sendKeyEvent(LogicalKeyboardKey.arrowUp); + await tester.pump(); + + counter += 2; + } + + while (counter >= 0) { + expect(find.text('count: $counter'), findsOneWidget); + + // Decrement the counter. + await tester.sendKeyEvent(LogicalKeyboardKey.arrowDown); + await tester.pump(); + + counter -= 2; + } + }); +}