diff options
Diffstat (limited to 'tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp')
-rw-r--r-- | tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp | 107 |
1 files changed, 53 insertions, 54 deletions
diff --git a/tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp b/tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp index 420eda9aca..2f91f15211 100644 --- a/tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp +++ b/tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp @@ -54,6 +54,8 @@ #define SRCDIR "." #endif +//#define OLDWAY + class tst_QSGMouseArea: public QObject { Q_OBJECT @@ -84,9 +86,7 @@ private: void tst_QSGMouseArea::initTestCase() { - QSGView canvas; - if (!QGLShaderProgram::hasOpenGLShaderPrograms(canvas.context())) - QSKIP("MouseArea needs OpenGL 2.0", SkipAll); + } void tst_QSGMouseArea::cleanupTestCase() @@ -97,9 +97,10 @@ void tst_QSGMouseArea::cleanupTestCase() void tst_QSGMouseArea::dragProperties() { QSGView *canvas = createView(); + canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragproperties.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion"); @@ -185,7 +186,7 @@ void tst_QSGMouseArea::resetDrag() canvas->rootContext()->setContextProperty("haveTarget", QVariant(true)); canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragreset.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion"); @@ -215,7 +216,8 @@ void tst_QSGMouseArea::dragging() canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragging.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); + QTest::qWait(20); QVERIFY(canvas->rootObject() != 0); QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion"); @@ -230,8 +232,12 @@ void tst_QSGMouseArea::dragging() QVERIFY(!drag->active()); +#ifdef OLDWAY QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0); QApplication::sendEvent(canvas, &pressEvent); +#else + QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(100,100)); +#endif QVERIFY(!drag->active()); QCOMPARE(blackRect->x(), 50.0); @@ -239,21 +245,27 @@ void tst_QSGMouseArea::dragging() // First move event triggers drag, second is acted upon. // This is due to possibility of higher stacked area taking precedence. - QMouseEvent moveEvent(QEvent::MouseMove, QPoint(106, 106), Qt::LeftButton, Qt::LeftButton, 0); - QApplication::sendEvent(canvas, &moveEvent); - moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(110, 110), Qt::LeftButton, Qt::LeftButton, 0); - QApplication::sendEvent(canvas, &moveEvent); + + QTest::mouseMove(canvas, QPoint(111,111)); + QTest::qWait(50); + QTest::mouseMove(canvas, QPoint(122,122)); + QTest::qWait(50); QVERIFY(drag->active()); - QCOMPARE(blackRect->x(), 60.0); - QCOMPARE(blackRect->y(), 60.0); + QCOMPARE(blackRect->x(), 72.0); + QCOMPARE(blackRect->y(), 72.0); - QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(110, 110), Qt::LeftButton, Qt::LeftButton, 0); +#ifdef OLDWAY + QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0); QApplication::sendEvent(canvas, &releaseEvent); +#else + QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(122,122)); + QTest::qWait(50); +#endif QVERIFY(!drag->active()); - QCOMPARE(blackRect->x(), 60.0); - QCOMPARE(blackRect->y(), 60.0); + QCOMPARE(blackRect->x(), 72.0); + QCOMPARE(blackRect->y(), 72.0); delete canvas; } @@ -261,7 +273,7 @@ void tst_QSGMouseArea::dragging() QSGView *tst_QSGMouseArea::createView() { QSGView *canvas = new QSGView(0); - canvas->setFixedSize(240,320); + canvas->setBaseSize(QSize(240,320)); return canvas; } @@ -271,7 +283,7 @@ void tst_QSGMouseArea::updateMouseAreaPosOnClick() QSGView *canvas = createView(); canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnClick.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion"); @@ -300,7 +312,7 @@ void tst_QSGMouseArea::updateMouseAreaPosOnResize() QSGView *canvas = createView(); canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnResize.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion"); @@ -338,7 +350,7 @@ void tst_QSGMouseArea::noOnClickedWithPressAndHold() QSGView *canvas = createView(); canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickandhold.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0); @@ -363,7 +375,7 @@ void tst_QSGMouseArea::noOnClickedWithPressAndHold() QSGView *canvas = createView(); canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/noclickandhold.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0); @@ -387,7 +399,7 @@ void tst_QSGMouseArea::onMousePressRejected() QSGView *canvas = createView(); canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/rejectEvent.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QVERIFY(canvas->rootObject()->property("enabled").toBool()); @@ -424,7 +436,7 @@ void tst_QSGMouseArea::pressedCanceledOnWindowDeactivate() QSGView *canvas = createView(); canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pressedCanceled.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QVERIFY(!canvas->rootObject()->property("pressed").toBool()); QVERIFY(!canvas->rootObject()->property("canceled").toBool()); @@ -469,7 +481,7 @@ void tst_QSGMouseArea::doubleClick() QSGView *canvas = createView(); canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/doubleclick.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0); @@ -498,7 +510,7 @@ void tst_QSGMouseArea::clickTwice() QSGView *canvas = createView(); canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clicktwice.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0); @@ -529,7 +541,7 @@ void tst_QSGMouseArea::pressedOrdering() QSGView *canvas = createView(); canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pressedOrdering.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("base")); @@ -557,7 +569,7 @@ void tst_QSGMouseArea::preventStealing() canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/preventstealing.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QSGFlickable *flickable = qobject_cast<QSGFlickable*>(canvas->rootObject()); @@ -573,14 +585,9 @@ void tst_QSGMouseArea::preventStealing() // Without preventStealing, mouse movement over MouseArea would // cause the Flickable to steal mouse and trigger content movement. - QMouseEvent moveEvent(QEvent::MouseMove, QPoint(70, 70), Qt::LeftButton, Qt::LeftButton, 0); - QApplication::sendEvent(canvas, &moveEvent); - - moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(60, 60), Qt::LeftButton, Qt::LeftButton, 0); - QApplication::sendEvent(canvas, &moveEvent); - - moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(50, 50), Qt::LeftButton, Qt::LeftButton, 0); - QApplication::sendEvent(canvas, &moveEvent); + QTest::mouseMove(canvas,QPoint(69,69)); + QTest::mouseMove(canvas,QPoint(58,58)); + QTest::mouseMove(canvas,QPoint(47,47)); // We should have received all three move events QCOMPARE(mousePositionSpy.count(), 3); @@ -590,7 +597,7 @@ void tst_QSGMouseArea::preventStealing() QCOMPARE(flickable->contentX(), 0.); QCOMPARE(flickable->contentY(), 0.); - QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(50, 50)); + QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(47, 47)); // Now allow stealing and confirm Flickable does its thing. canvas->rootObject()->setProperty("stealing", false); @@ -599,14 +606,10 @@ void tst_QSGMouseArea::preventStealing() // Without preventStealing, mouse movement over MouseArea would // cause the Flickable to steal mouse and trigger content movement. - moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(70, 70), Qt::LeftButton, Qt::LeftButton, 0); - QApplication::sendEvent(canvas, &moveEvent); - moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(60, 60), Qt::LeftButton, Qt::LeftButton, 0); - QApplication::sendEvent(canvas, &moveEvent); - - moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(50, 50), Qt::LeftButton, Qt::LeftButton, 0); - QApplication::sendEvent(canvas, &moveEvent); + QTest::mouseMove(canvas,QPoint(69,69)); + QTest::mouseMove(canvas,QPoint(58,58)); + QTest::mouseMove(canvas,QPoint(47,47)); // We should only have received the first move event QCOMPARE(mousePositionSpy.count(), 4); @@ -614,8 +617,9 @@ void tst_QSGMouseArea::preventStealing() QVERIFY(!mouseArea->pressed()); // Flickable content should have moved. - QCOMPARE(flickable->contentX(), 10.); - QCOMPARE(flickable->contentY(), 10.); + + QCOMPARE(flickable->contentX(), 11.); + QCOMPARE(flickable->contentY(), 11.); QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(50, 50)); @@ -628,7 +632,7 @@ void tst_QSGMouseArea::clickThrough() QSGView *canvas = createView(); canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickThrough.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0); @@ -666,7 +670,7 @@ void tst_QSGMouseArea::clickThrough() canvas = createView(); canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickThrough2.qml")); canvas->show(); - canvas->setFocus(); + canvas->requestActivateWindow(); QVERIFY(canvas->rootObject() != 0); pressEvent = QMouseEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0); @@ -778,12 +782,9 @@ void tst_QSGMouseArea::hoverPosition() QCOMPARE(root->property("mouseX").toReal(), qreal(0)); QCOMPARE(root->property("mouseY").toReal(), qreal(0)); - QMouseEvent moveEvent(QEvent::MouseMove, QPoint(10, 32), Qt::NoButton, Qt::NoButton, 0); - QApplication::sendEvent(canvas, &moveEvent); + QTest::mouseMove(canvas,QPoint(10,32)); + -#ifdef Q_WS_QPA - QEXPECT_FAIL("", "QTBUG-21008 fails", Abort); -#endif QCOMPARE(root->property("mouseX").toReal(), qreal(10)); QCOMPARE(root->property("mouseY").toReal(), qreal(32)); @@ -804,9 +805,7 @@ void tst_QSGMouseArea::hoverPropagation() QMouseEvent moveEvent(QEvent::MouseMove, QPoint(32, 32), Qt::NoButton, Qt::NoButton, 0); QApplication::sendEvent(canvas, &moveEvent); -#ifdef Q_WS_QPA - QEXPECT_FAIL("", "QTBUG-21008 fails", Abort); -#endif + QCOMPARE(root->property("point1").toBool(), true); QCOMPARE(root->property("point2").toBool(), false); |