uncomment tests
authorMatthew Cattell <matthew.cattell@nokia.com>
Thu, 8 Sep 2011 13:58:13 +0000 (15:58 +0200)
committerSamuel Rødal <samuel.rodal@nokia.com>
Thu, 8 Sep 2011 14:02:06 +0000 (16:02 +0200)
Change-Id: I8aea71cfddb38fe1a24a74ca736a39e3f8817a5b
Reviewed-on: http://codereview.qt-project.org/4464
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
tests/auto/declarative/qsgmousearea/tst_qsgmousearea.cpp

index 0bc4e46..c3f3ba1 100644 (file)
@@ -62,23 +62,23 @@ class tst_QSGMouseArea: public QObject
 private slots:
     void initTestCase();
     void cleanupTestCase();
-//    void dragProperties();
-//    void resetDrag();
-      void dragging();
-//    void updateMouseAreaPosOnClick();
-//    void updateMouseAreaPosOnResize();
-//    void noOnClickedWithPressAndHold();
-//    void onMousePressRejected();
-//    void pressedCanceledOnWindowDeactivate();
-//    void doubleClick();
-//    void clickTwice();
-//    void pressedOrdering();
-//    void preventStealing();
-//    void clickThrough();
-//    void testQtQuick11Attributes();
-//    void testQtQuick11Attributes_data();
-//    void hoverPosition();
-//    void hoverPropagation();
+    void dragProperties();
+    void resetDrag();
+    void dragging();
+    void updateMouseAreaPosOnClick();
+    void updateMouseAreaPosOnResize();
+    void noOnClickedWithPressAndHold();
+    void onMousePressRejected();
+    void pressedCanceledOnWindowDeactivate();
+    void doubleClick();
+    void clickTwice();
+    void pressedOrdering();
+    void preventStealing();
+    void clickThrough();
+    void testQtQuick11Attributes();
+    void testQtQuick11Attributes_data();
+    void hoverPosition();
+    void hoverPropagation();
 
 private:
     QSGView *createView();
@@ -94,120 +94,120 @@ void tst_QSGMouseArea::cleanupTestCase()
 
 }
 
