blob: fcbf6ce76f73034e651174c14e484f4f1105af01 [file] [log] [blame]
// 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/rendering.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:leak_tracker_flutter_testing/leak_tracker_flutter_testing.dart';
void main() {
testWidgets('Sliver in a box',
experimentalLeakTesting: LeakTesting.settings.withIgnoredAll(), // leaking by design because of exception
(WidgetTester tester) async {
await tester.pumpWidget(
DecoratedBox(
decoration: const BoxDecoration(),
child: SliverList(
delegate: SliverChildListDelegate(const <Widget>[]),
),
),
);
expect(tester.takeException(), isFlutterError);
await tester.pumpWidget(
Row(
children: <Widget>[
SliverList(
delegate: SliverChildListDelegate(const <Widget>[]),
),
],
),
);
expect(tester.takeException(), isFlutterError);
});
testWidgets('Box in a sliver',
experimentalLeakTesting: LeakTesting.settings.withIgnoredAll(), // leaking by design because of exception
(WidgetTester tester) async {
late ViewportOffset offset1;
addTearDown(() => offset1.dispose());
await tester.pumpWidget(
Viewport(
crossAxisDirection: AxisDirection.right,
offset: offset1 = ViewportOffset.zero(),
slivers: const <Widget>[
SizedBox(),
],
),
);
expect(tester.takeException(), isFlutterError);
late ViewportOffset offset2;
addTearDown(() => offset2.dispose());
await tester.pumpWidget(
Viewport(
crossAxisDirection: AxisDirection.right,
offset: offset2 = ViewportOffset.zero(),
slivers: const <Widget>[
SliverPadding(
padding: EdgeInsets.zero,
sliver: SizedBox(),
),
],
),
);
expect(tester.takeException(), isFlutterError);
});
}