-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscenemousearea_test.cpp
102 lines (86 loc) · 3.01 KB
/
scenemousearea_test.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#include <QtTest/QSignalSpy>
#include <scenemousearea.h>
#include <projectloader.h>
#include <renderedtargetmock.h>
#include "../common.h"
using namespace scratchcpprender;
using ::testing::NiceMock;
TEST(SceneMouseAreaTest, Constructors)
{
SceneMouseArea area1;
SceneMouseArea area2(&area1);
ASSERT_EQ(area2.parent(), &area1);
ASSERT_EQ(area2.parentItem(), &area1);
}
TEST(SceneMouseAreaTest, Events)
{
QPointingDevice dev;
SceneMouseArea mouseArea;
ProjectLoader loader;
mouseArea.setProjectLoader(&loader);
NiceMock<RenderedTargetMock> stage;
mouseArea.setStage(&stage);
// mouseMoved
{
QHoverEvent event(QEvent::HoverMove, {}, {}, {}, Qt::NoModifier, &dev);
QSignalSpy spy(&mouseArea, &SceneMouseArea::mouseMoved);
QCoreApplication::sendEvent(&mouseArea, &event);
ASSERT_EQ(spy.count(), 1);
}
// mousePressed
{
QMouseEvent event(QEvent::MouseButtonPress, {}, {}, {}, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier, &dev);
QSignalSpy spy(&mouseArea, &SceneMouseArea::mousePressed);
QCoreApplication::sendEvent(&mouseArea, &event);
ASSERT_EQ(spy.count(), 1);
}
// mouseReleased
{
QMouseEvent event(QEvent::MouseButtonRelease, {}, {}, {}, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier, &dev);
QSignalSpy spy(&mouseArea, &SceneMouseArea::mouseReleased);
QCoreApplication::sendEvent(&mouseArea, &event);
ASSERT_EQ(spy.count(), 1);
}
// mouseWheelUp
{
QWheelEvent event(QPointF(), QPointF(), QPoint(2, 3), QPoint(10, 15), Qt::LeftButton, Qt::NoModifier, Qt::NoScrollPhase, false);
QSignalSpy spy(&mouseArea, &SceneMouseArea::mouseWheelUp);
QCoreApplication::sendEvent(&mouseArea, &event);
ASSERT_EQ(spy.count(), 1);
}
// mouseWheelDown
{
QWheelEvent event(QPointF(), QPointF(), QPoint(2, 3), QPoint(10, -15), Qt::LeftButton, Qt::NoModifier, Qt::NoScrollPhase, false);
QSignalSpy spy(&mouseArea, &SceneMouseArea::mouseWheelDown);
QCoreApplication::sendEvent(&mouseArea, &event);
ASSERT_EQ(spy.count(), 1);
}
}
TEST(SceneMouseAreaTest, Stage)
{
SceneMouseArea mouseArea;
QSignalSpy spy(&mouseArea, &SceneMouseArea::stageChanged);
ASSERT_EQ(mouseArea.stage(), nullptr);
RenderedTargetMock stage;
mouseArea.setStage(&stage);
ASSERT_EQ(spy.count(), 1);
ASSERT_EQ(mouseArea.stage(), &stage);
}
TEST(SceneMouseAreaTest, ProjectLoader)
{
SceneMouseArea mouseArea;
QSignalSpy spy(&mouseArea, &SceneMouseArea::projectLoaderChanged);
ASSERT_EQ(mouseArea.projectLoader(), nullptr);
ProjectLoader loader;
mouseArea.setProjectLoader(&loader);
ASSERT_EQ(spy.count(), 1);
ASSERT_EQ(mouseArea.projectLoader(), &loader);
}
TEST(SceneMouseAreaTest, DraggedSprite)
{
SceneMouseArea mouseArea;
ASSERT_EQ(mouseArea.draggedSprite(), nullptr);
RenderedTargetMock sprite;
mouseArea.setDraggedSprite(&sprite);
ASSERT_EQ(mouseArea.draggedSprite(), &sprite);
}