Skip to content

Commit a1fbc83

Browse files
Add test for interactive_viewer.constrained.0.dart (#158044)
Contributes to flutter/flutter#130459 It adds a test for - `examples/api/lib/widgets/interactive_viewer/interactive_viewer.constrained.0.dart`
1 parent 0505176 commit a1fbc83

File tree

2 files changed

+79
-1
lines changed

2 files changed

+79
-1
lines changed

dev/bots/check_code_samples.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,5 +316,4 @@ final Set<String> _knownMissingTests = <String>{
316316
'examples/api/test/widgets/scrollbar/raw_scrollbar.2_test.dart',
317317
'examples/api/test/widgets/scrollbar/raw_scrollbar.desktop.0_test.dart',
318318
'examples/api/test/widgets/scrollbar/raw_scrollbar.shape.0_test.dart',
319-
'examples/api/test/widgets/interactive_viewer/interactive_viewer.constrained.0_test.dart',
320319
};
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
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/interactive_viewer/interactive_viewer.constrained.0.dart'
7+
as example;
8+
import 'package:flutter_test/flutter_test.dart';
9+
10+
void main() {
11+
testWidgets('The reset button resets the view with an animation', (WidgetTester tester) async {
12+
await tester.pumpWidget(
13+
const example.ConstrainedExampleApp(),
14+
);
15+
16+
expect(find.widgetWithText(AppBar, 'Constrained Sample'), findsOne);
17+
expect(find.byType(InteractiveViewer), findsOne);
18+
for (int row = 0; row < 48; row += 1) {
19+
for (int column = 0; column < 6; column += 1) {
20+
expect(find.text('$row x $column'), findsOne);
21+
}
22+
}
23+
expect(
24+
tester.getRect(find.byType(Table)),
25+
rectMoreOrLessEquals(const Rect.fromLTRB(0.0, 56.0, 1200.0, 1304.0)),
26+
);
27+
28+
// Pans along the x axis.
29+
const Offset panStart = Offset(400.0, 300.0);
30+
final Offset panXEnd = panStart - const Offset(0, 20);
31+
final TestGesture gesturePanX = await tester.startGesture(panStart);
32+
await tester.pump();
33+
await gesturePanX.moveTo(panXEnd);
34+
await tester.pump();
35+
await gesturePanX.up();
36+
await tester.pumpAndSettle();
37+
38+
expect(
39+
tester.getRect(find.byType(Table)),
40+
rectMoreOrLessEquals(const Rect.fromLTRB(0.0, 36.0, 1200.0, 1284.0)),
41+
);
42+
43+
// Pans along the Y axis.
44+
final Offset panYEnd = panStart - const Offset(20, 0);
45+
final TestGesture gesturePanY = await tester.startGesture(panStart);
46+
await tester.pump();
47+
await gesturePanY.moveTo(panYEnd);
48+
await tester.pump();
49+
await gesturePanY.up();
50+
await tester.pumpAndSettle();
51+
52+
expect(
53+
tester.getRect(find.byType(Table)),
54+
rectMoreOrLessEquals(const Rect.fromLTRB(-20.0, 36.0, 1180.0, 1284.0)),
55+
);
56+
57+
// Tries to zooms even if it is disabled.
58+
const Offset scaleStart1 = Offset(400.0, 300.0);
59+
final Offset scaleStart2 = scaleStart1 + const Offset(10.0, 0.0);
60+
final Offset scaleEnd1 = scaleStart1 - const Offset(10.0, 0.0);
61+
final Offset scaleEnd2 = scaleStart2 + const Offset(10.0, 0.0);
62+
final TestGesture gesture1 = await tester.createGesture();
63+
final TestGesture gesture2 = await tester.createGesture();
64+
await gesture1.down(scaleStart1);
65+
await gesture2.down(scaleStart2);
66+
await tester.pump();
67+
await gesture1.moveTo(scaleEnd1);
68+
await gesture2.moveTo(scaleEnd2);
69+
await tester.pump();
70+
await gesture1.up();
71+
await gesture2.up();
72+
await tester.pumpAndSettle();
73+
74+
expect(
75+
tester.getRect(find.byType(Table)),
76+
rectMoreOrLessEquals(const Rect.fromLTRB(-20.0, 36.0, 1180.0, 1284.0)),
77+
);
78+
});
79+
}

0 commit comments

Comments
 (0)