summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2020-11-11 12:28:54 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2020-11-12 15:25:06 +0100
commite796857abb73d44b6862687c353ee4977d22cc77 (patch)
tree7333e869e5d9c778d1518d8047dabd64a5b913e8
parent03e03d7ceb6da284f217fddd76b35d0c2b002af7 (diff)
Stop copying events in tests
It's unnecessary, and copying QEvents is a bad practice since it's a polymorphic class. Change-Id: Ieb6de106084f838c5e6c8a0643c54fd3c7f4a7a8 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r--src/testlib/qtestmouse.h21
-rw-r--r--tests/auto/gui/kernel/qmouseevent/tst_qmouseevent.cpp28
-rw-r--r--tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp40
-rw-r--r--tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp20
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp4
-rw-r--r--tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp6
6 files changed, 59 insertions, 60 deletions
diff --git a/src/testlib/qtestmouse.h b/src/testlib/qtestmouse.h
index be68606bb2..865b967b34 100644
--- a/src/testlib/qtestmouse.h
+++ b/src/testlib/qtestmouse.h
@@ -208,21 +208,21 @@ namespace QTest
stateKey &= static_cast<unsigned int>(Qt::KeyboardModifierMask);
- QMouseEvent me(QEvent::User, QPointF(), Qt::LeftButton, QTestPrivate::qtestMouseButtons, stateKey, QPointingDevice::primaryPointingDevice());
+ QEvent::Type meType;
+ Qt::MouseButton meButton;
switch (action)
{
case MousePress:
- me = QMouseEvent(QEvent::MouseButtonPress, pos, widget->mapToGlobal(pos), button, button, stateKey, QPointingDevice::primaryPointingDevice());
- me.setTimestamp(++lastMouseTimestamp);
+ meType = QEvent::MouseButtonPress;
+ meButton = button;
break;
case MouseRelease:
- me = QMouseEvent(QEvent::MouseButtonRelease, pos, widget->mapToGlobal(pos), button, Qt::MouseButton(), stateKey, QPointingDevice::primaryPointingDevice());
- me.setTimestamp(++lastMouseTimestamp);
- lastMouseTimestamp += mouseDoubleClickInterval; // avoid double clicks being generated
+ meType = QEvent::MouseButtonRelease;
+ meButton = Qt::MouseButton();
break;
case MouseDClick:
- me = QMouseEvent(QEvent::MouseButtonDblClick, pos, widget->mapToGlobal(pos), button, button, stateKey, QPointingDevice::primaryPointingDevice());
- me.setTimestamp(++lastMouseTimestamp);
+ meType = QEvent::MouseButtonDblClick;
+ meButton = button;
break;
case MouseMove:
QCursor::setPos(widget->mapToGlobal(pos));
@@ -235,6 +235,11 @@ namespace QTest
default:
QTEST_ASSERT(false);
}
+ QMouseEvent me(meType, pos, widget->mapToGlobal(pos), button, meButton, stateKey, QPointingDevice::primaryPointingDevice());
+ me.setTimestamp(++lastMouseTimestamp);
+ if (action == MouseRelease) // avoid double clicks being generated
+ lastMouseTimestamp += mouseDoubleClickInterval;
+
QSpontaneKeyEvent::setSpontaneous(&me);
if (!qApp->notify(widget, &me)) {
static const char *const mouseActionNames[] =
diff --git a/tests/auto/gui/kernel/qmouseevent/tst_qmouseevent.cpp b/tests/auto/gui/kernel/qmouseevent/tst_qmouseevent.cpp
index 67fca910b9..c9cc956d35 100644
--- a/tests/auto/gui/kernel/qmouseevent/tst_qmouseevent.cpp
+++ b/tests/auto/gui/kernel/qmouseevent/tst_qmouseevent.cpp
@@ -169,27 +169,17 @@ void tst_QMouseEvent::mouseEventBasic()
QCOMPARE(me.scenePosition(), scene);
QCOMPARE(me.globalPosition(), screen);
// Press right button while left is already pressed
- me = QMouseEvent(QEvent::MouseButtonPress, local, scene, screen, Qt::RightButton, Qt::LeftButton | Qt::RightButton, Qt::NoModifier);
- QVERIFY(me.isBeginEvent());
- QVERIFY(!me.isEndEvent());
+ QMouseEvent me2(QEvent::MouseButtonPress, local, scene, screen, Qt::RightButton, Qt::LeftButton | Qt::RightButton, Qt::NoModifier);
+ QVERIFY(me2.isBeginEvent());
+ QVERIFY(!me2.isEndEvent());
// Release right button while left is still pressed
- me = QMouseEvent(QEvent::MouseButtonRelease, local, scene, screen, Qt::RightButton, Qt::LeftButton, Qt::NoModifier);
- QVERIFY(!me.isBeginEvent());
- QVERIFY(me.isEndEvent());
+ QMouseEvent me3 = QMouseEvent(QEvent::MouseButtonRelease, local, scene, screen, Qt::RightButton, Qt::LeftButton, Qt::NoModifier);
+ QVERIFY(!me3.isBeginEvent());
+ QVERIFY(me3.isEndEvent());
// Release left button in the usual way
- me = QMouseEvent(QEvent::MouseButtonRelease, local, scene, screen, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
- QVERIFY(!me.isBeginEvent());
- QVERIFY(me.isEndEvent());
- // Try out the copy constructor
- QMouseEvent copy(me);
- QVERIFY(copy.isInputEvent());
- QVERIFY(copy.isPointerEvent());
- QVERIFY(copy.isSinglePointEvent());
- QVERIFY(!copy.isBeginEvent());
- QVERIFY(copy.isEndEvent());
- QCOMPARE(copy.position(), local);
- QCOMPARE(copy.scenePosition(), scene);
- QCOMPARE(copy.globalPosition(), screen);
+ QMouseEvent me4 = QMouseEvent(QEvent::MouseButtonRelease, local, scene, screen, Qt::LeftButton, Qt::NoButton, Qt::NoModifier);
+ QVERIFY(!me4.isBeginEvent());
+ QVERIFY(me4.isEndEvent());
}
void tst_QMouseEvent::checkMousePressEvent_data()
diff --git a/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp b/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp
index 58e7fd2eed..8ef63154a8 100644
--- a/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp
+++ b/tests/auto/gui/kernel/qtouchevent/tst_qtouchevent.cpp
@@ -345,27 +345,27 @@ void tst_QTouchEvent::state()
QVERIFY(touchEvent.isPointerEvent());
QVERIFY(!touchEvent.isSinglePointEvent());
- touchEvent = QTouchEvent(QEvent::TouchBegin, touchScreenDevice,
- Qt::NoModifier, QList<QEventPoint>() <<
- QEventPoint(0, QEventPoint::State::Updated, {}, {}) <<
- QEventPoint(1, QEventPoint::State::Pressed, {}, {}));
- QCOMPARE(touchEvent.touchPointStates(), QEventPoint::State::Updated | QEventPoint::State::Pressed);
- QCOMPARE(touchEvent.pointCount(), 2);
- QVERIFY(touchEvent.isBeginEvent());
- QVERIFY(!touchEvent.isUpdateEvent());
- QVERIFY(!touchEvent.isEndEvent());
-
- touchEvent = QTouchEvent(QEvent::TouchBegin, touchScreenDevice,
- Qt::NoModifier, QList<QEventPoint>() <<
- QEventPoint(0, QEventPoint::State::Updated, {}, {}) <<
- QEventPoint(1, QEventPoint::State::Released, {}, {}));
- QCOMPARE(touchEvent.touchPointStates(), QEventPoint::State::Updated | QEventPoint::State::Released);
- QCOMPARE(touchEvent.pointCount(), 2);
- QVERIFY(!touchEvent.isBeginEvent());
- QVERIFY(!touchEvent.isUpdateEvent());
- QVERIFY(touchEvent.isEndEvent());
+ QTouchEvent touchEvent2 = QTouchEvent(QEvent::TouchBegin, touchScreenDevice,
+ Qt::NoModifier, QList<QEventPoint>() <<
+ QEventPoint(0, QEventPoint::State::Updated, {}, {}) <<
+ QEventPoint(1, QEventPoint::State::Pressed, {}, {}));
+ QCOMPARE(touchEvent2.touchPointStates(), QEventPoint::State::Updated | QEventPoint::State::Pressed);
+ QCOMPARE(touchEvent2.pointCount(), 2);
+ QVERIFY(touchEvent2.isBeginEvent());
+ QVERIFY(!touchEvent2.isUpdateEvent());
+ QVERIFY(!touchEvent2.isEndEvent());
+
+ QTouchEvent touchEvent3 = QTouchEvent(QEvent::TouchBegin, touchScreenDevice,
+ Qt::NoModifier, QList<QEventPoint>() <<
+ QEventPoint(0, QEventPoint::State::Updated, {}, {}) <<
+ QEventPoint(1, QEventPoint::State::Released, {}, {}));
+ QCOMPARE(touchEvent3.touchPointStates(), QEventPoint::State::Updated | QEventPoint::State::Released);
+ QCOMPARE(touchEvent3.pointCount(), 2);
+ QVERIFY(!touchEvent3.isBeginEvent());
+ QVERIFY(!touchEvent3.isUpdateEvent());
+ QVERIFY(touchEvent3.isEndEvent());
QT_WARNING_PUSH QT_WARNING_DISABLE_DEPRECATED // test Qt 5 compatibility wrappers
- QCOMPARE(touchEvent.touchPoints(), touchEvent.points());
+ QCOMPARE(touchEvent3.touchPoints(), touchEvent3.points());
QT_WARNING_POP
}
diff --git a/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp b/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp
index 345d048093..6ee923662e 100644
--- a/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp
+++ b/tests/auto/widgets/itemviews/qtablewidget/tst_qtablewidget.cpp
@@ -1699,9 +1699,13 @@ void tst_QTableWidget::search()
return item;
};
- auto checkSeries = [](TestTableWidget &tw, const QList<QPair<QKeyEvent, int>> &series) {
+ struct KeyPress {
+ Qt::Key key;
+ QString text;
+ };
+ auto checkSeries = [](TestTableWidget &tw, const QList<QPair<KeyPress, int>> &series) {
for (const auto &p : series) {
- QKeyEvent e = p.first;
+ QKeyEvent e(QEvent::KeyPress, p.first.key, Qt::NoModifier, p.first.text);
tw.keyPressEvent(&e);
QVERIFY(tw.selectionModel()->isSelected(tw.model()->index(p.second, 0)));
}
@@ -1714,12 +1718,12 @@ void tst_QTableWidget::search()
tw.setItem(4, 0, createItem(" "));
tw.show();
- QKeyEvent evSpace(QEvent::KeyPress, Qt::Key_Space, Qt::NoModifier, " ");
- QKeyEvent ev1(QEvent::KeyPress, Qt::Key_1, Qt::NoModifier, "1");
- QKeyEvent ev2(QEvent::KeyPress, Qt::Key_2, Qt::NoModifier, "2");
- QKeyEvent ev3(QEvent::KeyPress, Qt::Key_3, Qt::NoModifier, "3");
- QKeyEvent ev4(QEvent::KeyPress, Qt::Key_4, Qt::NoModifier, "4");
- QKeyEvent ev5(QEvent::KeyPress, Qt::Key_5, Qt::NoModifier, "5");
+ KeyPress evSpace{Qt::Key_Space, " "};
+ KeyPress ev1{Qt::Key_1, "1"};
+ KeyPress ev2{Qt::Key_2, "2"};
+ KeyPress ev3{Qt::Key_3, "3"};
+ KeyPress ev4{Qt::Key_4, "4"};
+ KeyPress ev5{Qt::Key_5, "5"};
checkSeries(tw, {{evSpace, 4}, {ev1, 4}});
QTest::qWait(QApplication::keyboardInputInterval() * 2);
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 7c42937a46..a477d9db00 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -4069,8 +4069,8 @@ void tst_QWidget::testDeletionInEventHandlers()
w->setMouseTracking(true);
w->show();
w->deleteThis = true;
- me = QMouseEvent(QEvent::MouseMove, QPoint(0, 0), Qt::NoButton, Qt::NoButton, Qt::NoModifier);
- QApplication::sendEvent(w, &me);
+ QMouseEvent me2 = QMouseEvent(QEvent::MouseMove, QPoint(0, 0), Qt::NoButton, Qt::NoButton, Qt::NoModifier);
+ QApplication::sendEvent(w, &me2);
QVERIFY(w.isNull());
delete w;
}
diff --git a/tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp b/tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp
index a9a8945877..065834059e 100644
--- a/tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp
+++ b/tests/auto/widgets/widgets/qabstractslider/tst_qabstractslider.cpp
@@ -1678,11 +1678,11 @@ void tst_QAbstractSlider::wheelEvent()
slider->setSliderPosition(initialSliderPosition);
k = withModifiers ? Qt::ShiftModifier : Qt::NoModifier;
- event = QWheelEvent(wheelPoint, slider->mapToGlobal(wheelPoint), QPoint(), angleDelta,
- Qt::NoButton, k, Qt::NoScrollPhase, false);
+ QWheelEvent event2 = QWheelEvent(wheelPoint, slider->mapToGlobal(wheelPoint), QPoint(), angleDelta,
+ Qt::NoButton, k, Qt::NoScrollPhase, false);
QSignalSpy spy1(slider, SIGNAL(actionTriggered(int)));
QSignalSpy spy2(slider, SIGNAL(valueChanged(int)));
- QVERIFY(applicationInstance->sendEvent(slider,&event));
+ QVERIFY(applicationInstance->sendEvent(slider,&event2));
#ifdef Q_OS_MAC
QEXPECT_FAIL("Normal data page", "QTBUG-23679", Continue);
QEXPECT_FAIL("Different orientation", "QTBUG-23679", Continue);