@@ -2201,6 +2201,58 @@ void main() {
2201
2201
skip: kIsWeb && ! isCanvasKit, // https://github.com/flutter/flutter/issues/145527
2202
2202
);
2203
2203
2204
+ // Regression test for https://github.com/flutter/flutter/issues/145040.
2205
+ testWidgets ('CharacterActivator shortcut mnemonics include modifiers' , (WidgetTester tester) async {
2206
+ await tester.pumpWidget (
2207
+ MaterialApp (
2208
+ home: Material (
2209
+ child: MenuBar (
2210
+ controller: controller,
2211
+ children: createTestMenus (
2212
+ shortcuts: < TestMenu , MenuSerializableShortcut > {
2213
+ TestMenu .subSubMenu110: const CharacterActivator ('A' , control: true ),
2214
+ TestMenu .subSubMenu111: const CharacterActivator ('B' , alt: true ),
2215
+ TestMenu .subSubMenu112: const CharacterActivator ('C' , meta: true ),
2216
+ },
2217
+ ),
2218
+ ),
2219
+ ),
2220
+ ),
2221
+ );
2222
+
2223
+ // Open a menu initially.
2224
+ await tester.tap (find.text (TestMenu .mainMenu1.label));
2225
+ await tester.pump ();
2226
+
2227
+ await tester.tap (find.text (TestMenu .subMenu11.label));
2228
+ await tester.pump ();
2229
+
2230
+ final Text mnemonic0 = tester.widget (findMnemonic (TestMenu .subSubMenu110.label));
2231
+ final Text mnemonic1 = tester.widget (findMnemonic (TestMenu .subSubMenu111.label));
2232
+ final Text mnemonic2 = tester.widget (findMnemonic (TestMenu .subSubMenu112.label));
2233
+
2234
+ switch (defaultTargetPlatform) {
2235
+ case TargetPlatform .android:
2236
+ case TargetPlatform .fuchsia:
2237
+ case TargetPlatform .linux:
2238
+ expect (mnemonic0.data, equals ('Ctrl+A' ));
2239
+ expect (mnemonic1.data, equals ('Alt+B' ));
2240
+ expect (mnemonic2.data, equals ('Meta+C' ));
2241
+ case TargetPlatform .windows:
2242
+ expect (mnemonic0.data, equals ('Ctrl+A' ));
2243
+ expect (mnemonic1.data, equals ('Alt+B' ));
2244
+ expect (mnemonic2.data, equals ('Win+C' ));
2245
+ case TargetPlatform .iOS:
2246
+ case TargetPlatform .macOS:
2247
+ expect (mnemonic0.data, equals ('⌃ A' ));
2248
+ expect (mnemonic1.data, equals ('⌥ B' ));
2249
+ expect (mnemonic2.data, equals ('⌘ C' ));
2250
+ }
2251
+ },
2252
+ variant: TargetPlatformVariant .all (),
2253
+ skip: kIsWeb && ! isCanvasKit, // https://github.com/flutter/flutter/issues/145527
2254
+ );
2255
+
2204
2256
testWidgets ('leadingIcon is used when set' , (WidgetTester tester) async {
2205
2257
await tester.pumpWidget (
2206
2258
MaterialApp (
0 commit comments