-//void tst_QSGMouseArea::dragProperties()
-//{
-//    QSGView *canvas = createView();
-
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragproperties.qml"));
-//    canvas->show();
-//    canvas->requestActivateWindow();
-//    QVERIFY(canvas->rootObject() != 0);
-
-//    QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
-//    QSGDrag *drag = mouseRegion->drag();
-//    QVERIFY(mouseRegion != 0);
-//    QVERIFY(drag != 0);
-
-//    // target
-//    QSGItem *blackRect = canvas->rootObject()->findChild<QSGItem*>("blackrect");
-//    QVERIFY(blackRect != 0);
-//    QVERIFY(blackRect == drag->target());
-//    QSGItem *rootItem = qobject_cast<QSGItem*>(canvas->rootObject());
-//    QVERIFY(rootItem != 0);
-//    QSignalSpy targetSpy(drag, SIGNAL(targetChanged()));
-//    drag->setTarget(rootItem);
-//    QCOMPARE(targetSpy.count(),1);
-//    drag->setTarget(rootItem);
-//    QCOMPARE(targetSpy.count(),1);
-
-//    // axis
-//    QCOMPARE(drag->axis(), QSGDrag::XandYAxis);
-//    QSignalSpy axisSpy(drag, SIGNAL(axisChanged()));
-//    drag->setAxis(QSGDrag::XAxis);
-//    QCOMPARE(drag->axis(), QSGDrag::XAxis);
-//    QCOMPARE(axisSpy.count(),1);
-//    drag->setAxis(QSGDrag::XAxis);
-//    QCOMPARE(axisSpy.count(),1);
-
-//    // minimum and maximum properties
-//    QSignalSpy xminSpy(drag, SIGNAL(minimumXChanged()));
-//    QSignalSpy xmaxSpy(drag, SIGNAL(maximumXChanged()));
-//    QSignalSpy yminSpy(drag, SIGNAL(minimumYChanged()));
-//    QSignalSpy ymaxSpy(drag, SIGNAL(maximumYChanged()));
-
-//    QCOMPARE(drag->xmin(), 0.0);
-//    QCOMPARE(drag->xmax(), rootItem->width()-blackRect->width());
-//    QCOMPARE(drag->ymin(), 0.0);
-//    QCOMPARE(drag->ymax(), rootItem->height()-blackRect->height());
-
-//    drag->setXmin(10);
-//    drag->setXmax(10);
-//    drag->setYmin(10);
-//    drag->setYmax(10);
-
-//    QCOMPARE(drag->xmin(), 10.0);
-//    QCOMPARE(drag->xmax(), 10.0);
-//    QCOMPARE(drag->ymin(), 10.0);
-//    QCOMPARE(drag->ymax(), 10.0);
-
-//    QCOMPARE(xminSpy.count(),1);
-//    QCOMPARE(xmaxSpy.count(),1);
-//    QCOMPARE(yminSpy.count(),1);
-//    QCOMPARE(ymaxSpy.count(),1);
-
-//    drag->setXmin(10);
-//    drag->setXmax(10);
-//    drag->setYmin(10);
-//    drag->setYmax(10);
-
-//    QCOMPARE(xminSpy.count(),1);
-//    QCOMPARE(xmaxSpy.count(),1);
-//    QCOMPARE(yminSpy.count(),1);
-//    QCOMPARE(ymaxSpy.count(),1);
-
-//    // filterChildren
-//    QSignalSpy filterChildrenSpy(drag, SIGNAL(filterChildrenChanged()));
-
-//    drag->setFilterChildren(true);
-
-//    QVERIFY(drag->filterChildren());
-//    QCOMPARE(filterChildrenSpy.count(), 1);
-
-//    drag->setFilterChildren(true);
-//    QCOMPARE(filterChildrenSpy.count(), 1);
-
-//    delete canvas;
-//}
-
-//void tst_QSGMouseArea::resetDrag()
-//{
-//    QSGView *canvas = createView();
-
-//    canvas->rootContext()->setContextProperty("haveTarget", QVariant(true));
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragreset.qml"));
-//    canvas->show();
-//    canvas->requestActivateWindow();
-//    QVERIFY(canvas->rootObject() != 0);
-
-//    QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
-//    QSGDrag *drag = mouseRegion->drag();
-//    QVERIFY(mouseRegion != 0);
-//    QVERIFY(drag != 0);
-
-//    // target
-//    QSGItem *blackRect = canvas->rootObject()->findChild<QSGItem*>("blackrect");
-//    QVERIFY(blackRect != 0);
-//    QVERIFY(blackRect == drag->target());
-//    QSGItem *rootItem = qobject_cast<QSGItem*>(canvas->rootObject());
-//    QVERIFY(rootItem != 0);
-//    QSignalSpy targetSpy(drag, SIGNAL(targetChanged()));
-//    QVERIFY(drag->target() != 0);
-//    canvas->rootContext()->setContextProperty("haveTarget", QVariant(false));
-//    QCOMPARE(targetSpy.count(),1);
-//    QVERIFY(drag->target() == 0);
-
-//    delete canvas;
-//}
+void tst_QSGMouseArea::dragProperties()
+{
+    QSGView *canvas = createView();
+
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragproperties.qml"));
+    canvas->show();
+    canvas->requestActivateWindow();
+    QVERIFY(canvas->rootObject() != 0);
+
+    QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
+    QSGDrag *drag = mouseRegion->drag();
+    QVERIFY(mouseRegion != 0);
+    QVERIFY(drag != 0);
+
+    // target
+    QSGItem *blackRect = canvas->rootObject()->findChild<QSGItem*>("blackrect");
+    QVERIFY(blackRect != 0);
+    QVERIFY(blackRect == drag->target());
+    QSGItem *rootItem = qobject_cast<QSGItem*>(canvas->rootObject());
+    QVERIFY(rootItem != 0);
+    QSignalSpy targetSpy(drag, SIGNAL(targetChanged()));
+    drag->setTarget(rootItem);
+    QCOMPARE(targetSpy.count(),1);
+    drag->setTarget(rootItem);
+    QCOMPARE(targetSpy.count(),1);
+
+    // axis
+    QCOMPARE(drag->axis(), QSGDrag::XandYAxis);
+    QSignalSpy axisSpy(drag, SIGNAL(axisChanged()));
+    drag->setAxis(QSGDrag::XAxis);
+    QCOMPARE(drag->axis(), QSGDrag::XAxis);
+    QCOMPARE(axisSpy.count(),1);
+    drag->setAxis(QSGDrag::XAxis);
+    QCOMPARE(axisSpy.count(),1);
+
+    // minimum and maximum properties
+    QSignalSpy xminSpy(drag, SIGNAL(minimumXChanged()));
+    QSignalSpy xmaxSpy(drag, SIGNAL(maximumXChanged()));
+    QSignalSpy yminSpy(drag, SIGNAL(minimumYChanged()));
+    QSignalSpy ymaxSpy(drag, SIGNAL(maximumYChanged()));
+
+    QCOMPARE(drag->xmin(), 0.0);
+    QCOMPARE(drag->xmax(), rootItem->width()-blackRect->width());
+    QCOMPARE(drag->ymin(), 0.0);
+    QCOMPARE(drag->ymax(), rootItem->height()-blackRect->height());
+
+    drag->setXmin(10);
+    drag->setXmax(10);
+    drag->setYmin(10);
+    drag->setYmax(10);
+
+    QCOMPARE(drag->xmin(), 10.0);
+    QCOMPARE(drag->xmax(), 10.0);
+    QCOMPARE(drag->ymin(), 10.0);
+    QCOMPARE(drag->ymax(), 10.0);
+
+    QCOMPARE(xminSpy.count(),1);
+    QCOMPARE(xmaxSpy.count(),1);
+    QCOMPARE(yminSpy.count(),1);
+    QCOMPARE(ymaxSpy.count(),1);
+
+    drag->setXmin(10);
+    drag->setXmax(10);
+    drag->setYmin(10);
+    drag->setYmax(10);
+
+    QCOMPARE(xminSpy.count(),1);
+    QCOMPARE(xmaxSpy.count(),1);
+    QCOMPARE(yminSpy.count(),1);
+    QCOMPARE(ymaxSpy.count(),1);
+
+    // filterChildren
+    QSignalSpy filterChildrenSpy(drag, SIGNAL(filterChildrenChanged()));
+
+    drag->setFilterChildren(true);
+
+    QVERIFY(drag->filterChildren());
+    QCOMPARE(filterChildrenSpy.count(), 1);
+
+    drag->setFilterChildren(true);
+    QCOMPARE(filterChildrenSpy.count(), 1);
+
+    delete canvas;
+}
+
+void tst_QSGMouseArea::resetDrag()
+{
+    QSGView *canvas = createView();
+
+    canvas->rootContext()->setContextProperty("haveTarget", QVariant(true));
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragreset.qml"));
+    canvas->show();
+    canvas->requestActivateWindow();
+    QVERIFY(canvas->rootObject() != 0);
+
+    QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
+    QSGDrag *drag = mouseRegion->drag();
+    QVERIFY(mouseRegion != 0);
+    QVERIFY(drag != 0);
+
+    // target
+    QSGItem *blackRect = canvas->rootObject()->findChild<QSGItem*>("blackrect");
+    QVERIFY(blackRect != 0);
+    QVERIFY(blackRect == drag->target());
+    QSGItem *rootItem = qobject_cast<QSGItem*>(canvas->rootObject());
+    QVERIFY(rootItem != 0);
+    QSignalSpy targetSpy(drag, SIGNAL(targetChanged()));
+    QVERIFY(drag->target() != 0);
+    canvas->rootContext()->setContextProperty("haveTarget", QVariant(false));
+    QCOMPARE(targetSpy.count(),1);
+    QVERIFY(drag->target() == 0);
+
+    delete canvas;
+}
 
 
 void tst_QSGMouseArea::dragging()
@@ -278,557 +278,557 @@ QSGView *tst_QSGMouseArea::createView()
     return canvas;
 }
 
