| // 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)), |
| ); |
| }); |
| } |