aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp')
-rw-r--r--tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp107
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);