-//void tst_QSGMouseArea::updateMouseAreaPosOnClick()
-//{
-//    QSGView *canvas = createView();
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnClick.qml"));
-//    canvas->show();
-//    canvas->requestActivateWindow();
-//    QVERIFY(canvas->rootObject() != 0);
+void tst_QSGMouseArea::updateMouseAreaPosOnClick()
+{
+    QSGView *canvas = createView();
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnClick.qml"));
+    canvas->show();
+    canvas->requestActivateWindow();
+    QVERIFY(canvas->rootObject() != 0);
 
-//    QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
-//    QVERIFY(mouseRegion != 0);
+    QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
+    QVERIFY(mouseRegion != 0);
 
-//    QSGRectangle *rect = canvas->rootObject()->findChild<QSGRectangle*>("ball");
-//    QVERIFY(rect != 0);
+    QSGRectangle *rect = canvas->rootObject()->findChild<QSGRectangle*>("ball");
+    QVERIFY(rect != 0);
 
-//    QCOMPARE(mouseRegion->mouseX(), rect->x());
-//    QCOMPARE(mouseRegion->mouseY(), rect->y());
+    QCOMPARE(mouseRegion->mouseX(), rect->x());
+    QCOMPARE(mouseRegion->mouseY(), rect->y());
 
-//    QMouseEvent event(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &event);
+    QMouseEvent event(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &event);
 
-//    QCOMPARE(mouseRegion->mouseX(), 100.0);
-//    QCOMPARE(mouseRegion->mouseY(), 100.0);
+    QCOMPARE(mouseRegion->mouseX(), 100.0);
+    QCOMPARE(mouseRegion->mouseY(), 100.0);
 
-//    QCOMPARE(mouseRegion->mouseX(), rect->x());
-//    QCOMPARE(mouseRegion->mouseY(), rect->y());
+    QCOMPARE(mouseRegion->mouseX(), rect->x());
+    QCOMPARE(mouseRegion->mouseY(), rect->y());
 
-//    delete canvas;
-//}
+    delete canvas;
+}
 
-//void tst_QSGMouseArea::updateMouseAreaPosOnResize()
-//{
-//    QSGView *canvas = createView();
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnResize.qml"));
-//    canvas->show();
-//    canvas->requestActivateWindow();
-//    QVERIFY(canvas->rootObject() != 0);
+void tst_QSGMouseArea::updateMouseAreaPosOnResize()
+{
+    QSGView *canvas = createView();
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnResize.qml"));
+    canvas->show();
+    canvas->requestActivateWindow();
+    QVERIFY(canvas->rootObject() != 0);
 
-//    QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
-//    QVERIFY(mouseRegion != 0);
+    QSGMouseArea *mouseRegion = canvas->rootObject()->findChild<QSGMouseArea*>("mouseregion");
+    QVERIFY(mouseRegion != 0);
 
-//    QSGRectangle *rect = canvas->rootObject()->findChild<QSGRectangle*>("brother");
-//    QVERIFY(rect != 0);
+    QSGRectangle *rect = canvas->rootObject()->findChild<QSGRectangle*>("brother");
+    QVERIFY(rect != 0);
 
-//    QCOMPARE(mouseRegion->mouseX(), 0.0);
-//    QCOMPARE(mouseRegion->mouseY(), 0.0);
+    QCOMPARE(mouseRegion->mouseX(), 0.0);
+    QCOMPARE(mouseRegion->mouseY(), 0.0);
 
-//    QMouseEvent event(QEvent::MouseButtonPress, rect->pos().toPoint(), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &event);
+    QMouseEvent event(QEvent::MouseButtonPress, rect->pos().toPoint(), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &event);
 
-//    QVERIFY(!mouseRegion->property("emitPositionChanged").toBool());
-//    QVERIFY(mouseRegion->property("mouseMatchesPos").toBool());
+    QVERIFY(!mouseRegion->property("emitPositionChanged").toBool());
+    QVERIFY(mouseRegion->property("mouseMatchesPos").toBool());
 
-//    QCOMPARE(mouseRegion->property("x1").toInt(), 0);
-//    QCOMPARE(mouseRegion->property("y1").toInt(), 0);
+    QCOMPARE(mouseRegion->property("x1").toInt(), 0);
+    QCOMPARE(mouseRegion->property("y1").toInt(), 0);
 
-//    // XXX: is it on purpose that mouseX is real and mouse.x is int?
-//    QCOMPARE(mouseRegion->property("x2").toInt(), (int) rect->x());
-//    QCOMPARE(mouseRegion->property("y2").toInt(), (int) rect->y());
+    // XXX: is it on purpose that mouseX is real and mouse.x is int?
+    QCOMPARE(mouseRegion->property("x2").toInt(), (int) rect->x());
+    QCOMPARE(mouseRegion->property("y2").toInt(), (int) rect->y());
 
-//    QCOMPARE(mouseRegion->mouseX(), rect->x());
-//    QCOMPARE(mouseRegion->mouseY(), rect->y());
+    QCOMPARE(mouseRegion->mouseX(), rect->x());
+    QCOMPARE(mouseRegion->mouseY(), rect->y());
 
-//    delete canvas;
-//}
+    delete canvas;
+}
 
