From 230cba2331ddc487ea6c483f5f49cbbf7ce430e4 Mon Sep 17 00:00:00 2001 From: Valentin Vignal <32538273+ValentinVignal@users.noreply.github.com> Date: Thu, 17 Oct 2024 23:32:31 +0800 Subject: [PATCH] Add test for `selection_container.0_test.dart` (#157079) Contributes to https://github.com/flutter/flutter/issues/130459 It adds a test for - `examples/api/test/material/selection_container/selection_container.0_test.dart` --- dev/bots/check_code_samples.dart | 1 - .../selection_container.0_test.dart | 62 +++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 examples/api/test/material/selection_container/selection_container.0_test.dart diff --git a/dev/bots/check_code_samples.dart b/dev/bots/check_code_samples.dart index a357d5c103..84900f157c 100644 --- a/dev/bots/check_code_samples.dart +++ b/dev/bots/check_code_samples.dart @@ -312,7 +312,6 @@ final Set _knownMissingTests = { 'examples/api/test/material/bottom_app_bar/bottom_app_bar.2_test.dart', 'examples/api/test/material/bottom_app_bar/bottom_app_bar.1_test.dart', 'examples/api/test/material/selectable_region/selectable_region.0_test.dart', - 'examples/api/test/material/selection_container/selection_container.0_test.dart', 'examples/api/test/material/color_scheme/dynamic_content_color.0_test.dart', 'examples/api/test/material/platform_menu_bar/platform_menu_bar.0_test.dart', 'examples/api/test/material/flexible_space_bar/flexible_space_bar.0_test.dart', diff --git a/examples/api/test/material/selection_container/selection_container.0_test.dart b/examples/api/test/material/selection_container/selection_container.0_test.dart new file mode 100644 index 0000000000..e285c20496 --- /dev/null +++ b/examples/api/test/material/selection_container/selection_container.0_test.dart @@ -0,0 +1,62 @@ +// 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/gestures.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/rendering.dart'; +import 'package:flutter_api_samples/material/selection_container/selection_container.0.dart' as example; +import 'package:flutter_test/flutter_test.dart'; + +void main() { + testWidgets('The SelectionContainer should transform the partial selection into an all selection', (WidgetTester tester) async { + await tester.pumpWidget( + const example.SelectionContainerExampleApp(), + ); + + expect(find.widgetWithText(AppBar, 'SelectionContainer Sample'), findsOne); + + final RenderParagraph paragraph1 = tester.renderObject( + find.descendant( + of: find.text('Row 1'), + matching: find.byType(RichText), + ), + ); + final RenderParagraph paragraph2 = tester.renderObject( + find.descendant( + of: find.text('Row 2'), + matching: find.byType(RichText), + ), + ); + final RenderParagraph paragraph3 = tester.renderObject( + find.descendant( + of: find.text('Row 3'), + matching: find.byType(RichText), + ), + ); + final Rect paragraph1Rect = tester.getRect(find.text('Row 1')); + final TestGesture gesture = await tester.startGesture( + paragraph1Rect.topLeft, + kind: PointerDeviceKind.mouse, + ); + addTearDown(gesture.removePointer); + await tester.pump(); + + await gesture.moveTo(paragraph1Rect.center); + await tester.pump(); + expect( + paragraph1.selections.first, + const TextSelection(baseOffset: 0, extentOffset: 5), + ); + expect( + paragraph2.selections.first, + const TextSelection(baseOffset: 0, extentOffset: 5), + ); + expect( + paragraph3.selections.first, + const TextSelection(baseOffset: 0, extentOffset: 5), + ); + + await gesture.up(); + }); +}