@@ -554,114 +554,117 @@ TEST(PointerDataPacketConverterTest, CanHandleThreeFingerGesture) {
554554 // Third cancel should be dropped
555555}
556556
557- TEST (PointerDataPacketConverterTest, CanConvetScroll) {
558- PointerDataPacketConverter converter;
559- auto packet = std::make_unique<PointerDataPacket>(6 );
560- PointerData data;
561- CreateSimulatedMousePointerData (data, PointerData::Change::kAdd ,
562- PointerData::SignalKind::kNone , 0 , 0.0 , 0.0 ,
563- 0.0 , 0.0 , 0 );
564- packet->SetPointerData (0 , data);
565- CreateSimulatedMousePointerData (data, PointerData::Change::kAdd ,
566- PointerData::SignalKind::kNone , 1 , 0.0 , 0.0 ,
567- 0.0 , 0.0 , 0 );
568- packet->SetPointerData (1 , data);
569- CreateSimulatedMousePointerData (data, PointerData::Change::kDown ,
570- PointerData::SignalKind::kNone , 1 , 0.0 , 0.0 ,
571- 0.0 , 0.0 , 1 );
572- packet->SetPointerData (2 , data);
573- CreateSimulatedMousePointerData (data, PointerData::Change::kHover ,
574- PointerData::SignalKind::kScroll , 0 , 34.0 ,
575- 34.0 , 30.0 , 0.0 , 0 );
576- packet->SetPointerData (3 , data);
577- CreateSimulatedMousePointerData (data, PointerData::Change::kHover ,
578- PointerData::SignalKind::kScroll , 1 , 49.0 ,
579- 49.0 , 50.0 , 0.0 , 0 );
580- packet->SetPointerData (4 , data);
581- CreateSimulatedMousePointerData (data, PointerData::Change::kHover ,
582- PointerData::SignalKind::kScroll , 2 , 10.0 ,
583- 20.0 , 30.0 , 40.0 , 0 );
584- packet->SetPointerData (5 , data);
585- auto converted_packet = converter.Convert (std::move (packet));
586-
587- std::vector<PointerData> result;
588- UnpackPointerPacket (result, std::move (converted_packet));
589-
590- ASSERT_EQ (result.size (), (size_t )9 );
591- ASSERT_EQ (result[0 ].change , PointerData::Change::kAdd );
592- ASSERT_EQ (result[0 ].signal_kind , PointerData::SignalKind::kNone );
593- ASSERT_EQ (result[0 ].device , 0 );
594- ASSERT_EQ (result[0 ].physical_x , 0.0 );
595- ASSERT_EQ (result[0 ].physical_y , 0.0 );
596- ASSERT_EQ (result[0 ].synthesized , 0 );
597-
598- ASSERT_EQ (result[1 ].change , PointerData::Change::kAdd );
599- ASSERT_EQ (result[1 ].signal_kind , PointerData::SignalKind::kNone );
600- ASSERT_EQ (result[1 ].device , 1 );
601- ASSERT_EQ (result[1 ].physical_x , 0.0 );
602- ASSERT_EQ (result[1 ].physical_y , 0.0 );
603- ASSERT_EQ (result[1 ].synthesized , 0 );
604-
605- ASSERT_EQ (result[2 ].change , PointerData::Change::kDown );
606- ASSERT_EQ (result[2 ].signal_kind , PointerData::SignalKind::kNone );
607- ASSERT_EQ (result[2 ].device , 1 );
608- ASSERT_EQ (result[2 ].physical_x , 0.0 );
609- ASSERT_EQ (result[2 ].physical_y , 0.0 );
610- ASSERT_EQ (result[2 ].synthesized , 0 );
611-
612- // Converter will synthesize a hover to position for device 0.
613- ASSERT_EQ (result[3 ].change , PointerData::Change::kHover );
614- ASSERT_EQ (result[3 ].signal_kind , PointerData::SignalKind::kNone );
615- ASSERT_EQ (result[3 ].device , 0 );
616- ASSERT_EQ (result[3 ].physical_x , 34.0 );
617- ASSERT_EQ (result[3 ].physical_y , 34.0 );
618- ASSERT_EQ (result[3 ].physical_delta_x , 34.0 );
619- ASSERT_EQ (result[3 ].physical_delta_y , 34.0 );
620- ASSERT_EQ (result[3 ].buttons , 0 );
621- ASSERT_EQ (result[3 ].synthesized , 1 );
622-
623- ASSERT_EQ (result[4 ].change , PointerData::Change::kHover );
624- ASSERT_EQ (result[4 ].signal_kind , PointerData::SignalKind::kScroll );
625- ASSERT_EQ (result[4 ].device , 0 );
626- ASSERT_EQ (result[4 ].physical_x , 34.0 );
627- ASSERT_EQ (result[4 ].physical_y , 34.0 );
628- ASSERT_EQ (result[4 ].scroll_delta_x , 30.0 );
629- ASSERT_EQ (result[4 ].scroll_delta_y , 0.0 );
630-
631- // Converter will synthesize a move to position for device 1.
632- ASSERT_EQ (result[5 ].change , PointerData::Change::kMove );
633- ASSERT_EQ (result[5 ].signal_kind , PointerData::SignalKind::kNone );
634- ASSERT_EQ (result[5 ].device , 1 );
635- ASSERT_EQ (result[5 ].physical_x , 49.0 );
636- ASSERT_EQ (result[5 ].physical_y , 49.0 );
637- ASSERT_EQ (result[5 ].physical_delta_x , 49.0 );
638- ASSERT_EQ (result[5 ].physical_delta_y , 49.0 );
639- ASSERT_EQ (result[5 ].buttons , 1 );
640- ASSERT_EQ (result[5 ].synthesized , 1 );
641-
642- ASSERT_EQ (result[6 ].change , PointerData::Change::kHover );
643- ASSERT_EQ (result[6 ].signal_kind , PointerData::SignalKind::kScroll );
644- ASSERT_EQ (result[6 ].device , 1 );
645- ASSERT_EQ (result[6 ].physical_x , 49.0 );
646- ASSERT_EQ (result[6 ].physical_y , 49.0 );
647- ASSERT_EQ (result[6 ].scroll_delta_x , 50.0 );
648- ASSERT_EQ (result[6 ].scroll_delta_y , 0.0 );
649-
650- // Converter will synthesize an add for device 2.
651- ASSERT_EQ (result[7 ].change , PointerData::Change::kAdd );
652- ASSERT_EQ (result[7 ].signal_kind , PointerData::SignalKind::kNone );
653- ASSERT_EQ (result[7 ].device , 2 );
654- ASSERT_EQ (result[7 ].physical_x , 10.0 );
655- ASSERT_EQ (result[7 ].physical_y , 20.0 );
656- ASSERT_EQ (result[7 ].synthesized , 1 );
657-
658- ASSERT_EQ (result[8 ].change , PointerData::Change::kHover );
659- ASSERT_EQ (result[8 ].signal_kind , PointerData::SignalKind::kScroll );
660- ASSERT_EQ (result[8 ].device , 2 );
661- ASSERT_EQ (result[8 ].physical_x , 10.0 );
662- ASSERT_EQ (result[8 ].physical_y , 20.0 );
663- ASSERT_EQ (result[8 ].scroll_delta_x , 30.0 );
664- ASSERT_EQ (result[8 ].scroll_delta_y , 40.0 );
557+ TEST (PointerDataPacketConverterTest, CanConvertPointerSignals) {
558+ PointerData::SignalKind signal_kinds[] = {
559+ PointerData::SignalKind::kScroll ,
560+ PointerData::SignalKind::kScrollInertiaCancel ,
561+ };
562+ for (const PointerData::SignalKind& kind : signal_kinds) {
563+ PointerDataPacketConverter converter;
564+ auto packet = std::make_unique<PointerDataPacket>(6 );
565+ PointerData data;
566+ CreateSimulatedMousePointerData (data, PointerData::Change::kAdd ,
567+ PointerData::SignalKind::kNone , 0 , 0.0 , 0.0 ,
568+ 0.0 , 0.0 , 0 );
569+ packet->SetPointerData (0 , data);
570+ CreateSimulatedMousePointerData (data, PointerData::Change::kAdd ,
571+ PointerData::SignalKind::kNone , 1 , 0.0 , 0.0 ,
572+ 0.0 , 0.0 , 0 );
573+ packet->SetPointerData (1 , data);
574+ CreateSimulatedMousePointerData (data, PointerData::Change::kDown ,
575+ PointerData::SignalKind::kNone , 1 , 0.0 , 0.0 ,
576+ 0.0 , 0.0 , 1 );
577+ packet->SetPointerData (2 , data);
578+ CreateSimulatedMousePointerData (data, PointerData::Change::kHover , kind, 0 ,
579+ 34.0 , 34.0 , 30.0 , 0.0 , 0 );
580+ packet->SetPointerData (3 , data);
581+ CreateSimulatedMousePointerData (data, PointerData::Change::kHover , kind, 1 ,
582+ 49.0 , 49.0 , 50.0 , 0.0 , 0 );
583+ packet->SetPointerData (4 , data);
584+ CreateSimulatedMousePointerData (data, PointerData::Change::kHover , kind, 2 ,
585+ 10.0 , 20.0 , 30.0 , 40.0 , 0 );
586+ packet->SetPointerData (5 , data);
587+ auto converted_packet = converter.Convert (std::move (packet));
588+
589+ std::vector<PointerData> result;
590+ UnpackPointerPacket (result, std::move (converted_packet));
591+
592+ ASSERT_EQ (result.size (), (size_t )9 );
593+ ASSERT_EQ (result[0 ].change , PointerData::Change::kAdd );
594+ ASSERT_EQ (result[0 ].signal_kind , PointerData::SignalKind::kNone );
595+ ASSERT_EQ (result[0 ].device , 0 );
596+ ASSERT_EQ (result[0 ].physical_x , 0.0 );
597+ ASSERT_EQ (result[0 ].physical_y , 0.0 );
598+ ASSERT_EQ (result[0 ].synthesized , 0 );
599+
600+ ASSERT_EQ (result[1 ].change , PointerData::Change::kAdd );
601+ ASSERT_EQ (result[1 ].signal_kind , PointerData::SignalKind::kNone );
602+ ASSERT_EQ (result[1 ].device , 1 );
603+ ASSERT_EQ (result[1 ].physical_x , 0.0 );
604+ ASSERT_EQ (result[1 ].physical_y , 0.0 );
605+ ASSERT_EQ (result[1 ].synthesized , 0 );
606+
607+ ASSERT_EQ (result[2 ].change , PointerData::Change::kDown );
608+ ASSERT_EQ (result[2 ].signal_kind , PointerData::SignalKind::kNone );
609+ ASSERT_EQ (result[2 ].device , 1 );
610+ ASSERT_EQ (result[2 ].physical_x , 0.0 );
611+ ASSERT_EQ (result[2 ].physical_y , 0.0 );
612+ ASSERT_EQ (result[2 ].synthesized , 0 );
613+
614+ // Converter will synthesize a hover to position for device 0.
615+ ASSERT_EQ (result[3 ].change , PointerData::Change::kHover );
616+ ASSERT_EQ (result[3 ].signal_kind , PointerData::SignalKind::kNone );
617+ ASSERT_EQ (result[3 ].device , 0 );
618+ ASSERT_EQ (result[3 ].physical_x , 34.0 );
619+ ASSERT_EQ (result[3 ].physical_y , 34.0 );
620+ ASSERT_EQ (result[3 ].physical_delta_x , 34.0 );
621+ ASSERT_EQ (result[3 ].physical_delta_y , 34.0 );
622+ ASSERT_EQ (result[3 ].buttons , 0 );
623+ ASSERT_EQ (result[3 ].synthesized , 1 );
624+
625+ ASSERT_EQ (result[4 ].change , PointerData::Change::kHover );
626+ ASSERT_EQ (result[4 ].signal_kind , kind);
627+ ASSERT_EQ (result[4 ].device , 0 );
628+ ASSERT_EQ (result[4 ].physical_x , 34.0 );
629+ ASSERT_EQ (result[4 ].physical_y , 34.0 );
630+ ASSERT_EQ (result[4 ].scroll_delta_x , 30.0 );
631+ ASSERT_EQ (result[4 ].scroll_delta_y , 0.0 );
632+
633+ // Converter will synthesize a move to position for device 1.
634+ ASSERT_EQ (result[5 ].change , PointerData::Change::kMove );
635+ ASSERT_EQ (result[5 ].signal_kind , PointerData::SignalKind::kNone );
636+ ASSERT_EQ (result[5 ].device , 1 );
637+ ASSERT_EQ (result[5 ].physical_x , 49.0 );
638+ ASSERT_EQ (result[5 ].physical_y , 49.0 );
639+ ASSERT_EQ (result[5 ].physical_delta_x , 49.0 );
640+ ASSERT_EQ (result[5 ].physical_delta_y , 49.0 );
641+ ASSERT_EQ (result[5 ].buttons , 1 );
642+ ASSERT_EQ (result[5 ].synthesized , 1 );
643+
644+ ASSERT_EQ (result[6 ].change , PointerData::Change::kHover );
645+ ASSERT_EQ (result[6 ].signal_kind , kind);
646+ ASSERT_EQ (result[6 ].device , 1 );
647+ ASSERT_EQ (result[6 ].physical_x , 49.0 );
648+ ASSERT_EQ (result[6 ].physical_y , 49.0 );
649+ ASSERT_EQ (result[6 ].scroll_delta_x , 50.0 );
650+ ASSERT_EQ (result[6 ].scroll_delta_y , 0.0 );
651+
652+ // Converter will synthesize an add for device 2.
653+ ASSERT_EQ (result[7 ].change , PointerData::Change::kAdd );
654+ ASSERT_EQ (result[7 ].signal_kind , PointerData::SignalKind::kNone );
655+ ASSERT_EQ (result[7 ].device , 2 );
656+ ASSERT_EQ (result[7 ].physical_x , 10.0 );
657+ ASSERT_EQ (result[7 ].physical_y , 20.0 );
658+ ASSERT_EQ (result[7 ].synthesized , 1 );
659+
660+ ASSERT_EQ (result[8 ].change , PointerData::Change::kHover );
661+ ASSERT_EQ (result[8 ].signal_kind , kind);
662+ ASSERT_EQ (result[8 ].device , 2 );
663+ ASSERT_EQ (result[8 ].physical_x , 10.0 );
664+ ASSERT_EQ (result[8 ].physical_y , 20.0 );
665+ ASSERT_EQ (result[8 ].scroll_delta_x , 30.0 );
666+ ASSERT_EQ (result[8 ].scroll_delta_y , 40.0 );
667+ }
665668}
666669
667670TEST (PointerDataPacketConverterTest, CanConvertTrackpadGesture) {
0 commit comments