diff --git a/packages/flutter/test/widget/bottom_sheet_rebuild_test.dart b/packages/flutter/test/widget/bottom_sheet_rebuild_test.dart new file mode 100644 index 00000000000..b5f2a5a4082 --- /dev/null +++ b/packages/flutter/test/widget/bottom_sheet_rebuild_test.dart @@ -0,0 +1,45 @@ +// Copyright 2015 The Chromium 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_test/flutter_test.dart'; +import 'package:flutter/material.dart'; +import 'package:test/test.dart'; + +void main() { + test('Verify that a BottomSheet can be rebuilt with ScaffoldFeatureController.setState()', () { + testWidgets((WidgetTester tester) { + final GlobalKey scaffoldKey = new GlobalKey(); + ScaffoldFeatureController bottomSheet; + int buildCount = 0; + + tester.pumpWidget(new MaterialApp( + routes: { + '/': (RouteArguments args) { + return new Scaffold( + key: scaffoldKey, + body: new Center(child: new Text('body')) + ); + } + } + )); + + bottomSheet = scaffoldKey.currentState.showBottomSheet((_) { + return new Builder( + builder: (_) { + buildCount += 1; + return new Container(height: 200.0); + } + ); + }); + + tester.pump(); + expect(buildCount, equals(1)); + + bottomSheet.setState((){ }); + tester.pump(); + expect(buildCount, equals(2)); + }); + }); + +}