@@ -440,9 +440,11 @@ TEST_F(RenderedTargetTest, SpriteDragging)
440
440
target.setMouseArea (&mouseArea);
441
441
442
442
emit mouseArea.mouseMoved (1064 , 651 );
443
+ target.beforeRedraw ();
443
444
ASSERT_EQ (sprite.x (), 64.08 );
444
445
ASSERT_EQ (sprite.y (), -6.86 );
445
446
ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
447
+ ASSERT_FALSE (sprite.dragging ());
446
448
447
449
// Try right mouse button (should not work)
448
450
QMouseEvent moveEventRightButton (QEvent::MouseMove, QPointF (), QPointF (), Qt::RightButton, Qt::RightButton, Qt::NoModifier);
@@ -454,14 +456,18 @@ TEST_F(RenderedTargetTest, SpriteDragging)
454
456
ASSERT_EQ (sprite.x (), 64.08 );
455
457
ASSERT_EQ (sprite.y (), -6.86 );
456
458
ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
459
+ ASSERT_FALSE (sprite.dragging ());
457
460
EXPECT_CALL (engine, clickTarget).Times (0 );
458
461
QCoreApplication::sendEvent (&target, &releaseEventRightButton);
459
462
ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
463
+ ASSERT_FALSE (sprite.dragging ());
460
464
461
465
emit mouseArea.mouseMoved (1064 , 651 );
466
+ target.beforeRedraw ();
462
467
ASSERT_EQ (sprite.x (), 64.08 );
463
468
ASSERT_EQ (sprite.y (), -6.86 );
464
469
ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
470
+ ASSERT_FALSE (sprite.dragging ());
465
471
466
472
// Try right mouse button with "draggable" set to true (should not work)
467
473
sprite.setDraggable (true );
@@ -471,14 +477,18 @@ TEST_F(RenderedTargetTest, SpriteDragging)
471
477
ASSERT_EQ (sprite.x (), 64.08 );
472
478
ASSERT_EQ (sprite.y (), -6.86 );
473
479
ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
480
+ ASSERT_FALSE (sprite.dragging ());
474
481
EXPECT_CALL (engine, clickTarget (&sprite));
475
482
QCoreApplication::sendEvent (&target, &releaseEventRightButton);
476
483
ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
484
+ ASSERT_FALSE (sprite.dragging ());
477
485
478
486
emit mouseArea.mouseMoved (1064 , 651 );
487
+ target.beforeRedraw ();
479
488
ASSERT_EQ (sprite.x (), 64.08 );
480
489
ASSERT_EQ (sprite.y (), -6.86 );
481
490
ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
491
+ ASSERT_FALSE (sprite.dragging ());
482
492
483
493
// Try left mouse button (should not work with "draggable" set to false)
484
494
sprite.setDraggable (false );
@@ -491,11 +501,14 @@ TEST_F(RenderedTargetTest, SpriteDragging)
491
501
ASSERT_EQ (sprite.x (), 64.08 );
492
502
ASSERT_EQ (sprite.y (), -6.86 );
493
503
ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
504
+ ASSERT_FALSE (sprite.dragging ());
494
505
495
506
emit mouseArea.mouseMoved (1064 , 651 );
507
+ target.beforeRedraw ();
496
508
ASSERT_EQ (sprite.x (), 64.08 );
497
509
ASSERT_EQ (sprite.y (), -6.86 );
498
510
ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
511
+ ASSERT_FALSE (sprite.dragging ());
499
512
EXPECT_CALL (engine, clickTarget).Times (0 );
500
513
QCoreApplication::sendEvent (&target, &releaseEvent);
501
514
@@ -510,21 +523,26 @@ TEST_F(RenderedTargetTest, SpriteDragging)
510
523
ASSERT_EQ (sprite.x (), 64.08 );
511
524
ASSERT_EQ (sprite.y (), -6.86 );
512
525
ASSERT_EQ (mouseArea.draggedSprite (), &target);
526
+ ASSERT_TRUE (sprite.dragging ());
513
527
514
528
// Drag
515
529
EXPECT_CALL (engine, stageWidth ()).WillOnce (Return (480 ));
516
530
EXPECT_CALL (engine, stageHeight ()).WillOnce (Return (360 ));
517
531
emit mouseArea.mouseMoved (1067.8 , 649.06 );
532
+ target.beforeRedraw ();
518
533
ASSERT_EQ (std::round (sprite.x () * 100 ) / 100 , 61.22 );
519
534
ASSERT_EQ (std::round (sprite.y () * 100 ) / 100 , -14.41 );
520
535
ASSERT_EQ (mouseArea.draggedSprite (), &target);
536
+ ASSERT_TRUE (sprite.dragging ());
521
537
522
538
EXPECT_CALL (engine, stageWidth ()).WillOnce (Return (480 ));
523
539
EXPECT_CALL (engine, stageHeight ()).WillOnce (Return (360 ));
524
540
emit mouseArea.mouseMoved (1092.47 , 605.46 );
541
+ target.beforeRedraw ();
525
542
ASSERT_EQ (std::round (sprite.x () * 100 ) / 100 , 68.26 );
526
543
ASSERT_EQ (std::round (sprite.y () * 100 ) / 100 , -1.95 );
527
544
ASSERT_EQ (mouseArea.draggedSprite (), &target);
545
+ ASSERT_TRUE (sprite.dragging ());
528
546
529
547
// Create another sprite
530
548
RenderedTarget anotherTarget;
@@ -536,17 +554,21 @@ TEST_F(RenderedTargetTest, SpriteDragging)
536
554
anotherSprite.setY (-6.86 );
537
555
anotherSprite.setDraggable (true );
538
556
anotherModel.init (&anotherSprite);
539
- anotherTarget.setSpriteModel (&model );
557
+ anotherTarget.setSpriteModel (&anotherModel );
540
558
anotherTarget.setStageScale (3.5 );
541
559
anotherTarget.setMouseArea (&mouseArea);
542
560
561
+ ASSERT_FALSE (anotherSprite.dragging ());
562
+
543
563
// Try to drag the second sprite while the first is being dragged
544
564
sprite.setDraggable (true );
545
565
EXPECT_CALL (engine, clickTarget).Times (0 );
546
566
QCoreApplication::sendEvent (&anotherTarget, &pressEvent);
547
567
QCoreApplication::sendEvent (&anotherTarget, &moveEvent);
548
568
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));
550
572
QCoreApplication::sendEvent (&anotherTarget, &releaseEvent);
551
573
552
574
// Stop dragging
@@ -555,6 +577,8 @@ TEST_F(RenderedTargetTest, SpriteDragging)
555
577
ASSERT_EQ (std::round (sprite.x () * 100 ) / 100 , 68.26 );
556
578
ASSERT_EQ (std::round (sprite.y () * 100 ) / 100 , -1.95 );
557
579
ASSERT_EQ (mouseArea.draggedSprite (), nullptr );
580
+ ASSERT_FALSE (sprite.dragging ());
581
+ ASSERT_FALSE (anotherSprite.dragging ());
558
582
}
559
583
560
584
TEST_F (RenderedTargetTest, Engine)
0 commit comments