// Copyright 2016 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/material.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { testWidgets('Drawer control test', (WidgetTester tester) async { final Key containerKey = new Key('container'); await tester.pumpWidget( new Scaffold( drawer: new Drawer( child: new Block( children: <Widget>[ new DrawerHeader( child: new Container( key: containerKey, child: new Text('header') ) ), new DrawerItem( icon: new Icon(Icons.archive), child: new Text('Archive') ) ] ) ) ) ); expect(find.text('Archive'), findsNothing); ScaffoldState state = tester.firstState(find.byType(Scaffold)); state.openDrawer(); await tester.pump(); await tester.pump(const Duration(seconds: 1)); expect(find.text('Archive'), findsOneWidget); RenderBox box = tester.renderObject(find.byType(DrawerHeader)); expect(box.size.height, equals(160.0 + 8.0 + 1.0)); // height + bottom margin + bottom edge final double drawerWidth = box.size.width; final double drawerHeight = box.size.height; box = tester.renderObject(find.byKey(containerKey)); expect(box.size.width, equals(drawerWidth - 2 * 16.0)); expect(box.size.height, equals(drawerHeight - 2 * 16.0 - 1.0)); // bottom edge expect(find.text('header'), findsOneWidget); }); }