Skip to content

Commit 81f962d

Browse files
authored
Make hover tests functional and cleanup mouse pointers in Material toggleables (flutter#148808)
Tests in Material toggleables (`Radio`, `Switch`, `Checkbox`) which require hovering using a mouse pointer do not include `addTearDown(gesture.removePointer)` to remove the mouse pointer once the test concludes. Also, hovering tests in Material `Checkbox` currently have no functionality (i.e what is painted before hovering = what is painted while hovering). For example: https://github.com/flutter/flutter/blob/357bd6574971af634066d9ff9c1fc1320edf71f7/packages/flutter/test/material/checkbox_test.dart#L880-L896 This PR adds `addTearDown(gesture.removePointer)` to `Radio`, `Switch`, and `Checkbox` tests, and functionality for `Checkbox` hover tests. Fixes flutter#148809.
1 parent 7d529a7 commit 81f962d

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

packages/flutter/test/material/checkbox_test.dart

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -884,13 +884,15 @@ void main() {
884884

885885
// Start hovering
886886
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
887+
addTearDown(gesture.removePointer);
887888
await gesture.moveTo(tester.getCenter(find.byType(Checkbox)));
888889

889890
await tester.pumpWidget(buildApp());
890891
await tester.pumpAndSettle();
891892
expect(
892893
Material.of(tester.element(find.byType(Checkbox))),
893894
paints
895+
..circle(color: Colors.orange[500])
894896
..path(color: const Color(0xff2196f3))
895897
..path(color: const Color(0xffffffff), style: PaintingStyle.stroke, strokeWidth: 2.0),
896898
);
@@ -941,13 +943,15 @@ void main() {
941943

942944
// Start hovering
943945
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
946+
addTearDown(gesture.removePointer);
944947
await gesture.moveTo(tester.getCenter(find.byType(Checkbox)));
945948

946949
await tester.pumpWidget(buildApp());
947950
await tester.pumpAndSettle();
948951
expect(
949952
Material.of(tester.element(find.byType(Checkbox))),
950953
paints
954+
..circle(color: Colors.orange[500])
951955
..path(color: const Color(0xff6750a4))
952956
..path(color: theme.colorScheme.onPrimary, style: PaintingStyle.stroke, strokeWidth: 2.0),
953957
);
@@ -991,7 +995,7 @@ void main() {
991995
await tester.pumpAndSettle();
992996
await tester.sendKeyEvent(LogicalKeyboardKey.enter);
993997
await tester.pumpAndSettle();
994-
// On web, switches don't respond to the enter key.
998+
// On web, checkboxes don't respond to the enter key.
995999
expect(value, kIsWeb ? isTrue : isFalse);
9961000
await tester.sendKeyEvent(LogicalKeyboardKey.enter);
9971001
await tester.pumpAndSettle();
@@ -1121,6 +1125,7 @@ void main() {
11211125

11221126
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse, pointer: 1);
11231127
await gesture.addPointer(location: tester.getCenter(find.byType(Checkbox)));
1128+
addTearDown(gesture.removePointer);
11241129

11251130
await tester.pump();
11261131

@@ -1297,6 +1302,7 @@ void main() {
12971302
// Start hovering
12981303
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
12991304
await gesture.addPointer();
1305+
addTearDown(gesture.removePointer);
13001306
await gesture.moveTo(tester.getCenter(find.byType(Checkbox)));
13011307
await tester.pumpAndSettle();
13021308

@@ -1404,6 +1410,7 @@ void main() {
14041410
await tester.pumpWidget(buildCheckbox());
14051411
final TestGesture gesture3 = await tester.createGesture(kind: PointerDeviceKind.mouse);
14061412
await gesture3.addPointer();
1413+
addTearDown(gesture3.removePointer);
14071414
await gesture3.moveTo(tester.getCenter(find.byType(Checkbox)));
14081415
await tester.pumpAndSettle();
14091416

@@ -1475,6 +1482,7 @@ void main() {
14751482
await tester.pumpWidget(buildCheckbox());
14761483
final TestGesture gesture3 = await tester.createGesture(kind: PointerDeviceKind.mouse);
14771484
await gesture3.addPointer();
1485+
addTearDown(gesture3.removePointer);
14781486
await gesture3.moveTo(tester.getCenter(find.byType(Checkbox)));
14791487
await tester.pumpAndSettle();
14801488

@@ -1613,6 +1621,7 @@ void main() {
16131621
// Start hovering
16141622
final TestGesture gesture5 = await tester.createGesture(kind: PointerDeviceKind.mouse);
16151623
await gesture5.addPointer();
1624+
addTearDown(gesture5.removePointer);
16161625
await gesture5.moveTo(tester.getCenter(find.byType(Checkbox)));
16171626
await tester.pumpAndSettle();
16181627

@@ -2041,6 +2050,7 @@ void main() {
20412050
// Start hovering
20422051
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
20432052
await gesture.addPointer();
2053+
addTearDown(gesture.removePointer);
20442054
await gesture.moveTo(tester.getCenter(find.byType(Checkbox)));
20452055
await tester.pumpAndSettle();
20462056

@@ -2132,6 +2142,7 @@ void main() {
21322142
// Start hovering
21332143
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
21342144
await gesture.addPointer();
2145+
addTearDown(gesture.removePointer);
21352146
await gesture.moveTo(tester.getCenter(find.byType(Checkbox)));
21362147
await tester.pumpAndSettle();
21372148
expectBorder();

packages/flutter/test/material/radio_test.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -979,6 +979,7 @@ void main() {
979979

980980
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse, pointer: 1);
981981
await gesture.addPointer(location: tester.getCenter(find.byKey(key)));
982+
addTearDown(gesture.removePointer);
982983

983984
await tester.pump();
984985

@@ -1213,6 +1214,7 @@ void main() {
12131214
// Start hovering
12141215
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
12151216
await gesture.addPointer();
1217+
addTearDown(gesture.removePointer);
12161218
await gesture.moveTo(tester.getCenter(find.byKey(radioKey)));
12171219
await tester.pumpAndSettle();
12181220

@@ -1293,6 +1295,7 @@ void main() {
12931295
// Start hovering
12941296
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
12951297
await gesture.addPointer();
1298+
addTearDown(gesture.removePointer);
12961299
await gesture.moveTo(tester.getCenter(find.byKey(radioKey)));
12971300
await tester.pumpAndSettle();
12981301

@@ -1441,6 +1444,7 @@ void main() {
14411444
// Start hovering
14421445
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
14431446
await gesture.addPointer();
1447+
addTearDown(gesture.removePointer);
14441448
await gesture.moveTo(tester.getCenter(findRadio()));
14451449
await tester.pumpAndSettle();
14461450

@@ -1881,6 +1885,7 @@ void main() {
18811885
kind: PointerDeviceKind.mouse,
18821886
);
18831887
await gesture.addPointer();
1888+
addTearDown(gesture.removePointer);
18841889
await gesture.moveTo(center);
18851890
await tester.pumpAndSettle();
18861891

@@ -1947,6 +1952,7 @@ void main() {
19471952
kind: PointerDeviceKind.mouse,
19481953
);
19491954
await gesture.addPointer();
1955+
addTearDown(gesture.removePointer);
19501956
await gesture.moveTo(center);
19511957
await tester.pumpAndSettle();
19521958

packages/flutter/test/material/switch_test.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -762,6 +762,7 @@ void main() {
762762
kind: PointerDeviceKind.mouse,
763763
);
764764
await gesture.addPointer();
765+
addTearDown(gesture.removePointer);
765766
await gesture.moveTo(center);
766767
await tester.pumpAndSettle();
767768

@@ -809,6 +810,7 @@ void main() {
809810
kind: PointerDeviceKind.mouse,
810811
);
811812
await gesture.addPointer();
813+
addTearDown(gesture.removePointer);
812814
await gesture.moveTo(center);
813815
await tester.pumpAndSettle();
814816

@@ -1242,6 +1244,7 @@ void main() {
12421244
expect(switchSize, const Size(60.0, 48.0));
12431245
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse, pointer: 1);
12441246
await gesture.addPointer(location: tester.getCenter(find.byType(Switch)));
1247+
addTearDown(gesture.removePointer);
12451248
await tester.pump();
12461249
await gesture.moveTo(tester.getCenter(find.byType(Switch)));
12471250
expect(RendererBinding.instance.mouseTracker.debugDeviceActiveCursor(1),
@@ -1932,6 +1935,7 @@ void main() {
19321935
// Start hovering
19331936
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
19341937
await gesture.addPointer();
1938+
addTearDown(gesture.removePointer);
19351939
await gesture.moveTo(tester.getCenter(find.byType(Switch)));
19361940

19371941
await tester.pumpWidget(buildApp());
@@ -2011,6 +2015,7 @@ void main() {
20112015
// Start hovering
20122016
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
20132017
await gesture.addPointer();
2018+
addTearDown(gesture.removePointer);
20142019
await gesture.moveTo(tester.getCenter(find.byType(Switch)));
20152020

20162021
await tester.pumpWidget(buildApp());
@@ -2106,6 +2111,7 @@ void main() {
21062111

21072112
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse, pointer: 1);
21082113
await gesture.addPointer(location: tester.getCenter(find.byType(Switch)));
2114+
addTearDown(gesture.removePointer);
21092115

21102116
await tester.pump();
21112117

@@ -2510,6 +2516,7 @@ void main() {
25102516
// Start hovering
25112517
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
25122518
await gesture.addPointer();
2519+
addTearDown(gesture.removePointer);
25132520
await gesture.moveTo(tester.getCenter(find.byType(Switch)));
25142521
await tester.pumpAndSettle();
25152522

@@ -2590,6 +2597,7 @@ void main() {
25902597
// Start hovering
25912598
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
25922599
await gesture.addPointer();
2600+
addTearDown(gesture.removePointer);
25932601
await gesture.moveTo(tester.getCenter(find.byType(Switch)));
25942602
await tester.pumpAndSettle();
25952603

@@ -2846,6 +2854,7 @@ void main() {
28462854
// Start hovering
28472855
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
28482856
await gesture.addPointer();
2857+
addTearDown(gesture.removePointer);
28492858
await gesture.moveTo(tester.getCenter(find.byType(Switch)));
28502859
await tester.pumpAndSettle();
28512860

@@ -2918,6 +2927,7 @@ void main() {
29182927
// Start hovering
29192928
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
29202929
await gesture.addPointer();
2930+
addTearDown(gesture.removePointer);
29212931
await gesture.moveTo(tester.getCenter(find.byType(Switch)));
29222932
await tester.pumpAndSettle();
29232933

@@ -3172,6 +3182,7 @@ void main() {
31723182
// Start hovering
31733183
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
31743184
await gesture.addPointer();
3185+
addTearDown(gesture.removePointer);
31753186
await gesture.moveTo(tester.getCenter(find.byType(Switch)));
31763187
await tester.pumpAndSettle();
31773188

@@ -3731,6 +3742,7 @@ void main() {
37313742
// Start hovering
37323743
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
37333744
await gesture.addPointer();
3745+
addTearDown(gesture.removePointer);
37343746
await gesture.moveTo(tester.getCenter(find.byType(Switch)));
37353747
await tester.pumpAndSettle();
37363748

@@ -3868,6 +3880,7 @@ void main() {
38683880
// Start hovering
38693881
final TestGesture gesture = await tester.createGesture(kind: PointerDeviceKind.mouse);
38703882
await gesture.addPointer();
3883+
addTearDown(gesture.removePointer);
38713884
await gesture.moveTo(tester.getCenter(find.byType(Switch)));
38723885
await tester.pumpAndSettle();
38733886

0 commit comments

Comments
 (0)