| // 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/dismissible/dismissible.0.dart' |
| as example; |
| import 'package:flutter_test/flutter_test.dart'; |
| |
| void main() { |
| Future<void> dismissHorizontally({ |
| required WidgetTester tester, |
| required Finder finder, |
| required AxisDirection direction, |
| }) async { |
| final double width = (tester.renderObject(finder) as RenderBox).size.width; |
| final double dx = width * 0.8; |
| |
| final Offset offset = switch (direction) { |
| AxisDirection.left => Offset(-dx, 0.0), |
| AxisDirection.right => Offset(dx, 0.0), |
| _ => throw ArgumentError('$direction is not supported'), |
| }; |
| |
| await tester.drag(finder, offset); |
| } |
| |
| testWidgets( |
| 'ListTiles can be dismissed from right to left', |
| (WidgetTester tester) async { |
| await tester.pumpWidget( |
| const example.DismissibleExampleApp(), |
| ); |
| |
| for (final int index in <int>[0, 33, 66, 99]) { |
| final ValueKey<int> key = ValueKey<int>(index); |
| |
| await tester.scrollUntilVisible(find.byKey(key), 100); |
| |
| expect(find.byKey(key), findsOneWidget); |
| |
| await dismissHorizontally( |
| tester: tester, |
| finder: find.byKey(key), |
| direction: AxisDirection.left, |
| ); |
| |
| await tester.pumpAndSettle(); |
| |
| expect(find.byKey(key), findsNothing); |
| } |
| }, |
| ); |
| |
| testWidgets( |
| 'ListTiles can be dismissed from left to right', |
| (WidgetTester tester) async { |
| await tester.pumpWidget( |
| const example.DismissibleExampleApp(), |
| ); |
| |
| for (final int index in <int>[0, 33, 66, 99]) { |
| final ValueKey<int> key = ValueKey<int>(index); |
| |
| await tester.scrollUntilVisible(find.byKey(key), 100); |
| |
| expect(find.byKey(key), findsOneWidget); |
| |
| await dismissHorizontally( |
| tester: tester, |
| finder: find.byKey(key), |
| direction: AxisDirection.right, |
| ); |
| |
| await tester.pumpAndSettle(); |
| |
| expect(find.byKey(key), findsNothing); |
| } |
| }, |
| ); |
| } |