Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 4f0b40d

Browse files
committed
Add test
1 parent 0cd7615 commit 4f0b40d

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed

lib/web_ui/test/engine/pointer_binding_test.dart

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -726,6 +726,79 @@ void testMain() {
726726
},
727727
);
728728

729+
_testEach<_ButtonedEventMixin>(
730+
<_ButtonedEventMixin>[
731+
if (!isIosSafari) _PointerEventContext(),
732+
if (!isIosSafari) _MouseEventContext(),
733+
],
734+
'does set pointer device kind based on delta precision',
735+
(_ButtonedEventMixin context) {
736+
PointerBinding.instance!.debugOverrideDetector(context);
737+
final List<ui.PointerDataPacket> packets = <ui.PointerDataPacket>[];
738+
ui.window.onPointerDataPacket = (ui.PointerDataPacket packet) {
739+
packets.add(packet);
740+
};
741+
742+
glassPane.dispatchEvent(context.wheel(
743+
buttons: 0,
744+
clientX: 10,
745+
clientY: 10,
746+
deltaX: 10,
747+
deltaY: 10,
748+
));
749+
750+
glassPane.dispatchEvent(context.wheel(
751+
buttons: 0,
752+
clientX: 10,
753+
clientY: 10,
754+
deltaX: 0,
755+
deltaY: 120,
756+
));
757+
758+
expect(packets, hasLength(2));
759+
760+
// An add will be synthesized.
761+
expect(packets[0].data, hasLength(2));
762+
expect(packets[0].data[0].change, equals(ui.PointerChange.add));
763+
expect(packets[0].data[0].pointerIdentifier, equals(0));
764+
expect(packets[0].data[0].synthesized, isTrue);
765+
expect(packets[0].data[0].physicalX, equals(10.0 * dpi));
766+
expect(packets[0].data[0].physicalY, equals(10.0 * dpi));
767+
expect(packets[0].data[0].physicalDeltaX, equals(0.0));
768+
expect(packets[0].data[0].physicalDeltaY, equals(0.0));
769+
// Because the delta is not in increments of 120, it will be a trackpad event.
770+
expect(packets[0].data[1].change, equals(ui.PointerChange.hover));
771+
expect(
772+
packets[0].data[1].signalKind, equals(ui.PointerSignalKind.scroll));
773+
expect(
774+
packets[0].data[1].kind, equals(ui.PointerDeviceKind.trackpad));
775+
expect(packets[0].data[1].pointerIdentifier, equals(0));
776+
expect(packets[0].data[1].synthesized, isFalse);
777+
expect(packets[0].data[1].physicalX, equals(10.0 * dpi));
778+
expect(packets[0].data[1].physicalY, equals(10.0 * dpi));
779+
expect(packets[0].data[1].physicalDeltaX, equals(0.0));
780+
expect(packets[0].data[1].physicalDeltaY, equals(0.0));
781+
expect(packets[0].data[1].scrollDeltaX, equals(10.0));
782+
expect(packets[0].data[1].scrollDeltaY, equals(10.0));
783+
784+
// Because the delta is in increments of 120, it will be a mouse event.
785+
expect(packets[1].data, hasLength(1));
786+
expect(packets[1].data[0].change, equals(ui.PointerChange.hover));
787+
expect(
788+
packets[1].data[0].signalKind, equals(ui.PointerSignalKind.scroll));
789+
expect(
790+
packets[1].data[0].kind, equals(ui.PointerDeviceKind.mouse));
791+
expect(packets[1].data[0].pointerIdentifier, equals(0));
792+
expect(packets[1].data[0].synthesized, isFalse);
793+
expect(packets[1].data[0].physicalX, equals(10.0 * dpi));
794+
expect(packets[1].data[0].physicalY, equals(10.0 * dpi));
795+
expect(packets[1].data[0].physicalDeltaX, equals(0.0));
796+
expect(packets[1].data[0].physicalDeltaY, equals(0.0));
797+
expect(packets[1].data[0].scrollDeltaX, equals(0.0));
798+
expect(packets[1].data[0].scrollDeltaY, equals(120.0));
799+
},
800+
);
801+
729802
_testEach<_ButtonedEventMixin>(
730803
<_ButtonedEventMixin>[
731804
if (!isIosSafari) _PointerEventContext(),

0 commit comments

Comments
 (0)