@@ -1620,7 +1620,6 @@ void main() {
1620
1620
);
1621
1621
});
1622
1622
1623
-
1624
1623
testWidgets ('CheckedPopupMenuItem custom padding' , (WidgetTester tester) async {
1625
1624
final Key popupMenuButtonKey = UniqueKey ();
1626
1625
final Type menuItemType = const CheckedPopupMenuItem <String >(child: Text ('item' )).runtimeType;
@@ -2092,6 +2091,86 @@ void main() {
2092
2091
expect (RendererBinding .instance.mouseTracker.debugDeviceActiveCursor (1 ), SystemMouseCursors .basic);
2093
2092
});
2094
2093
2094
+ testWidgets ('CheckedPopupMenuItem changes mouse cursor when hovered' , (WidgetTester tester) async {
2095
+ const Key key = ValueKey <int >(1 );
2096
+ // Test CheckedPopupMenuItem() constructor
2097
+ await tester.pumpWidget (
2098
+ MaterialApp (
2099
+ home: Scaffold (
2100
+ body: Align (
2101
+ alignment: Alignment .topLeft,
2102
+ child: Material (
2103
+ child: MouseRegion (
2104
+ cursor: SystemMouseCursors .forbidden,
2105
+ child: CheckedPopupMenuItem <int >(
2106
+ key: key,
2107
+ mouseCursor: SystemMouseCursors .text,
2108
+ value: 1 ,
2109
+ child: Container (),
2110
+ ),
2111
+ ),
2112
+ ),
2113
+ ),
2114
+ ),
2115
+ ),
2116
+ );
2117
+
2118
+ final TestGesture gesture = await tester.createGesture (kind: PointerDeviceKind .mouse, pointer: 1 );
2119
+ await gesture.addPointer (location: tester.getCenter (find.byKey (key)));
2120
+ addTearDown (gesture.removePointer);
2121
+
2122
+ await tester.pump ();
2123
+
2124
+ expect (RendererBinding .instance.mouseTracker.debugDeviceActiveCursor (1 ), SystemMouseCursors .text);
2125
+
2126
+ // Test default cursor
2127
+ await tester.pumpWidget (
2128
+ MaterialApp (
2129
+ home: Scaffold (
2130
+ body: Align (
2131
+ alignment: Alignment .topLeft,
2132
+ child: Material (
2133
+ child: MouseRegion (
2134
+ cursor: SystemMouseCursors .forbidden,
2135
+ child: CheckedPopupMenuItem <int >(
2136
+ key: key,
2137
+ value: 1 ,
2138
+ child: Container (),
2139
+ ),
2140
+ ),
2141
+ ),
2142
+ ),
2143
+ ),
2144
+ ),
2145
+ );
2146
+
2147
+ expect (RendererBinding .instance.mouseTracker.debugDeviceActiveCursor (1 ), SystemMouseCursors .click);
2148
+
2149
+ // Test default cursor when disabled
2150
+ await tester.pumpWidget (
2151
+ MaterialApp (
2152
+ home: Scaffold (
2153
+ body: Align (
2154
+ alignment: Alignment .topLeft,
2155
+ child: Material (
2156
+ child: MouseRegion (
2157
+ cursor: SystemMouseCursors .forbidden,
2158
+ child: CheckedPopupMenuItem <int >(
2159
+ key: key,
2160
+ value: 1 ,
2161
+ enabled: false ,
2162
+ child: Container (),
2163
+ ),
2164
+ ),
2165
+ ),
2166
+ ),
2167
+ ),
2168
+ ),
2169
+ );
2170
+
2171
+ expect (RendererBinding .instance.mouseTracker.debugDeviceActiveCursor (1 ), SystemMouseCursors .basic);
2172
+ });
2173
+
2095
2174
testWidgets ('PopupMenu in AppBar does not overlap with the status bar' , (WidgetTester tester) async {
2096
2175
const List <PopupMenuItem <int >> choices = < PopupMenuItem <int >> [
2097
2176
PopupMenuItem <int >(value: 1 , child: Text ('Item 1' )),
0 commit comments