-//void tst_QSGMouseArea::noOnClickedWithPressAndHold()
-//{
-//    {
-//        // We handle onPressAndHold, therefore no onClicked
-//        QSGView *canvas = createView();
-//        canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickandhold.qml"));
-//        canvas->show();
-//        canvas->requestActivateWindow();
-//        QVERIFY(canvas->rootObject() != 0);
+void tst_QSGMouseArea::noOnClickedWithPressAndHold()
+{
+    {
+        // We handle onPressAndHold, therefore no onClicked
+        QSGView *canvas = createView();
+        canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickandhold.qml"));
+        canvas->show();
+        canvas->requestActivateWindow();
+        QVERIFY(canvas->rootObject() != 0);
 
-//        QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//        QApplication::sendEvent(canvas, &pressEvent);
+        QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+        QApplication::sendEvent(canvas, &pressEvent);
 
-//        QVERIFY(!canvas->rootObject()->property("clicked").toBool());
-//        QVERIFY(!canvas->rootObject()->property("held").toBool());
+        QVERIFY(!canvas->rootObject()->property("clicked").toBool());
+        QVERIFY(!canvas->rootObject()->property("held").toBool());
 
-//        QTest::qWait(1000);
+        QTest::qWait(1000);
 
-//        QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//        QApplication::sendEvent(canvas, &releaseEvent);
+        QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+        QApplication::sendEvent(canvas, &releaseEvent);
 
-//        QVERIFY(!canvas->rootObject()->property("clicked").toBool());
-//        QVERIFY(canvas->rootObject()->property("held").toBool());
+        QVERIFY(!canvas->rootObject()->property("clicked").toBool());
+        QVERIFY(canvas->rootObject()->property("held").toBool());
 
-//        delete canvas;
-//    }
+        delete canvas;
+    }
 
-//    {
-//        // We do not handle onPressAndHold, therefore we get onClicked
-//        QSGView *canvas = createView();
-//        canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/noclickandhold.qml"));
-//        canvas->show();
-//        canvas->requestActivateWindow();
-//        QVERIFY(canvas->rootObject() != 0);
-
-//        QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//        QApplication::sendEvent(canvas, &pressEvent);
-
-//        QVERIFY(!canvas->rootObject()->property("clicked").toBool());
-
-//        QTest::qWait(1000);
-
-//        QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//        QApplication::sendEvent(canvas, &releaseEvent);
-
-//        QVERIFY(canvas->rootObject()->property("clicked").toBool());
-
-//        delete canvas;
-//    }
-//}
-
-//void tst_QSGMouseArea::onMousePressRejected()
-//{
-//    QSGView *canvas = createView();
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/rejectEvent.qml"));
-//    canvas->show();
-//    canvas->requestActivateWindow();
-//    QVERIFY(canvas->rootObject() != 0);
-//    QVERIFY(canvas->rootObject()->property("enabled").toBool());
-
-//    QVERIFY(!canvas->rootObject()->property("mr1_pressed").toBool());
-//    QVERIFY(!canvas->rootObject()->property("mr1_released").toBool());
-//    QVERIFY(!canvas->rootObject()->property("mr1_canceled").toBool());
-//    QVERIFY(!canvas->rootObject()->property("mr2_pressed").toBool());
-//    QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
-//    QVERIFY(!canvas->rootObject()->property("mr2_canceled").toBool());
-
-//    QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &pressEvent);
-
-//    QVERIFY(canvas->rootObject()->property("mr1_pressed").toBool());
-//    QVERIFY(!canvas->rootObject()->property("mr1_released").toBool());
-//    QVERIFY(!canvas->rootObject()->property("mr1_canceled").toBool());
-//    QVERIFY(canvas->rootObject()->property("mr2_pressed").toBool());
-//    QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
-//    QVERIFY(canvas->rootObject()->property("mr2_canceled").toBool());
-
-//    QTest::qWait(200);
-
-//    QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &releaseEvent);
-
-//    QVERIFY(canvas->rootObject()->property("mr1_released").toBool());
-//    QVERIFY(!canvas->rootObject()->property("mr1_canceled").toBool());
-//    QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
-
-//    delete canvas;
-//}
-//void tst_QSGMouseArea::pressedCanceledOnWindowDeactivate()
-//{
-//    QSGView *canvas = createView();
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pressedCanceled.qml"));
-//    canvas->show();
-//    canvas->requestActivateWindow();
-//    QVERIFY(canvas->rootObject() != 0);
-//    QVERIFY(!canvas->rootObject()->property("pressed").toBool());
-//    QVERIFY(!canvas->rootObject()->property("canceled").toBool());
-//    QVERIFY(!canvas->rootObject()->property("released").toBool());
-
-//    QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &pressEvent);
-
-//    QVERIFY(canvas->rootObject()->property("pressed").toBool());
-//    QVERIFY(!canvas->rootObject()->property("canceled").toBool());
-//    QVERIFY(!canvas->rootObject()->property("released").toBool());
-
-//    QTest::qWait(200);
+    {
+        // We do not handle onPressAndHold, therefore we get onClicked
+        QSGView *canvas = createView();
+        canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/noclickandhold.qml"));
+        canvas->show();
+        canvas->requestActivateWindow();
+        QVERIFY(canvas->rootObject() != 0);
 
-//    QEvent windowDeactivateEvent(QEvent::WindowDeactivate);
-//    QApplication::sendEvent(canvas, &windowDeactivateEvent);
-//    QVERIFY(!canvas->rootObject()->property("pressed").toBool());
-//    QVERIFY(canvas->rootObject()->property("canceled").toBool());
-//    QVERIFY(!canvas->rootObject()->property("released").toBool());
+        QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+        QApplication::sendEvent(canvas, &pressEvent);
 
-//    QTest::qWait(200);
+        QVERIFY(!canvas->rootObject()->property("clicked").toBool());
 
-//    //press again
-//    QApplication::sendEvent(canvas, &pressEvent);
-//    QVERIFY(canvas->rootObject()->property("pressed").toBool());
-//    QVERIFY(!canvas->rootObject()->property("canceled").toBool());
-//    QVERIFY(!canvas->rootObject()->property("released").toBool());
+        QTest::qWait(1000);
 
-//    QTest::qWait(200);
+        QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+        QApplication::sendEvent(canvas, &releaseEvent);
 
-//    //release
-//    QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &releaseEvent);
-//    QVERIFY(!canvas->rootObject()->property("pressed").toBool());
-//    QVERIFY(!canvas->rootObject()->property("canceled").toBool());
-//    QVERIFY(canvas->rootObject()->property("released").toBool());
+        QVERIFY(canvas->rootObject()->property("clicked").toBool());
 
-//    delete canvas;
-//}
-//void tst_QSGMouseArea::doubleClick()
-//{
-//    QSGView *canvas = createView();
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/doubleclick.qml"));
-//    canvas->show();
-//    canvas->requestActivateWindow();
-//    QVERIFY(canvas->rootObject() != 0);
+        delete canvas;
+    }
+}
 
