16#include <linux/input.h>
21using namespace std::literals;
33 void testStart_data();
36 void testSwipeUpdate();
37 void testPinchUpdate();
44 Device *m_device =
nullptr;
47void TestLibinputGestureEvent::init()
52 m_nativeDevice->
deviceSize = QSizeF(12.5, 13.8);
53 m_device =
new Device(m_nativeDevice);
56void TestLibinputGestureEvent::cleanup()
61 delete m_nativeDevice;
62 m_nativeDevice =
nullptr;
65void TestLibinputGestureEvent::testType_data()
67 QTest::addColumn<libinput_event_type>(
"type");
69 QTest::newRow(
"pinch-start") << LIBINPUT_EVENT_GESTURE_PINCH_BEGIN;
70 QTest::newRow(
"pinch-update") << LIBINPUT_EVENT_GESTURE_PINCH_UPDATE;
71 QTest::newRow(
"pinch-end") << LIBINPUT_EVENT_GESTURE_PINCH_END;
72 QTest::newRow(
"swipe-start") << LIBINPUT_EVENT_GESTURE_SWIPE_BEGIN;
73 QTest::newRow(
"swipe-update") << LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE;
74 QTest::newRow(
"swipe-end") << LIBINPUT_EVENT_GESTURE_SWIPE_END;
77void TestLibinputGestureEvent::testType()
81 QFETCH(libinput_event_type, type);
83 gestureEvent->
device = m_nativeDevice;
87 QCOMPARE(event->type(), type);
88 QCOMPARE(event->device(), m_device);
89 QCOMPARE(event->nativeDevice(), m_nativeDevice);
96void TestLibinputGestureEvent::testStart_data()
98 QTest::addColumn<libinput_event_type>(
"type");
100 QTest::newRow(
"pinch") << LIBINPUT_EVENT_GESTURE_PINCH_BEGIN;
101 QTest::newRow(
"swipe") << LIBINPUT_EVENT_GESTURE_SWIPE_BEGIN;
104void TestLibinputGestureEvent::testStart()
107 gestureEvent->
device = m_nativeDevice;
108 QFETCH(libinput_event_type, type);
111 gestureEvent->
time = 100ms;
116 QCOMPARE(ge->fingerCount(), gestureEvent->
fingerCount);
117 QVERIFY(!ge->isCancelled());
118 QCOMPARE(ge->time(), gestureEvent->
time);
119 QCOMPARE(ge->delta(), QPointF(0, 0));
120 if (ge->type() == LIBINPUT_EVENT_GESTURE_PINCH_BEGIN) {
122 QCOMPARE(pe->scale(), 1.0);
123 QCOMPARE(pe->angleDelta(), 0.0);
127void TestLibinputGestureEvent::testSwipeUpdate()
130 gestureEvent->
device = m_nativeDevice;
131 gestureEvent->
type = LIBINPUT_EVENT_GESTURE_SWIPE_UPDATE;
133 gestureEvent->
time = 200ms;
134 gestureEvent->
delta = QPointF(2, 3);
139 QCOMPARE(se->fingerCount(), gestureEvent->
fingerCount);
140 QVERIFY(!se->isCancelled());
141 QCOMPARE(se->time(), gestureEvent->
time);
142 QCOMPARE(se->delta(), QPointF(2, 3));
145void TestLibinputGestureEvent::testPinchUpdate()
148 gestureEvent->
device = m_nativeDevice;
149 gestureEvent->
type = LIBINPUT_EVENT_GESTURE_PINCH_UPDATE;
151 gestureEvent->
time = 600ms;
152 gestureEvent->
delta = QPointF(5, 4);
153 gestureEvent->
scale = 2;
159 QCOMPARE(pe->fingerCount(), gestureEvent->
fingerCount);
160 QVERIFY(!pe->isCancelled());
161 QCOMPARE(pe->time(), gestureEvent->
time);
162 QCOMPARE(pe->delta(), QPointF(5, 4));
163 QCOMPARE(pe->scale(), gestureEvent->
scale);
164 QCOMPARE(pe->angleDelta(), gestureEvent->
angleDelta);
167void TestLibinputGestureEvent::testEnd_data()
169 QTest::addColumn<libinput_event_type>(
"type");
170 QTest::addColumn<bool>(
"cancelled");
172 QTest::newRow(
"pinch/not cancelled") << LIBINPUT_EVENT_GESTURE_PINCH_END <<
false;
173 QTest::newRow(
"pinch/cancelled") << LIBINPUT_EVENT_GESTURE_PINCH_END <<
true;
174 QTest::newRow(
"swipe/not cancelled") << LIBINPUT_EVENT_GESTURE_SWIPE_END <<
false;
175 QTest::newRow(
"swipe/cancelled") << LIBINPUT_EVENT_GESTURE_SWIPE_END <<
true;
178void TestLibinputGestureEvent::testEnd()
181 gestureEvent->
device = m_nativeDevice;
182 QFETCH(libinput_event_type, type);
185 QFETCH(
bool, cancelled);
187 gestureEvent->
time = 300ms;
188 gestureEvent->
scale = 3;
193 QCOMPARE(ge->fingerCount(), gestureEvent->
fingerCount);
194 QCOMPARE(ge->isCancelled(), cancelled);
195 QCOMPARE(ge->time(), gestureEvent->
time);
196 QCOMPARE(ge->delta(), QPointF(0, 0));
197 if (ge->type() == LIBINPUT_EVENT_GESTURE_PINCH_END) {
199 QCOMPARE(pe->scale(), gestureEvent->
scale);
200 QCOMPARE(pe->angleDelta(), 0.0);
205#include "gesture_event_test.moc"