20using namespace std::literals;
26 void testInitMouseEvent_data();
27 void testInitMouseEvent();
28 void testInitKeyEvent_data();
29 void testInitKeyEvent();
30 void testInitWheelEvent_data();
31 void testInitWheelEvent();
32 void testInitSwitchEvent_data();
33 void testInitSwitchEvent();
36void InputEventsTest::testInitMouseEvent_data()
38 QTest::addColumn<QEvent::Type>(
"type");
40 QTest::newRow(
"Press") << QEvent::MouseButtonPress;
41 QTest::newRow(
"Release") << QEvent::MouseButtonRelease;
42 QTest::newRow(
"Move") << QEvent::MouseMove;
45void InputEventsTest::testInitMouseEvent()
53 QFETCH(QEvent::Type,
type);
55 MouseEvent event(
type, QPointF(100, 200), Qt::LeftButton, Qt::LeftButton | Qt::RightButton,
56 Qt::ShiftModifier | Qt::ControlModifier, 300ms, QPointF(1, 2), QPointF(3, 4), &d);
58 QCOMPARE(event.type(),
type);
59 QCOMPARE(event.globalPos(), QPoint(100, 200));
60 QCOMPARE(event.screenPos(), QPointF(100, 200));
61 QCOMPARE(event.localPos(), QPointF(100, 200));
62 QCOMPARE(event.button(), Qt::LeftButton);
63 QCOMPARE(event.buttons(), Qt::LeftButton | Qt::RightButton);
64 QCOMPARE(event.modifiers(), Qt::ShiftModifier | Qt::ControlModifier);
65 QCOMPARE(event.timestamp(), 300ms);
67 QCOMPARE(event.device(), &d);
68 QCOMPARE(event.delta(), QPointF(1, 2));
69 QCOMPARE(event.deltaUnaccelerated(), QPointF(3, 4));
72void InputEventsTest::testInitKeyEvent_data()
74 QTest::addColumn<QEvent::Type>(
"type");
75 QTest::addColumn<bool>(
"autorepeat");
77 QTest::newRow(
"Press") << QEvent::KeyPress <<
false;
78 QTest::newRow(
"Repeat") << QEvent::KeyPress <<
true;
79 QTest::newRow(
"Release") << QEvent::KeyRelease <<
false;
82void InputEventsTest::testInitKeyEvent()
91 QFETCH(QEvent::Type,
type);
92 QFETCH(
bool, autorepeat);
93 KeyEvent event(
type, Qt::Key_Space, Qt::ShiftModifier | Qt::ControlModifier, 200, 300,
94 QStringLiteral(
" "), autorepeat, 400ms, &d);
96 QCOMPARE(event.type(),
type);
97 QCOMPARE(event.isAutoRepeat(), autorepeat);
98 QCOMPARE(event.key(),
int(Qt::Key_Space));
99 QCOMPARE(event.nativeScanCode(), 200u);
100 QCOMPARE(event.nativeVirtualKey(), 300u);
101 QCOMPARE(event.text(), QStringLiteral(
" "));
102 QCOMPARE(event.count(), 1);
103 QCOMPARE(event.nativeModifiers(), 0u);
104 QCOMPARE(event.modifiers(), Qt::ShiftModifier | Qt::ControlModifier);
105 QCOMPARE(event.timestamp(), 400ms);
107 QCOMPARE(event.device(), &d);
110void InputEventsTest::testInitWheelEvent_data()
112 QTest::addColumn<Qt::Orientation>(
"orientation");
113 QTest::addColumn<qreal>(
"delta");
114 QTest::addColumn<qint32>(
"deltaV120");
115 QTest::addColumn<QPoint>(
"expectedAngleDelta");
117 QTest::newRow(
"horiz") << Qt::Horizontal << 3.3 << 1 << QPoint(3, 0);
118 QTest::newRow(
"vert") << Qt::Vertical << 2.4 << 2 << QPoint(0, 2);
121void InputEventsTest::testInitWheelEvent()
130 QFETCH(Qt::Orientation, orientation);
131 QFETCH(qreal, delta);
132 QFETCH(qint32, deltaV120);
133 WheelEvent event(QPointF(100, 200), delta, deltaV120, orientation, Qt::LeftButton | Qt::RightButton,
136 QCOMPARE(event.type(), QEvent::Wheel);
137 QCOMPARE(event.position(), QPointF(100, 200));
138 QCOMPARE(event.globalPosition(), QPointF(100, 200));
139 QCOMPARE(event.buttons(), Qt::LeftButton | Qt::RightButton);
140 QCOMPARE(event.modifiers(), Qt::ShiftModifier | Qt::ControlModifier);
141 QCOMPARE(event.timestamp(), 300ms);
142 QTEST(event.angleDelta(),
"expectedAngleDelta");
143 QTEST(event.orientation(),
"orientation");
144 QTEST(event.delta(),
"delta");
145 QTEST(event.deltaV120(),
"deltaV120");
148 QCOMPARE(event.device(), &d);
151void InputEventsTest::testInitSwitchEvent_data()
153 QTest::addColumn<KWin::SwitchEvent::State>(
"state");
154 QTest::addColumn<quint64>(
"timestamp");
156 QTest::newRow(
"on") << SwitchEvent::State::On << quint64{23456790};
157 QTest::newRow(
"off") << SwitchEvent::State::Off << quint64{45689235987};
160void InputEventsTest::testInitSwitchEvent()
167 QFETCH(quint64, timestamp);
168 SwitchEvent event(state, std::chrono::microseconds(timestamp), &d);
170 QCOMPARE(event.state(), state);
171 QCOMPARE(event.timestamp(), std::chrono::microseconds(timestamp));
172 QCOMPARE(event.device(), &d);
176#include "input_event_test.moc"