-//    QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &pressEvent);
+void tst_QSGMouseArea::onMousePressRejected()
+{
+    QSGView *canvas = createView();
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/rejectEvent.qml"));
+    canvas->show();
+    canvas->requestActivateWindow();
+    QVERIFY(canvas->rootObject() != 0);
+    QVERIFY(canvas->rootObject()->property("enabled").toBool());
 
-//    QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &releaseEvent);
+    QVERIFY(!canvas->rootObject()->property("mr1_pressed").toBool());
+    QVERIFY(!canvas->rootObject()->property("mr1_released").toBool());
+    QVERIFY(!canvas->rootObject()->property("mr1_canceled").toBool());
+    QVERIFY(!canvas->rootObject()->property("mr2_pressed").toBool());
+    QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
+    QVERIFY(!canvas->rootObject()->property("mr2_canceled").toBool());
 
-//    QCOMPARE(canvas->rootObject()->property("released").toInt(), 1);
+    QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &pressEvent);
 
-//    pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &pressEvent);
+    QVERIFY(canvas->rootObject()->property("mr1_pressed").toBool());
+    QVERIFY(!canvas->rootObject()->property("mr1_released").toBool());
+    QVERIFY(!canvas->rootObject()->property("mr1_canceled").toBool());
+    QVERIFY(canvas->rootObject()->property("mr2_pressed").toBool());
+    QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
+    QVERIFY(canvas->rootObject()->property("mr2_canceled").toBool());
 
-//    QApplication::sendEvent(canvas, &releaseEvent);
+    QTest::qWait(200);
 
-//    QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 1);
-//    QCOMPARE(canvas->rootObject()->property("doubleClicked").toInt(), 1);
-//    QCOMPARE(canvas->rootObject()->property("released").toInt(), 2);
+    QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &releaseEvent);
 
-//    delete canvas;
-//}
+    QVERIFY(canvas->rootObject()->property("mr1_released").toBool());
+    QVERIFY(!canvas->rootObject()->property("mr1_canceled").toBool());
+    QVERIFY(!canvas->rootObject()->property("mr2_released").toBool());
 
-//// QTBUG-14832
-//void tst_QSGMouseArea::clickTwice()
-//{
-//    QSGView *canvas = createView();
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clicktwice.qml"));
-//    canvas->show();
-//    canvas->requestActivateWindow();
-//    QVERIFY(canvas->rootObject() != 0);
+    delete canvas;
+}
+void tst_QSGMouseArea::pressedCanceledOnWindowDeactivate()
+{
+    QSGView *canvas = createView();
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pressedCanceled.qml"));
+    canvas->show();
+    canvas->requestActivateWindow();
+    QVERIFY(canvas->rootObject() != 0);
+    QVERIFY(!canvas->rootObject()->property("pressed").toBool());
+    QVERIFY(!canvas->rootObject()->property("canceled").toBool());
+    QVERIFY(!canvas->rootObject()->property("released").toBool());
 
-//    QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &pressEvent);
+    QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &pressEvent);
 
-//    QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &releaseEvent);
+    QVERIFY(canvas->rootObject()->property("pressed").toBool());
+    QVERIFY(!canvas->rootObject()->property("canceled").toBool());
+    QVERIFY(!canvas->rootObject()->property("released").toBool());
 
-//    QCOMPARE(canvas->rootObject()->property("pressed").toInt(), 1);
-//    QCOMPARE(canvas->rootObject()->property("released").toInt(), 1);
-//    QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 1);
+    QTest::qWait(200);
 
-//    pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &pressEvent);
+    QEvent windowDeactivateEvent(QEvent::WindowDeactivate);
+    QApplication::sendEvent(canvas, &windowDeactivateEvent);
+    QVERIFY(!canvas->rootObject()->property("pressed").toBool());
+    QVERIFY(canvas->rootObject()->property("canceled").toBool());
+    QVERIFY(!canvas->rootObject()->property("released").toBool());
 
-//    QApplication::sendEvent(canvas, &pressEvent);
-//    QApplication::sendEvent(canvas, &releaseEvent);
+    QTest::qWait(200);
 
-//    QCOMPARE(canvas->rootObject()->property("pressed").toInt(), 2);
-//    QCOMPARE(canvas->rootObject()->property("released").toInt(), 2);
-//    QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 2);
+    //press again
+    QApplication::sendEvent(canvas, &pressEvent);
+    QVERIFY(canvas->rootObject()->property("pressed").toBool());
+    QVERIFY(!canvas->rootObject()->property("canceled").toBool());
+    QVERIFY(!canvas->rootObject()->property("released").toBool());
 
-//    delete canvas;
-//}
+    QTest::qWait(200);
 
-//void tst_QSGMouseArea::pressedOrdering()
-//{
-//    QSGView *canvas = createView();
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pressedOrdering.qml"));
-//    canvas->show();
-//    canvas->requestActivateWindow();
-//    QVERIFY(canvas->rootObject() != 0);
+    //release
+    QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &releaseEvent);
+    QVERIFY(!canvas->rootObject()->property("pressed").toBool());
+    QVERIFY(!canvas->rootObject()->property("canceled").toBool());
+    QVERIFY(canvas->rootObject()->property("released").toBool());
 
-//    QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("base"));
+    delete canvas;
+}
+void tst_QSGMouseArea::doubleClick()
+{
+    QSGView *canvas = createView();
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/doubleclick.qml"));
+    canvas->show();
+    canvas->requestActivateWindow();
+    QVERIFY(canvas->rootObject() != 0);
 
-//    QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &pressEvent);
+    QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &pressEvent);
 
-//    QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("pressed"));
+    QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &releaseEvent);
 
-//    QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &releaseEvent);
+    QCOMPARE(canvas->rootObject()->property("released").toInt(), 1);
 
-//    QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("toggled"));
+    pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &pressEvent);
 
-//    QApplication::sendEvent(canvas, &pressEvent);
+    QApplication::sendEvent(canvas, &releaseEvent);
 
