diff --git a/packages/flutter/lib/src/material/popup_menu.dart b/packages/flutter/lib/src/material/popup_menu.dart index fc6f70ae80..a9eca72b88 100644 --- a/packages/flutter/lib/src/material/popup_menu.dart +++ b/packages/flutter/lib/src/material/popup_menu.dart @@ -110,8 +110,7 @@ class PopupMenuDivider extends PopupMenuEntry { final double height; @override - // ignore: prefer_void_to_null, https://github.com/dart-lang/sdk/issues/34416 - bool represents(Null value) => false; + bool represents(void value) => false; @override _PopupMenuDividerState createState() => _PopupMenuDividerState(); diff --git a/packages/flutter/test/material/popup_menu_test.dart b/packages/flutter/test/material/popup_menu_test.dart index 59c1f85cb5..bf42c476aa 100644 --- a/packages/flutter/test/material/popup_menu_test.dart +++ b/packages/flutter/test/material/popup_menu_test.dart @@ -551,6 +551,61 @@ void main() { semantics.dispose(); }); + + testWidgets('PopupMenuButton PopupMenuDivider', (WidgetTester tester) async { + // Regression test for https://github.com/flutter/flutter/issues/27072 + + String selectedValue; + await tester.pumpWidget( + MaterialApp( + home: Scaffold( + body: Container( + child: Center( + child: PopupMenuButton( + onSelected: (String result) { + selectedValue = result; + }, + child: const Text('Menu Button'), + initialValue: '1', + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem( + child: Text('1'), + value: '1', + ), + const PopupMenuDivider(), + const PopupMenuItem( + child: Text('2'), + value: '2', + ), + ], + ), + ), + ), + ), + ), + ); + + await tester.tap(find.text('Menu Button')); + await tester.pumpAndSettle(); + expect(find.text('1'), findsOneWidget); + expect(find.byType(PopupMenuDivider), findsOneWidget); + expect(find.text('2'), findsOneWidget); + + await tester.tap(find.text('1')); + await tester.pumpAndSettle(); + expect(selectedValue, '1'); + + await tester.tap(find.text('Menu Button')); + await tester.pumpAndSettle(); + expect(find.text('1'), findsOneWidget); + expect(find.byType(PopupMenuDivider), findsOneWidget); + expect(find.text('2'), findsOneWidget); + + await tester.tap(find.text('2')); + await tester.pumpAndSettle(); + expect(selectedValue, '2'); + }); + } class TestApp extends StatefulWidget {