Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions packages/flutter/test/widgets/modal_barrier_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -953,6 +953,18 @@ void main() {
TargetPlatform.android,
}),
);

testWidgets('AnimatedModalBarrier does not crash at zero area', (WidgetTester tester) async {
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: Center(
child: SizedBox.shrink(child: AnimatedModalBarrier(color: colorAnimation)),
),
),
);
expect(tester.getSize(find.byType(AnimatedModalBarrier)), Size.zero);
});
});

group('SemanticsClipper', () {
Expand Down
17 changes: 17 additions & 0 deletions packages/flutter/test/widgets/nested_scroll_view_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3480,6 +3480,23 @@ void main() {
areCreateAndDispose,
);
});

testWidgets('NestedScrollView does not crash at zero area', (WidgetTester tester) async {
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: Center(
child: SizedBox.shrink(
child: NestedScrollView(
headerSliverBuilder: (_, _) => [const SliverToBoxAdapter(child: Text('Y'))],
body: const Text('X'),
),
),
),
),
);
expect(tester.getSize(find.byType(NestedScrollView)), Size.zero);
});
}

double appBarHeight(WidgetTester tester) =>
Expand Down
28 changes: 28 additions & 0 deletions packages/flutter/test/widgets/orientation_builder_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,34 @@ void main() {
await tester.pumpWidget(buildTestWidget(width: 200.0, height: 100.0));
expect(orientation, Orientation.landscape);
});

testWidgets('OrientationBuilder does not crash at zero area', (WidgetTester tester) async {
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: Center(
child: SizedBox.shrink(child: OrientationBuilder(builder: (_, _) => const Text('X'))),
),
),
);
expect(tester.getSize(find.byType(OrientationBuilder)), Size.zero);
});

testWidgets('DeviceOrientationBuilder does not crash at zero area', (
WidgetTester tester,
) async {
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: Center(
child: SizedBox.shrink(
child: DeviceOrientationBuilder(builder: (_, _) => const Text('X')),
),
),
),
);
expect(tester.getSize(find.byType(DeviceOrientationBuilder)), Size.zero);
});
});

group('DeviceOrientationBuilder', () {
Expand Down
12 changes: 12 additions & 0 deletions packages/flutter/test/widgets/overflow_bar_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -361,4 +361,16 @@ void main() {
}
}
});

testWidgets('OverflowBar does not crash at zero area', (WidgetTester tester) async {
await tester.pumpWidget(
const Directionality(
textDirection: TextDirection.ltr,
child: Center(
child: SizedBox.shrink(child: OverflowBar(children: [Text('X'), Text('Y')])),
),
),
);
expect(tester.getSize(find.byType(OverflowBar)), Size.zero);
});
}
16 changes: 16 additions & 0 deletions packages/flutter/test/widgets/overlay_portal_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -3216,6 +3216,22 @@ void main() {
expect(computedPaintTransform, Matrix4.translationValues(0.0, 20.0, 321.0));
},
);

testWidgets('OverlayPortal does not crash at zero area', (WidgetTester tester) async {
tester.view.physicalSize = Size.zero;
final controller = OverlayPortalController();
addTearDown(tester.view.reset);
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: Center(
child: OverlayPortal(controller: controller, overlayChildBuilder: (_) => const Text('')),
),
),
);
expect(tester.getSize(find.byType(OverlayPortal)), Size.zero);
controller.show();
});
}

class OverlayStatefulEntry extends OverlayEntry {
Expand Down
24 changes: 24 additions & 0 deletions packages/flutter/test/widgets/overlay_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -1966,6 +1966,30 @@ void main() {
expect(outsideView, isNull);
expect(insideView, isNull);
});

testWidgets('Overlay does not crash at zero area', (WidgetTester tester) async {
final overlayEntry1 = OverlayEntry(builder: (_) => const Text('X'));
final overlayEntry2 = OverlayEntry(builder: (_) => const Text('Y'));
addTearDown(
() => overlayEntry1
..remove()
..dispose(),
);
addTearDown(
() => overlayEntry2
..remove()
..dispose(),
);
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: Center(
child: SizedBox.shrink(child: Overlay(initialEntries: [overlayEntry1, overlayEntry2])),
),
),
);
expect(tester.getSize(find.byType(Overlay)), Size.zero);
});
}

class StatefulTestWidget extends StatefulWidget {
Expand Down
38 changes: 38 additions & 0 deletions packages/flutter/test/widgets/overscroll_indicator_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -743,6 +743,44 @@ void main() {
);
expect(tester.takeException(), isNull);
});

testWidgets('GlowingOverscrollIndicator does not crash at zero area', (
WidgetTester tester,
) async {
await tester.pumpWidget(
const Directionality(
textDirection: TextDirection.ltr,
child: Center(
child: SizedBox.shrink(
child: GlowingOverscrollIndicator(
axisDirection: AxisDirection.down,
color: Color(0xFF112233),
),
),
),
),
);
expect(tester.getSize(find.byType(GlowingOverscrollIndicator)), Size.zero);
});

testWidgets('StretchingOverscrollIndicator does not crash at zero area', (
WidgetTester tester,
) async {
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: Center(
child: SizedBox.shrink(
child: StretchingOverscrollIndicator(
axisDirection: AxisDirection.down,
child: ListView(),
),
),
),
),
);
expect(tester.getSize(find.byType(StretchingOverscrollIndicator)), Size.zero);
});
}

class TestScrollBehavior1 extends ScrollBehavior {
Expand Down
2 changes: 2 additions & 0 deletions packages/flutter/test/widgets/page_view_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ void main() {
WidgetTester tester,
) async {
// Regression test for https://github.com/flutter/flutter/issues/88956
// and https://github.com/flutter/flutter/issues/6537
final controller = PageController(initialPage: 1);
addTearDown(controller.dispose);

Expand All @@ -123,6 +124,7 @@ void main() {

// The pageView have a zero viewport, so nothing display.
await tester.pumpWidget(build(Size.zero));
expect(tester.getSize(find.byType(PageView)), Size.zero);
expect(find.text('Alabama'), findsNothing);
expect(find.text('Alabama', skipOffstage: false), findsOneWidget);

Expand Down