-//    QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("pressed"));
+    QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 1);
+    QCOMPARE(canvas->rootObject()->property("doubleClicked").toInt(), 1);
+    QCOMPARE(canvas->rootObject()->property("released").toInt(), 2);
 
-//    delete canvas;
-//}
+    delete canvas;
+}
 
-//void tst_QSGMouseArea::preventStealing()
-//{
-//    QSGView *canvas = createView();
+// QTBUG-14832
+void tst_QSGMouseArea::clickTwice()
+{
+    QSGView *canvas = createView();
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clicktwice.qml"));
+    canvas->show();
+    canvas->requestActivateWindow();
+    QVERIFY(canvas->rootObject() != 0);
 
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/preventstealing.qml"));
-//    canvas->show();
-//    canvas->requestActivateWindow();
-//    QVERIFY(canvas->rootObject() != 0);
+    QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &pressEvent);
 
-//    QSGFlickable *flickable = qobject_cast<QSGFlickable*>(canvas->rootObject());
-//    QVERIFY(flickable != 0);
+    QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &releaseEvent);
 
-//    QSGMouseArea *mouseArea = canvas->rootObject()->findChild<QSGMouseArea*>("mousearea");
-//    QVERIFY(mouseArea != 0);
+    QCOMPARE(canvas->rootObject()->property("pressed").toInt(), 1);
+    QCOMPARE(canvas->rootObject()->property("released").toInt(), 1);
+    QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 1);
 
-//    QSignalSpy mousePositionSpy(mouseArea, SIGNAL(positionChanged(QSGMouseEvent*)));
+    pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &pressEvent);
 
-//    QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(80, 80));
+    QApplication::sendEvent(canvas, &pressEvent);
+    QApplication::sendEvent(canvas, &releaseEvent);
 
-//    // Without preventStealing, mouse movement over MouseArea would
-//    // cause the Flickable to steal mouse and trigger content movement.
+    QCOMPARE(canvas->rootObject()->property("pressed").toInt(), 2);
+    QCOMPARE(canvas->rootObject()->property("released").toInt(), 2);
+    QCOMPARE(canvas->rootObject()->property("clicked").toInt(), 2);
 
-//    QMouseEvent moveEvent(QEvent::MouseMove, QPoint(70, 70), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &moveEvent);
+    delete canvas;
+}
 
-//    moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(60, 60), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &moveEvent);
+void tst_QSGMouseArea::pressedOrdering()
+{
+    QSGView *canvas = createView();
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pressedOrdering.qml"));
+    canvas->show();
+    canvas->requestActivateWindow();
+    QVERIFY(canvas->rootObject() != 0);
 
-//    moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(50, 50), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &moveEvent);
+    QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("base"));
+
+    QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &pressEvent);
 
-//    // We should have received all three move events
-//    QCOMPARE(mousePositionSpy.count(), 3);
-//    QVERIFY(mouseArea->pressed());
+    QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("pressed"));
 
-//    // Flickable content should not have moved.
-//    QCOMPARE(flickable->contentX(), 0.);
-//    QCOMPARE(flickable->contentY(), 0.);
+    QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &releaseEvent);
 
-//    QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(50, 50));
+    QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("toggled"));
 
-//    // Now allow stealing and confirm Flickable does its thing.
-//    canvas->rootObject()->setProperty("stealing", false);
+    QApplication::sendEvent(canvas, &pressEvent);
 
-//    QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(80, 80));
+    QCOMPARE(canvas->rootObject()->property("value").toString(), QLatin1String("pressed"));
 
-//    // 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);
+    delete canvas;
+}
 
-//    moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(60, 60), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &moveEvent);
+void tst_QSGMouseArea::preventStealing()
+{
+    QSGView *canvas = createView();
 
-//    moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(50, 50), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &moveEvent);
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/preventstealing.qml"));
+    canvas->show();
+    canvas->requestActivateWindow();
+    QVERIFY(canvas->rootObject() != 0);
 
-//    // We should only have received the first move event
-//    QCOMPARE(mousePositionSpy.count(), 4);
-//    // Our press should be taken away
-//    QVERIFY(!mouseArea->pressed());
+    QSGFlickable *flickable = qobject_cast<QSGFlickable*>(canvas->rootObject());
+    QVERIFY(flickable != 0);
 
-//    // Flickable content should have moved.
-//    QCOMPARE(flickable->contentX(), 10.);
-//    QCOMPARE(flickable->contentY(), 10.);
+    QSGMouseArea *mouseArea = canvas->rootObject()->findChild<QSGMouseArea*>("mousearea");
+    QVERIFY(mouseArea != 0);
 
-//    QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(50, 50));
+    QSignalSpy mousePositionSpy(mouseArea, SIGNAL(positionChanged(QSGMouseEvent*)));
 
-//    delete canvas;
-//}
+    QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(80, 80));
 
-//void tst_QSGMouseArea::clickThrough()
-//{
-//    //With no handlers defined click, doubleClick and PressAndHold should propagate to those with handlers
-//    QSGView *canvas = createView();
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickThrough.qml"));
-//    canvas->show();
-//    canvas->requestActivateWindow();
-//    QVERIFY(canvas->rootObject() != 0);
+    // Without preventStealing, mouse movement over MouseArea would
+    // cause the Flickable to steal mouse and trigger content movement.
 
-//    QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &pressEvent);
+    QMouseEvent moveEvent(QEvent::MouseMove, QPoint(70, 70), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &moveEvent);
 
-//    QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &releaseEvent);
+    moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(60, 60), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &moveEvent);
 
-//    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-//    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
+    moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(50, 50), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &moveEvent);
 
-//    QApplication::sendEvent(canvas, &pressEvent);
-//    QTest::qWait(1000);
-//    QApplication::sendEvent(canvas, &releaseEvent);
+    // We should have received all three move events
+    QCOMPARE(mousePositionSpy.count(), 3);
+    QVERIFY(mouseArea->pressed());
 
-//    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-//    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
-//    QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
+    // Flickable content should not have moved.
+    QCOMPARE(flickable->contentX(), 0.);
+    QCOMPARE(flickable->contentY(), 0.);
 
