Unverified Commit 25f44bb2 authored by Dan Field's avatar Dan Field Committed by GitHub

test (#67021)

parent 19e07d2b
...@@ -834,6 +834,89 @@ void main() { ...@@ -834,6 +834,89 @@ void main() {
expect(expensiveWidgets, 0); expect(expensiveWidgets, 0);
expect(cheapWidgets, 58); expect(cheapWidgets, 58);
}); });
testWidgets('ensureVisible does not move PageViews', (WidgetTester tester) async {
final PageController controller = PageController();
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: PageView(
controller: controller,
children: List<ListView>.generate(
3,
(int pageIndex) {
return ListView(
key: Key('list_$pageIndex'),
children: List<Widget>.generate(
100,
(int listIndex) {
return Row(
children: <Widget>[
Container(
key: Key('${pageIndex}_${listIndex}_0'),
color: Colors.red,
width: 200,
height: 10,
),
Container(
key: Key('${pageIndex}_${listIndex}_1'),
color: Colors.blue,
width: 200,
height: 10,
),
Container(
key: Key('${pageIndex}_${listIndex}_2'),
color: Colors.green,
width: 200,
height: 10,
),
]
);
}
),
);
}
)
),
),
);
final Finder targetMidRightPage0 = find.byKey(const Key('0_25_2'));
final Finder targetMidRightPage1 = find.byKey(const Key('1_25_2'));
final Finder targetMidLeftPage1 = find.byKey(const Key('1_25_0'));
expect(find.byKey(const Key('list_0')), findsOneWidget);
expect(find.byKey(const Key('list_1')), findsNothing);
expect(targetMidRightPage0, findsOneWidget);
expect(targetMidRightPage1, findsNothing);
expect(targetMidLeftPage1, findsNothing);
await tester.ensureVisible(targetMidRightPage0);
await tester.pumpAndSettle();
expect(targetMidRightPage0, findsOneWidget);
expect(targetMidRightPage1, findsNothing);
expect(targetMidLeftPage1, findsNothing);
controller.jumpToPage(1);
await tester.pumpAndSettle();
expect(find.byKey(const Key('list_0')), findsNothing);
expect(find.byKey(const Key('list_1')), findsOneWidget);
await tester.ensureVisible(targetMidRightPage1);
await tester.pumpAndSettle();
expect(targetMidRightPage0, findsNothing);
expect(targetMidRightPage1, findsOneWidget);
expect(targetMidLeftPage1, findsOneWidget);
await tester.ensureVisible(targetMidLeftPage1);
await tester.pumpAndSettle();
expect(targetMidRightPage0, findsNothing);
expect(targetMidRightPage1, findsOneWidget);
expect(targetMidLeftPage1, findsOneWidget);
});
} }
// ignore: must_be_immutable // ignore: must_be_immutable
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment