| // 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/material.dart'; |
| import 'package:flutter/rendering.dart'; |
| import 'package:flutter_api_samples/widgets/sliver/sliver_cross_axis_group.0.dart' |
| as example; |
| import 'package:flutter_test/flutter_test.dart'; |
| |
| void main() { |
| testWidgets('SliverCrossAxisGroup example', (WidgetTester tester) async { |
| await tester.pumpWidget( |
| const example.SliverCrossAxisGroupExampleApp(), |
| ); |
| |
| final RenderSliverCrossAxisGroup renderSliverGroup = tester.renderObject(find.byType(SliverCrossAxisGroup)); |
| expect(renderSliverGroup, isNotNull); |
| |
| final double crossAxisExtent = renderSliverGroup.constraints.crossAxisExtent; |
| |
| final List<RenderSliverList> renderSliverLists = tester.renderObjectList<RenderSliverList>(find.byType(SliverList)).toList(); |
| final RenderSliverList firstList = renderSliverLists[0]; |
| final RenderSliverList secondList = renderSliverLists[1]; |
| final RenderSliverList thirdList = renderSliverLists[2]; |
| |
| final double expectedFirstExtent = (crossAxisExtent - 200) / 3; |
| const double expectedSecondExtent = 200; |
| final double expectedThirdExtent = 2 * (crossAxisExtent - 200) / 3; |
| expect(firstList.constraints.crossAxisExtent, equals(expectedFirstExtent)); |
| expect(secondList.constraints.crossAxisExtent, equals(expectedSecondExtent)); |
| expect(thirdList.constraints.crossAxisExtent, equals(expectedThirdExtent)); |
| |
| // Also check that the paint offsets are correct. |
| final RenderSliverConstrainedCrossAxis renderConstrained = tester.renderObject<RenderSliverConstrainedCrossAxis>( |
| find.byType(SliverConstrainedCrossAxis) |
| ); |
| |
| expect((firstList.parentData! as SliverPhysicalParentData).paintOffset.dx, equals(0)); |
| expect((renderConstrained.parentData! as SliverPhysicalParentData).paintOffset.dx, equals(expectedFirstExtent)); |
| expect((thirdList.parentData! as SliverPhysicalParentData).paintOffset.dx, equals(expectedFirstExtent + expectedSecondExtent)); |
| }); |
| } |