@@ -600,4 +600,38 @@ TEST (NodeOrderTest)
600600 }
601601}
602602
603+ TEST (MultiMouseMoveHandlerTest)
604+ {
605+ NodeEditorTestEnv env (GetDefaultSkinParams ());
606+ Point padding (10.0 , 10.0 );
607+
608+ { // create two nodes
609+ env.nodeEditor .AddNode (UINodePtr (new DoubleUpDownNode (LocString (L" Number 1" ), Point (100.0 , 100.0 ), 0.0 , 1.0 )));
610+ env.nodeEditor .AddNode (UINodePtr (new DoubleUpDownNode (LocString (L" Number 2" ), Point (250.0 , 250.0 ), 0.0 , 1.0 )));
611+ ASSERT (env.CheckReference (L" MultiMouseMoveHandlerTest_Initial.svg" ));
612+ }
613+
614+ Point mousePosition;
615+ { // start dragging number 2
616+ mousePosition = env.GetNodeRect (env.GetNode (L" Number 2" )).GetTopLeft () + padding;
617+ env.nodeEditor .OnMouseDown (EmptyModifierKeys, MouseButton::Left, (int ) mousePosition.GetX (), (int ) mousePosition.GetY ());
618+ mousePosition = mousePosition + Point (100 , 0 );
619+ env.nodeEditor .OnMouseMove (EmptyModifierKeys, (int ) mousePosition.GetX (), (int ) mousePosition.GetY ());
620+ ASSERT (env.CheckReference (L" MultiMouseMoveHandlerTest_Number2Dragging.svg" ));
621+ }
622+
623+ { // start panning the canvas
624+ env.nodeEditor .OnMouseDown (EmptyModifierKeys, MouseButton::Right, (int ) mousePosition.GetX (), (int ) mousePosition.GetY ());
625+ mousePosition = mousePosition + Point (0 , 50 );
626+ env.nodeEditor .OnMouseMove (EmptyModifierKeys, (int ) mousePosition.GetX (), (int ) mousePosition.GetY ());
627+ ASSERT (env.CheckReference (L" MultiMouseMoveHandlerTest_Number2DraggingAndPanning.svg" ));
628+ }
629+
630+ { // release mouse buttons
631+ env.nodeEditor .OnMouseUp (EmptyModifierKeys, MouseButton::Right, (int ) mousePosition.GetX (), (int ) mousePosition.GetY ());
632+ env.nodeEditor .OnMouseUp (EmptyModifierKeys, MouseButton::Left, (int ) mousePosition.GetX (), (int ) mousePosition.GetY ());
633+ ASSERT (env.CheckReference (L" MultiMouseMoveHandlerTest_Final.svg" ));
634+ }
635+ }
636+
603637}
0 commit comments