-//    QApplication::sendEvent(canvas, &pressEvent);
-//    QApplication::sendEvent(canvas, &releaseEvent);
-//    pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(50, 50));
 
-//    QApplication::sendEvent(canvas, &pressEvent);
-//    QApplication::sendEvent(canvas, &releaseEvent);
+    // Now allow stealing and confirm Flickable does its thing.
+    canvas->rootObject()->setProperty("stealing", false);
 
-//    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-//    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 2);
-//    QCOMPARE(canvas->rootObject()->property("doubleClicks").toInt(), 1);
-//    QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
+    QTest::mousePress(canvas, Qt::LeftButton, 0, QPoint(80, 80));
 
-//    delete canvas;
+    // 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);
 
-//    //With handlers defined click, doubleClick and PressAndHold should propagate only when explicitly ignored
-//    canvas = createView();
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickThrough2.qml"));
-//    canvas->show();
-//    canvas->requestActivateWindow();
-//    QVERIFY(canvas->rootObject() != 0);
+    moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(60, 60), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &moveEvent);
 
-//    pressEvent = QMouseEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &pressEvent);
+    moveEvent = QMouseEvent(QEvent::MouseMove, QPoint(50, 50), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &moveEvent);
 
-//    releaseEvent = QMouseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &releaseEvent);
+    // We should only have received the first move event
+    QCOMPARE(mousePositionSpy.count(), 4);
+    // Our press should be taken away
+    QVERIFY(!mouseArea->pressed());
 
-//    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-//    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 0);
+    // Flickable content should have moved.
+    QCOMPARE(flickable->contentX(), 10.);
+    QCOMPARE(flickable->contentY(), 10.);
 
-//    QApplication::sendEvent(canvas, &pressEvent);
-//    QTest::qWait(1000);
-//    QApplication::sendEvent(canvas, &releaseEvent);
+    QTest::mouseRelease(canvas, Qt::LeftButton, 0, QPoint(50, 50));
 
-//    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-//    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 0);
-//    QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 0);
+    delete canvas;
+}
 
-//    QApplication::sendEvent(canvas, &pressEvent);
-//    QApplication::sendEvent(canvas, &releaseEvent);
+void tst_QSGMouseArea::clickThrough()
+{
+    //With no handlers defined click, doubleClick and PressAndHold should propagate to those with handlers
+    QSGView *canvas = createView();
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickThrough.qml"));
+    canvas->show();
+    canvas->requestActivateWindow();
+    QVERIFY(canvas->rootObject() != 0);
 
-//    pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &pressEvent);
-//    QApplication::sendEvent(canvas, &releaseEvent);
+    QMouseEvent pressEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &pressEvent);
 
-//    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-//    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 0);
-//    QCOMPARE(canvas->rootObject()->property("doubleClicks").toInt(), 0);
-//    QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 0);
-
-//    canvas->rootObject()->setProperty("letThrough", QVariant(true));
+    QMouseEvent releaseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &releaseEvent);
 
-//    pressEvent = QMouseEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &pressEvent);
+    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
 
