blob: 1ac27b584fd4e34834b3886994f9d8e3f59741b7 [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';
void main() {
testWidgets('SizedBox constructors', (WidgetTester tester) async {
const SizedBox a = SizedBox();
expect(a.width, isNull);
expect(a.height, isNull);
const SizedBox b = SizedBox(width: 10.0);
expect(b.width, 10.0);
expect(b.height, isNull);
const SizedBox c = SizedBox(width: 10.0, height: 20.0);
expect(c.width, 10.0);
expect(c.height, 20.0);
final SizedBox d = SizedBox.fromSize();
expect(d.width, isNull);
expect(d.height, isNull);
final SizedBox e = SizedBox.fromSize(size: const Size(1.0, 2.0));
expect(e.width, 1.0);
expect(e.height, 2.0);
const SizedBox f = SizedBox.expand();
expect(f.width, double.infinity);
expect(f.height, double.infinity);
const SizedBox g = SizedBox.shrink();
expect(g.width, 0.0);
expect(g.height, 0.0);
});
testWidgets('SizedBox - no child', (WidgetTester tester) async {
final GlobalKey patient = GlobalKey();
await tester.pumpWidget(
Center(
child: SizedBox(
key: patient,
),
),
);
expect(patient.currentContext!.size, equals(Size.zero));
await tester.pumpWidget(
Center(
child: SizedBox(
key: patient,
height: 0.0,
),
),
);
expect(patient.currentContext!.size, equals(Size.zero));
await tester.pumpWidget(
Center(
child: SizedBox(
key: patient,
width: 0.0,
height: 0.0,
),
),
);
expect(patient.currentContext!.size, equals(Size.zero));
await tester.pumpWidget(
Center(
child: SizedBox(
key: patient,
width: 100.0,
height: 100.0,
),
),
);
expect(patient.currentContext!.size, equals(const Size(100.0, 100.0)));
await tester.pumpWidget(
Center(
child: SizedBox(
key: patient,
width: 1000.0,
height: 1000.0,
),
),
);
expect(patient.currentContext!.size, equals(const Size(800.0, 600.0)));
await tester.pumpWidget(
Center(
child: SizedBox.expand(
key: patient,
),
),
);
expect(patient.currentContext!.size, equals(const Size(800.0, 600.0)));
await tester.pumpWidget(
Center(
child: SizedBox.shrink(
key: patient,
),
),
);
expect(patient.currentContext!.size, equals(Size.zero));
});
testWidgets('SizedBox - container child', (WidgetTester tester) async {
final GlobalKey patient = GlobalKey();
await tester.pumpWidget(
Center(
child: SizedBox(
key: patient,
child: Container(),
),
),
);
expect(patient.currentContext!.size, equals(const Size(800.0, 600.0)));
await tester.pumpWidget(
Center(
child: SizedBox(
key: patient,
height: 0.0,
child: Container(),
),
),
);
expect(patient.currentContext!.size, equals(const Size(800.0, 0.0)));
await tester.pumpWidget(
Center(
child: SizedBox(
key: patient,
width: 0.0,
height: 0.0,
child: Container(),
),
),
);
expect(patient.currentContext!.size, equals(Size.zero));
await tester.pumpWidget(
Center(
child: SizedBox(
key: patient,
width: 100.0,
height: 100.0,
child: Container(),
),
),
);
expect(patient.currentContext!.size, equals(const Size(100.0, 100.0)));
await tester.pumpWidget(
Center(
child: SizedBox(
key: patient,
width: 1000.0,
height: 1000.0,
child: Container(),
),
),
);
expect(patient.currentContext!.size, equals(const Size(800.0, 600.0)));
await tester.pumpWidget(
Center(
child: SizedBox.expand(
key: patient,
child: Container(),
),
),
);
expect(patient.currentContext!.size, equals(const Size(800.0, 600.0)));
await tester.pumpWidget(
Center(
child: SizedBox.shrink(
key: patient,
child: Container(),
),
),
);
expect(patient.currentContext!.size, equals(Size.zero));
});
testWidgets('SizedBox.square tests', (WidgetTester tester) async {
await tester.pumpWidget(
const SizedBox.square(
dimension: 100,
child: SizedBox.shrink(),
)
);
expect(
tester.renderObject<RenderConstrainedBox>(find.byType(SizedBox).first).additionalConstraints,
BoxConstraints.tight(const Size.square(100)),
);
});
}