diff options
Diffstat (limited to 'tests/auto/qtquick2/qquickitem/tst_qquickitem.cpp')
-rw-r--r-- | tests/auto/qtquick2/qquickitem/tst_qquickitem.cpp | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/tests/auto/qtquick2/qquickitem/tst_qquickitem.cpp b/tests/auto/qtquick2/qquickitem/tst_qquickitem.cpp index 7e32816599..dccf055ae8 100644 --- a/tests/auto/qtquick2/qquickitem/tst_qquickitem.cpp +++ b/tests/auto/qtquick2/qquickitem/tst_qquickitem.cpp @@ -2,7 +2,7 @@ ** ** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) +** Contact: http://www.qt-project.org/ ** ** This file is part of the test suite of the Qt Toolkit. ** @@ -66,9 +66,23 @@ protected: virtual void focusOutEvent(QFocusEvent *) { Q_ASSERT(focused); focused = false; } virtual void mousePressEvent(QMouseEvent *event) { event->accept(); ++pressCount; } virtual void mouseReleaseEvent(QMouseEvent *event) { event->accept(); ++releaseCount; } + virtual void touchEvent(QTouchEvent *event) { event->accept(); } virtual void wheelEvent(QWheelEvent *event) { event->accept(); ++wheelCount; } }; +class TestCanvas: public QQuickCanvas +{ +public: + TestCanvas() + : QQuickCanvas() + {} + + virtual bool event(QEvent *event) + { + return QQuickCanvas::event(event); + } +}; + class TestPolishItem : public QQuickItem { Q_OBJECT @@ -124,6 +138,7 @@ private slots: void enabled(); void mouseGrab(); + void touchEventAccept(); void polishOutsideAnimation(); void polishOnCompleted(); @@ -862,6 +877,31 @@ void tst_qquickitem::mouseGrab() delete canvas; } +void tst_qquickitem::touchEventAccept() +{ + TestCanvas *canvas = new TestCanvas; + canvas->resize(100, 100); + canvas->show(); + + TestItem *item = new TestItem; + item->setSize(QSizeF(100, 100)); + item->setParentItem(canvas->rootItem()); + + static QTouchDevice* device = new QTouchDevice; + device->setType(QTouchDevice::TouchScreen); + QWindowSystemInterface::registerTouchDevice(device); + + QTouchEvent *event = new QTouchEvent(QEvent::TouchBegin, device); + + bool accepted = canvas->event(event); + + QVERIFY(accepted && event->isAccepted()); + + delete event; + delete item; + delete canvas; +} + void tst_qquickitem::polishOutsideAnimation() { QQuickCanvas *canvas = new QQuickCanvas; |