-//    releaseEvent = QMouseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-//    QApplication::sendEvent(canvas, &releaseEvent);
-
-//    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-//    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
-
-//    QApplication::sendEvent(canvas, &pressEvent);
-//    QTest::qWait(1000);
-//    QApplication::sendEvent(canvas, &releaseEvent);
-
-//    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-//    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
-//    QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
-
-//    QApplication::sendEvent(canvas, &pressEvent);
-//    QApplication::sendEvent(canvas, &releaseEvent);
-//    pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
-
-//    QApplication::sendEvent(canvas, &pressEvent);
-//    QApplication::sendEvent(canvas, &releaseEvent);
-
-//    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
-//    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 2);
-//    QCOMPARE(canvas->rootObject()->property("doubleClicks").toInt(), 1);
-//    QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
-
-//    delete canvas;
-//}
-
-//void tst_QSGMouseArea::testQtQuick11Attributes()
-//{
-//    QFETCH(QString, code);
-//    QFETCH(QString, warning);
-//    QFETCH(QString, error);
-
-//    QDeclarativeEngine engine;
-//    QObject *obj;
-
-//    QDeclarativeComponent valid(&engine);
-//    valid.setData("import QtQuick 1.1; MouseArea { " + code.toUtf8() + " }", QUrl(""));
-//    obj = valid.create();
-//    QVERIFY(obj);
-//    QVERIFY(valid.errorString().isEmpty());
-//    delete obj;
-
-//    QDeclarativeComponent invalid(&engine);
-//    invalid.setData("import QtQuick 1.0; MouseArea { " + code.toUtf8() + " }", QUrl(""));
-//    QTest::ignoreMessage(QtWarningMsg, warning.toUtf8());
-//    obj = invalid.create();
-//    QCOMPARE(invalid.errorString(), error);
-//    delete obj;
-//}
-
-//void tst_QSGMouseArea::testQtQuick11Attributes_data()
-//{
-//    QTest::addColumn<QString>("code");
-//    QTest::addColumn<QString>("warning");
-//    QTest::addColumn<QString>("error");
-
-//    QTest::newRow("preventStealing") << "preventStealing: true"
-//        << "QDeclarativeComponent: Component is not ready"
-//        << ":1 \"MouseArea.preventStealing\" is not available in QtQuick 1.0.\n";
-//}
-
-//void tst_QSGMouseArea::hoverPosition()
-//{
-//    QSGView *canvas = createView();
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/hoverPosition.qml"));
-
-//    QSGItem *root = canvas->rootObject();
-//    QVERIFY(root != 0);
-
-//    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);
-
-//#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));
-
-//    delete canvas;
-//}
-
-//void tst_QSGMouseArea::hoverPropagation()
-//{
-//    //QTBUG-18175, to behave like GV did.
-//    QSGView *canvas = createView();
-//    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/hoverPropagation.qml"));
-
-//    QSGItem *root = canvas->rootObject();
-//    QVERIFY(root != 0);
-
-//    QCOMPARE(root->property("point1").toBool(), false);
-//    QCOMPARE(root->property("point2").toBool(), false);
-
-//    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);
-
-//    QMouseEvent moveEvent2(QEvent::MouseMove, QPoint(232, 32), Qt::NoButton, Qt::NoButton, 0);
-//    QApplication::sendEvent(canvas, &moveEvent2);
-//    QCOMPARE(root->property("point1").toBool(), false);
-//    QCOMPARE(root->property("point2").toBool(), true);
-
-//    delete canvas;
-//}
+    QApplication::sendEvent(canvas, &pressEvent);
+    QTest::qWait(1000);
+    QApplication::sendEvent(canvas, &releaseEvent);
+
+    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
+    QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
+
+    QApplication::sendEvent(canvas, &pressEvent);
+    QApplication::sendEvent(canvas, &releaseEvent);
+    pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+
+    QApplication::sendEvent(canvas, &pressEvent);
+    QApplication::sendEvent(canvas, &releaseEvent);
+
+    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 2);
+    QCOMPARE(canvas->rootObject()->property("doubleClicks").toInt(), 1);
+    QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
+
+    delete canvas;
+
+    //With handlers defined click, doubleClick and PressAndHold should propagate only when explicitly ignored
+    canvas = createView();
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickThrough2.qml"));
+    canvas->show();
+    canvas->requestActivateWindow();
+    QVERIFY(canvas->rootObject() != 0);
+
+    pressEvent = QMouseEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &pressEvent);
+
+    releaseEvent = QMouseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &releaseEvent);
+
+    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 0);
+
+    QApplication::sendEvent(canvas, &pressEvent);
+    QTest::qWait(1000);
+    QApplication::sendEvent(canvas, &releaseEvent);
+
+    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 0);
+    QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 0);
+
+    QApplication::sendEvent(canvas, &pressEvent);
+    QApplication::sendEvent(canvas, &releaseEvent);
+
+    pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &pressEvent);
+    QApplication::sendEvent(canvas, &releaseEvent);
+
+    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 0);
+    QCOMPARE(canvas->rootObject()->property("doubleClicks").toInt(), 0);
+    QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 0);
+
+    canvas->rootObject()->setProperty("letThrough", QVariant(true));
+
+    pressEvent = QMouseEvent(QEvent::MouseButtonPress, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &pressEvent);
+
+    releaseEvent = QMouseEvent(QEvent::MouseButtonRelease, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+    QApplication::sendEvent(canvas, &releaseEvent);
+
+    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
+
+    QApplication::sendEvent(canvas, &pressEvent);
+    QTest::qWait(1000);
+    QApplication::sendEvent(canvas, &releaseEvent);
+
+    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 1);
+    QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
+
+    QApplication::sendEvent(canvas, &pressEvent);
+    QApplication::sendEvent(canvas, &releaseEvent);
+    pressEvent = QMouseEvent(QEvent::MouseButtonDblClick, QPoint(100, 100), Qt::LeftButton, Qt::LeftButton, 0);
+
+    QApplication::sendEvent(canvas, &pressEvent);
+    QApplication::sendEvent(canvas, &releaseEvent);
+
+    QCOMPARE(canvas->rootObject()->property("presses").toInt(), 0);
+    QCOMPARE(canvas->rootObject()->property("clicks").toInt(), 2);
+    QCOMPARE(canvas->rootObject()->property("doubleClicks").toInt(), 1);
+    QCOMPARE(canvas->rootObject()->property("pressAndHolds").toInt(), 1);
+
+    delete canvas;
+}
+
+void tst_QSGMouseArea::testQtQuick11Attributes()
+{
+    QFETCH(QString, code);
+    QFETCH(QString, warning);
+    QFETCH(QString, error);
+
+    QDeclarativeEngine engine;
+    QObject *obj;
+
+    QDeclarativeComponent valid(&engine);
+    valid.setData("import QtQuick 1.1; MouseArea { " + code.toUtf8() + " }", QUrl(""));
+    obj = valid.create();
+    QVERIFY(obj);
+    QVERIFY(valid.errorString().isEmpty());
+    delete obj;
+
+    QDeclarativeComponent invalid(&engine);
+    invalid.setData("import QtQuick 1.0; MouseArea { " + code.toUtf8() + " }", QUrl(""));
+    QTest::ignoreMessage(QtWarningMsg, warning.toUtf8());
+    obj = invalid.create();
+    QCOMPARE(invalid.errorString(), error);
+    delete obj;
+}
+
+void tst_QSGMouseArea::testQtQuick11Attributes_data()
+{
+    QTest::addColumn<QString>("code");
+    QTest::addColumn<QString>("warning");
+    QTest::addColumn<QString>("error");
+
+    QTest::newRow("preventStealing") << "preventStealing: true"
+        << "QDeclarativeComponent: Component is not ready"
+        << ":1 \"MouseArea.preventStealing\" is not available in QtQuick 1.0.\n";
+}
+
+void tst_QSGMouseArea::hoverPosition()
+{
+    QSGView *canvas = createView();
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/hoverPosition.qml"));
+
+    QSGItem *root = canvas->rootObject();
+    QVERIFY(root != 0);
+
+    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);
+
+#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));
+
+    delete canvas;
+}
+
+void tst_QSGMouseArea::hoverPropagation()
+{
+    //QTBUG-18175, to behave like GV did.
+    QSGView *canvas = createView();
+    canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/hoverPropagation.qml"));
+
+    QSGItem *root = canvas->rootObject();
+    QVERIFY(root != 0);
+
+    QCOMPARE(root->property("point1").toBool(), false);
+    QCOMPARE(root->property("point2").toBool(), false);
+
+    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);
+
+    QMouseEvent moveEvent2(QEvent::MouseMove, QPoint(232, 32), Qt::NoButton, Qt::NoButton, 0);
+    QApplication::sendEvent(canvas, &moveEvent2);
+    QCOMPARE(root->property("point1").toBool(), false);
+    QCOMPARE(root->property("point2").toBool(), true);
+
+    delete canvas;
+}
 
 QTEST_MAIN(tst_QSGMouseArea)