From dffbf4a7f6b5d5544c13ac059822512a770d4df8 Mon Sep 17 00:00:00 2001 From: Andre de la Rocha Date: Fri, 6 Jul 2018 14:18:46 +0200 Subject: [PATCH] Fix use of QTest::mouseMove() in widgets tests Fixing some issues that could cause intermittent or environment-dependent failures. One kind regards the use of multiple QTest::mouseMove() calls in sequence internally using the QCursor API, causing timing dependent failures. Switching to the override that does not require the QCursor API, where possible. Other test could fail depending on the size of the screen. Change-Id: I4a368955ddbb48f729dcdf74c20eb163329936b2 Reviewed-by: Friedemann Kleint Reviewed-by: Qt CI Bot Reviewed-by: Oliver Wolff --- .../graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp | 4 ++-- .../widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp | 4 ++-- tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp index 71ec8f06499..c8ee2d65a31 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsscene/tst_qgraphicsscene.cpp @@ -1275,10 +1275,10 @@ void tst_QGraphicsScene::removeItem() view.show(); QApplication::setActiveWindow(&view); QVERIFY(QTest::qWaitForWindowActive(&view)); - QTest::mouseMove(view.viewport(), view.mapFromScene(hoverItem->scenePos() + QPointF(20, 20)), Qt::NoButton); + QTest::mouseMove(view.windowHandle(), view.mapFromScene(hoverItem->scenePos() + QPointF(20, 20))); QTRY_VERIFY(!hoverItem->isHovered); - QTest::mouseMove(view.viewport(), view.mapFromScene(hoverItem->scenePos()), Qt::NoButton); + QTest::mouseMove(view.windowHandle(), view.mapFromScene(hoverItem->scenePos())); QTRY_VERIFY(hoverItem->isHovered); scene.removeItem(hoverItem); diff --git a/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp index ff9bf6a6835..3dc110298a0 100644 --- a/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/widgets/graphicsview/qgraphicsview/tst_qgraphicsview.cpp @@ -261,11 +261,11 @@ private slots: void QTBUG_4151_clipAndIgnore_data(); void QTBUG_4151_clipAndIgnore(); void QTBUG_5859_exposedRect(); + void hoverLeave(); + void QTBUG_16063_microFocusRect(); #ifndef QT_NO_CURSOR void QTBUG_7438_cursor(); #endif - void hoverLeave(); - void QTBUG_16063_microFocusRect(); public slots: void dummySlot() {} diff --git a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp index e880640b6b6..05eef7c0911 100644 --- a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp +++ b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp @@ -3412,7 +3412,7 @@ void tst_QHeaderView::statusTips() // Ensure it is moved away first and then moved to the relevant section QTest::mouseMove(QApplication::desktop(), headerView.rect().bottomLeft() + QPoint(20, 20)); - QPoint centerPoint = QRect(headerView.sectionPosition(0), headerView.y(), + QPoint centerPoint = QRect(headerView.sectionPosition(0), 0, headerView.sectionSize(0), headerView.height()).center(); QTest::mouseMove(headerView.windowHandle(), centerPoint); QTRY_VERIFY(headerView.gotStatusTipEvent); @@ -3420,7 +3420,7 @@ void tst_QHeaderView::statusTips() headerView.gotStatusTipEvent = false; headerView.statusTipText.clear(); - centerPoint = QRect(headerView.sectionPosition(1), headerView.y(), + centerPoint = QRect(headerView.sectionPosition(1), 0, headerView.sectionSize(1), headerView.height()).center(); QTest::mouseMove(headerView.windowHandle(), centerPoint); QTRY_VERIFY(headerView.gotStatusTipEvent);