Skip to content

Commit cb3e689

Browse files
authored
Add test for dismissible.0.dart API example. (#146723)
This PR contributes to flutter/flutter#130459 ### Description - Adds `examples/api/test/widgets/dismissible/dismissible.0_test.dart` test
1 parent c168916 commit cb3e689

File tree

2 files changed

+81
-1
lines changed

2 files changed

+81
-1
lines changed

dev/bots/check_code_samples.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,6 @@ final Set<String> _knownMissingTests = <String>{
477477
'examples/api/test/widgets/implicit_animations/animated_positioned.0_test.dart',
478478
'examples/api/test/widgets/implicit_animations/animated_padding.0_test.dart',
479479
'examples/api/test/widgets/implicit_animations/sliver_animated_opacity.0_test.dart',
480-
'examples/api/test/widgets/dismissible/dismissible.0_test.dart',
481480
'examples/api/test/widgets/scroll_view/custom_scroll_view.1_test.dart',
482481
'examples/api/test/widgets/inherited_notifier/inherited_notifier.0_test.dart',
483482
'examples/api/test/animation/curves/curve2_d.0_test.dart',
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
// Copyright 2014 The Flutter Authors. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
import 'package:flutter/material.dart';
6+
import 'package:flutter_api_samples/widgets/dismissible/dismissible.0.dart'
7+
as example;
8+
import 'package:flutter_test/flutter_test.dart';
9+
10+
void main() {
11+
Future<void> dismissHorizontally({
12+
required WidgetTester tester,
13+
required Finder finder,
14+
required AxisDirection direction,
15+
}) async {
16+
final double width = (tester.renderObject(finder) as RenderBox).size.width;
17+
final double dx = width * 0.8;
18+
19+
final Offset offset = switch (direction) {
20+
AxisDirection.left => Offset(-dx, 0.0),
21+
AxisDirection.right => Offset(dx, 0.0),
22+
_ => throw ArgumentError('$direction is not supported'),
23+
};
24+
25+
await tester.drag(finder, offset);
26+
}
27+
28+
testWidgets(
29+
'ListTiles can be dismissed from right to left',
30+
(WidgetTester tester) async {
31+
await tester.pumpWidget(
32+
const example.DismissibleExampleApp(),
33+
);
34+
35+
for (final int index in <int>[0, 33, 66, 99]) {
36+
final ValueKey<int> key = ValueKey<int>(index);
37+
38+
await tester.scrollUntilVisible(find.byKey(key), 100);
39+
40+
expect(find.byKey(key), findsOneWidget);
41+
42+
await dismissHorizontally(
43+
tester: tester,
44+
finder: find.byKey(key),
45+
direction: AxisDirection.left,
46+
);
47+
48+
await tester.pumpAndSettle();
49+
50+
expect(find.byKey(key), findsNothing);
51+
}
52+
},
53+
);
54+
55+
testWidgets(
56+
'ListTiles can be dismissed from left to right',
57+
(WidgetTester tester) async {
58+
await tester.pumpWidget(
59+
const example.DismissibleExampleApp(),
60+
);
61+
62+
for (final int index in <int>[0, 33, 66, 99]) {
63+
final ValueKey<int> key = ValueKey<int>(index);
64+
65+
await tester.scrollUntilVisible(find.byKey(key), 100);
66+
67+
expect(find.byKey(key), findsOneWidget);
68+
69+
await dismissHorizontally(
70+
tester: tester,
71+
finder: find.byKey(key),
72+
direction: AxisDirection.right,
73+
);
74+
75+
await tester.pumpAndSettle();
76+
77+
expect(find.byKey(key), findsNothing);
78+
}
79+
},
80+
);
81+
}

0 commit comments

Comments
 (0)