@@ -440,9 +440,11 @@ TEST_F(RenderedTargetTest, SpriteDragging)
440440 target.setMouseArea (&mouseArea);
441441
442442 emit mouseArea.mouseMoved (1064 , 651 );
443+ target.beforeRedraw ();
443444 ASSERT_EQ (sprite.x (), 64.08 );
444445 ASSERT_EQ (sprite.y (), -6.86 );
445446 ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
447+ ASSERT_FALSE (sprite.dragging ());
446448
447449 // Try right mouse button (should not work)
448450 QMouseEvent moveEventRightButton (QEvent::MouseMove, QPointF (), QPointF (), Qt::RightButton, Qt::RightButton, Qt::NoModifier);
@@ -454,14 +456,18 @@ TEST_F(RenderedTargetTest, SpriteDragging)
454456 ASSERT_EQ (sprite.x (), 64.08 );
455457 ASSERT_EQ (sprite.y (), -6.86 );
456458 ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
459+ ASSERT_FALSE (sprite.dragging ());
457460 EXPECT_CALL (engine, clickTarget).Times (0 );
458461 QCoreApplication::sendEvent (&target, &releaseEventRightButton);
459462 ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
463+ ASSERT_FALSE (sprite.dragging ());
460464
461465 emit mouseArea.mouseMoved (1064 , 651 );
466+ target.beforeRedraw ();
462467 ASSERT_EQ (sprite.x (), 64.08 );
463468 ASSERT_EQ (sprite.y (), -6.86 );
464469 ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
470+ ASSERT_FALSE (sprite.dragging ());
465471
466472 // Try right mouse button with "draggable" set to true (should not work)
467473 sprite.setDraggable (true );
@@ -471,14 +477,18 @@ TEST_F(RenderedTargetTest, SpriteDragging)
471477 ASSERT_EQ (sprite.x (), 64.08 );
472478 ASSERT_EQ (sprite.y (), -6.86 );
473479 ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
480+ ASSERT_FALSE (sprite.dragging ());
474481 EXPECT_CALL (engine, clickTarget (&sprite));
475482 QCoreApplication::sendEvent (&target, &releaseEventRightButton);
476483 ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
484+ ASSERT_FALSE (sprite.dragging ());
477485
478486 emit mouseArea.mouseMoved (1064 , 651 );
487+ target.beforeRedraw ();
479488 ASSERT_EQ (sprite.x (), 64.08 );
480489 ASSERT_EQ (sprite.y (), -6.86 );
481490 ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
491+ ASSERT_FALSE (sprite.dragging ());
482492
483493 // Try left mouse button (should not work with "draggable" set to false)
484494 sprite.setDraggable (false );
@@ -491,11 +501,14 @@ TEST_F(RenderedTargetTest, SpriteDragging)
491501 ASSERT_EQ (sprite.x (), 64.08 );
492502 ASSERT_EQ (sprite.y (), -6.86 );
493503 ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
504+ ASSERT_FALSE (sprite.dragging ());
494505
495506 emit mouseArea.mouseMoved (1064 , 651 );
507+ target.beforeRedraw ();
496508 ASSERT_EQ (sprite.x (), 64.08 );
497509 ASSERT_EQ (sprite.y (), -6.86 );
498510 ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
511+ ASSERT_FALSE (sprite.dragging ());
499512 EXPECT_CALL (engine, clickTarget).Times (0 );
500513 QCoreApplication::sendEvent (&target, &releaseEvent);
501514
@@ -510,21 +523,26 @@ TEST_F(RenderedTargetTest, SpriteDragging)
510523 ASSERT_EQ (sprite.x (), 64.08 );
511524 ASSERT_EQ (sprite.y (), -6.86 );
512525 ASSERT_EQ (mouseArea.draggedSprite (), &target);
526+ ASSERT_TRUE (sprite.dragging ());
513527
514528 // Drag
515529 EXPECT_CALL (engine, stageWidth ()).WillOnce (Return (480 ));
516530 EXPECT_CALL (engine, stageHeight ()).WillOnce (Return (360 ));
517531 emit mouseArea.mouseMoved (1067.8 , 649.06 );
532+ target.beforeRedraw ();
518533 ASSERT_EQ (std::round (sprite.x () * 100 ) / 100 , 61.22 );
519534 ASSERT_EQ (std::round (sprite.y () * 100 ) / 100 , -14.41 );
520535 ASSERT_EQ (mouseArea.draggedSprite (), &target);
536+ ASSERT_TRUE (sprite.dragging ());
521537
522538 EXPECT_CALL (engine, stageWidth ()).WillOnce (Return (480 ));
523539 EXPECT_CALL (engine, stageHeight ()).WillOnce (Return (360 ));
524540 emit mouseArea.mouseMoved (1092.47 , 605.46 );
541+ target.beforeRedraw ();
525542 ASSERT_EQ (std::round (sprite.x () * 100 ) / 100 , 68.26 );
526543 ASSERT_EQ (std::round (sprite.y () * 100 ) / 100 , -1.95 );
527544 ASSERT_EQ (mouseArea.draggedSprite (), &target);
545+ ASSERT_TRUE (sprite.dragging ());
528546
529547 // Create another sprite
530548 RenderedTarget anotherTarget;
@@ -536,17 +554,21 @@ TEST_F(RenderedTargetTest, SpriteDragging)
536554 anotherSprite.setY (-6.86 );
537555 anotherSprite.setDraggable (true );
538556 anotherModel.init (&anotherSprite);
539- anotherTarget.setSpriteModel (&model );
557+ anotherTarget.setSpriteModel (&anotherModel );
540558 anotherTarget.setStageScale (3.5 );
541559 anotherTarget.setMouseArea (&mouseArea);
542560
561+ ASSERT_FALSE (anotherSprite.dragging ());
562+
543563 // Try to drag the second sprite while the first is being dragged
544564 sprite.setDraggable (true );
545565 EXPECT_CALL (engine, clickTarget).Times (0 );
546566 QCoreApplication::sendEvent (&anotherTarget, &pressEvent);
547567 QCoreApplication::sendEvent (&anotherTarget, &moveEvent);
548568 ASSERT_EQ (mouseArea.draggedSprite (), &target);
549- EXPECT_CALL (engine, clickTarget (&sprite));
569+ ASSERT_TRUE (sprite.dragging ());
570+ ASSERT_FALSE (anotherSprite.dragging ());
571+ EXPECT_CALL (engine, clickTarget (&anotherSprite));
550572 QCoreApplication::sendEvent (&anotherTarget, &releaseEvent);
551573
552574 // Stop dragging
@@ -555,6 +577,8 @@ TEST_F(RenderedTargetTest, SpriteDragging)
555577 ASSERT_EQ (std::round (sprite.x () * 100 ) / 100 , 68.26 );
556578 ASSERT_EQ (std::round (sprite.y () * 100 ) / 100 , -1.95 );
557579 ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
580+ ASSERT_FALSE (sprite.dragging ());
581+ ASSERT_FALSE (anotherSprite.dragging ());
558582}
559583
560584TEST_F (RenderedTargetTest, Engine)
0 commit comments