forked from flutter/packages
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Reland "Add tests for scaffold drawer and end drawer" (#150045) (#150…
…047) This relands commit 14df7be. Contributes to flutter/flutter#130459 Needs flutter/flutter#149851 to be fixed before getting merged
- Loading branch information
1 parent
fdb74fd
commit 9b3c936
Showing
3 changed files
with
110 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
55 changes: 55 additions & 0 deletions
55
examples/api/test/material/scaffold/scaffold.drawer.0_test.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
// 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_api_samples/material/scaffold/scaffold.drawer.0.dart' as example; | ||
import 'package:flutter_test/flutter_test.dart'; | ||
|
||
void main() { | ||
testWidgets('The page should contain a drawer than can be opened and closed', (WidgetTester tester) async { | ||
await tester.pumpWidget( | ||
const example.DrawerExampleApp(), | ||
); | ||
|
||
expect(find.byType(Drawer), findsNothing); | ||
|
||
// Open the drawer by tapping the button at the center of the screen. | ||
await tester.tap(find.widgetWithText(ElevatedButton, 'Open Drawer')); | ||
await tester.pumpAndSettle(); | ||
|
||
expect(find.byType(Drawer), findsOne); | ||
expect(tester.getCenter( | ||
find.byType(Drawer)).dx, | ||
lessThan(400), | ||
reason: 'The drawer should be on the left side of the screen', | ||
); | ||
expect(find.text('This is the Drawer'), findsOne); | ||
|
||
// Close the drawer by tapping the button inside the drawer. | ||
await tester.tap(find.widgetWithText(ElevatedButton, 'Close Drawer')); | ||
await tester.pumpAndSettle(); | ||
|
||
expect(find.byType(Drawer), findsNothing); | ||
|
||
// Open the drawer by tapping the drawer button in the app bar. | ||
expect(tester.getCenter( | ||
find.byType(DrawerButton)).dx, | ||
lessThan(400), | ||
reason: 'The drawer button should be on the left side of the app bar', | ||
); | ||
await tester.tap(find.byType(DrawerButton)); | ||
await tester.pumpAndSettle(); | ||
|
||
expect(find.byType(Drawer), findsOne); | ||
expect(find.text('This is the Drawer'), findsOne); | ||
|
||
// Close the drawer by tapping outside the drawer. | ||
final Rect drawerRect = tester.getRect(find.byType(Drawer)); | ||
final Offset outsideDrawer = drawerRect.centerRight + const Offset(50, 0); | ||
await tester.tapAt(outsideDrawer); | ||
await tester.pumpAndSettle(); | ||
|
||
expect(find.byType(Drawer), findsNothing); | ||
}); | ||
} |
55 changes: 55 additions & 0 deletions
55
examples/api/test/material/scaffold/scaffold.end_drawer.0_test.dart
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
// 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_api_samples/material/scaffold/scaffold.end_drawer.0.dart' as example; | ||
import 'package:flutter_test/flutter_test.dart'; | ||
|
||
void main() { | ||
testWidgets('The page should contain an end drawer than can be opened and closed', (WidgetTester tester) async { | ||
await tester.pumpWidget( | ||
const example.EndDrawerExampleApp(), | ||
); | ||
|
||
expect(find.byType(Drawer), findsNothing); | ||
|
||
// Open the drawer by tapping the button at the center of the screen. | ||
await tester.tap(find.widgetWithText(ElevatedButton, 'Open End Drawer')); | ||
await tester.pumpAndSettle(); | ||
|
||
expect(find.byType(Drawer), findsOne); | ||
expect(tester.getCenter( | ||
find.byType(Drawer)).dx, | ||
greaterThan(400), | ||
reason: 'The drawer should be on the right side of the screen', | ||
); | ||
expect(find.text('This is the Drawer'), findsOne); | ||
|
||
// Close the drawer by tapping the button inside the drawer. | ||
await tester.tap(find.widgetWithText(ElevatedButton, 'Close Drawer')); | ||
await tester.pumpAndSettle(); | ||
|
||
expect(find.byType(Drawer), findsNothing); | ||
|
||
// Open the drawer by tapping the drawer button in the app bar. | ||
expect(tester.getCenter( | ||
find.byType(EndDrawerButton)).dx, | ||
greaterThan(400), | ||
reason: 'The drawer button should be on the right side of the app bar', | ||
); | ||
await tester.tap(find.byType(EndDrawerButton)); | ||
await tester.pumpAndSettle(); | ||
|
||
expect(find.byType(Drawer), findsOne); | ||
expect(find.text('This is the Drawer'), findsOne); | ||
|
||
// Close the drawer by tapping outside the drawer. | ||
final Rect drawerRect = tester.getRect(find.byType(Drawer)); | ||
final Offset outsideDrawer = drawerRect.centerLeft - const Offset(50, 0); | ||
await tester.tapAt(outsideDrawer); | ||
await tester.pumpAndSettle(); | ||
|
||
expect(find.byType(Drawer), findsNothing); | ||
}); | ||
} |