diff --git a/packages/flutter/test/material/menu_anchor_test.dart b/packages/flutter/test/material/menu_anchor_test.dart index c8249b06df7..2b16a89a9ef 100644 --- a/packages/flutter/test/material/menu_anchor_test.dart +++ b/packages/flutter/test/material/menu_anchor_test.dart @@ -16,6 +16,7 @@ void main() { final List opened = []; final List closed = []; final GlobalKey menuItemKey = GlobalKey(); + late Size defaultSize; void onPressed(TestMenu item) { selected.add(item); @@ -33,6 +34,11 @@ void main() { focusedMenu = primaryFocus?.debugLabel ?? primaryFocus?.toString(); } + setUpAll(() { + final MediaQueryData mediaQueryData = MediaQueryData.fromWindow(TestWidgetsFlutterBinding.instance.window); + defaultSize = mediaQueryData.size; + }); + setUp(() { focusedMenu = null; selected.clear(); @@ -42,6 +48,13 @@ void main() { focusedMenu = null; }); + Future changeSurfaceSize(WidgetTester tester, Size size) async { + await tester.binding.setSurfaceSize(size); + addTearDown(() async { + await tester.binding.setSurfaceSize(defaultSize); + }); + } + void listenForFocusChanges() { FocusManager.instance.addListener(handleFocusChange); addTearDown(() => FocusManager.instance.removeListener(handleFocusChange)); @@ -1059,16 +1072,13 @@ void main() { opened.clear(); const Size smallSize = Size(200, 200); - await tester.binding.setSurfaceSize(smallSize); + await changeSurfaceSize(tester, smallSize); await tester.pumpWidget(build(smallSize)); await tester.pump(); expect(opened, isEmpty); expect(closed, isNotEmpty); - - // Reset binding when done. - await tester.binding.setSurfaceSize(mediaQueryData.size); }); }); @@ -1408,7 +1418,7 @@ void main() { } testWidgets('unconstrained menus show up in the right place in LTR', (WidgetTester tester) async { - await tester.binding.setSurfaceSize(const Size(800, 600)); + await changeSurfaceSize(tester, const Size(800, 600)); await tester.pumpWidget( MaterialApp( home: Material( @@ -1446,7 +1456,7 @@ void main() { }); testWidgets('unconstrained menus show up in the right place in RTL', (WidgetTester tester) async { - await tester.binding.setSurfaceSize(const Size(800, 600)); + await changeSurfaceSize(tester, const Size(800, 600)); await tester.pumpWidget( MaterialApp( home: Directionality( @@ -1487,7 +1497,7 @@ void main() { }); testWidgets('constrained menus show up in the right place in LTR', (WidgetTester tester) async { - await tester.binding.setSurfaceSize(const Size(300, 300)); + await changeSurfaceSize(tester, const Size(300, 300)); await tester.pumpWidget( MaterialApp( home: Builder( @@ -1526,7 +1536,7 @@ void main() { }); testWidgets('constrained menus show up in the right place in RTL', (WidgetTester tester) async { - await tester.binding.setSurfaceSize(const Size(300, 300)); + await changeSurfaceSize(tester, const Size(300, 300)); await tester.pumpWidget( MaterialApp( home: Builder(