blob: 990a67ea69dec6c47eb5e5189464eb1f382b30ef [file]
// 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/widgets.dart';
import 'package:flutter_test/flutter_test.dart';
void main() {
testWidgets('Placeholder intrinsics', (WidgetTester tester) async {
await tester.pumpWidget(const Placeholder());
expect(
tester
.renderObject<RenderBox>(find.byType(Placeholder))
.getMinIntrinsicWidth(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(Placeholder))
.getMaxIntrinsicWidth(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(Placeholder))
.getMinIntrinsicHeight(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(Placeholder))
.getMaxIntrinsicHeight(double.infinity),
0.0,
);
});
testWidgets('ConstrainedBox intrinsics - minHeight', (WidgetTester tester) async {
await tester.pumpWidget(
ConstrainedBox(
constraints: const BoxConstraints(minHeight: 20.0),
child: const Placeholder(),
),
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicWidth(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicWidth(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicHeight(double.infinity),
20.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicHeight(double.infinity),
20.0,
);
});
testWidgets('ConstrainedBox intrinsics - minWidth', (WidgetTester tester) async {
await tester.pumpWidget(
ConstrainedBox(constraints: const BoxConstraints(minWidth: 20.0), child: const Placeholder()),
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicWidth(double.infinity),
20.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicWidth(double.infinity),
20.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicHeight(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicHeight(double.infinity),
0.0,
);
});
testWidgets('ConstrainedBox intrinsics - maxHeight', (WidgetTester tester) async {
await tester.pumpWidget(
ConstrainedBox(
constraints: const BoxConstraints(maxHeight: 20.0),
child: const Placeholder(),
),
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicWidth(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicWidth(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicHeight(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicHeight(double.infinity),
0.0,
);
});
testWidgets('ConstrainedBox intrinsics - maxWidth', (WidgetTester tester) async {
await tester.pumpWidget(
ConstrainedBox(constraints: const BoxConstraints(maxWidth: 20.0), child: const Placeholder()),
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicWidth(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicWidth(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicHeight(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicHeight(double.infinity),
0.0,
);
});
testWidgets('ConstrainedBox intrinsics - tight', (WidgetTester tester) async {
await tester.pumpWidget(
ConstrainedBox(
constraints: const BoxConstraints.tightFor(width: 10.0, height: 30.0),
child: const Placeholder(),
),
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicWidth(double.infinity),
10.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicWidth(double.infinity),
10.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicHeight(double.infinity),
30.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicHeight(double.infinity),
30.0,
);
});
testWidgets('ConstrainedBox intrinsics - minHeight - with infinite width', (
WidgetTester tester,
) async {
await tester.pumpWidget(
ConstrainedBox(
constraints: const BoxConstraints(minWidth: double.infinity, minHeight: 20.0),
child: const Placeholder(),
),
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicWidth(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicWidth(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicHeight(double.infinity),
20.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicHeight(double.infinity),
20.0,
);
});
testWidgets('ConstrainedBox intrinsics - minWidth - with infinite height', (
WidgetTester tester,
) async {
await tester.pumpWidget(
ConstrainedBox(
constraints: const BoxConstraints(minWidth: 20.0, minHeight: double.infinity),
child: const Placeholder(),
),
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicWidth(double.infinity),
20.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicWidth(double.infinity),
20.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicHeight(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicHeight(double.infinity),
0.0,
);
});
testWidgets('ConstrainedBox intrinsics - infinite', (WidgetTester tester) async {
await tester.pumpWidget(
ConstrainedBox(
constraints: const BoxConstraints.tightFor(width: double.infinity, height: double.infinity),
child: const Placeholder(),
),
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicWidth(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicWidth(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMinIntrinsicHeight(double.infinity),
0.0,
);
expect(
tester
.renderObject<RenderBox>(find.byType(ConstrainedBox))
.getMaxIntrinsicHeight(double.infinity),
0.0,
);
});
testWidgets('ConstrainedBox does not crash at zero area', (WidgetTester tester) async {
tester.view.physicalSize = Size.zero;
addTearDown(tester.view.reset);
await tester.pumpWidget(
Directionality(
textDirection: TextDirection.ltr,
child: Center(
child: ConstrainedBox(constraints: const BoxConstraints(minWidth: 200, maxWidth: 400)),
),
),
);
expect(tester.getSize(find.byType(ConstrainedBox)), Size.zero);
});
}