mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
Removed old Stack layout and added a simple-to-extend interface for the new drawer header. Also added a specialized UserAccountsDrawerHeader consistent with Material Design guidelines.
54 lines
1.6 KiB
Dart
54 lines
1.6 KiB
Dart
// 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);
|
|
});
|
|
}
|