aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-10-05 19:32:12 +0200
committerLiang Qi <liang.qi@qt.io>2016-10-05 19:32:12 +0200
commitfff4477661ae240c43088fa6d9069ccf969dbee8 (patch)
treed654a5f841cc6abe758c8626bbf51be6bdcdea26 /tests
parent3a205800c6ea0a88ae2ab35edabf6883e54a334b (diff)
parent59e48836e207aff52b2727cc4f3733209475e8bb (diff)
Merge remote-tracking branch 'origin/5.6' into 5.7
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/quick/qquickflickable/tst_qquickflickable.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
index 339e8946e8..d0f015324c 100644
--- a/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
+++ b/tests/auto/quick/qquickflickable/tst_qquickflickable.cpp
@@ -70,6 +70,7 @@ private slots:
void returnToBounds();
void returnToBounds_data();
void wheel();
+ void trackpad();
void movingAndFlicking();
void movingAndFlicking_data();
void movingAndDragging();
@@ -785,6 +786,50 @@ void tst_qquickflickable::wheel()
QCOMPARE(flick->property("movementsAfterEnd").value<int>(), 0); // QTBUG-55886
}
+void tst_qquickflickable::trackpad()
+{
+ QScopedPointer<QQuickView> window(new QQuickView);
+ window->setSource(testFileUrl("wheel.qml"));
+ window->show();
+ QVERIFY(QTest::qWaitForWindowActive(window.data()));
+ QVERIFY(window->rootObject() != 0);
+
+ QQuickFlickable *flick = window->rootObject()->findChild<QQuickFlickable*>("flick");
+ QVERIFY(flick != 0);
+ QSignalSpy moveEndSpy(flick, SIGNAL(movementEnded()));
+ QPoint pos(200, 200);
+
+ {
+ QWheelEvent event(pos, window->mapToGlobal(pos), QPoint(0,-100), QPoint(0,-120), -120, Qt::Vertical, Qt::NoButton, Qt::NoModifier, Qt::ScrollBegin);
+ event.setAccepted(false);
+ QGuiApplication::sendEvent(window.data(), &event);
+ }
+
+ QTRY_VERIFY(flick->contentY() > 0);
+ QCOMPARE(flick->contentX(), qreal(0));
+
+ flick->setContentY(0);
+ QCOMPARE(flick->contentY(), qreal(0));
+
+ {
+ QWheelEvent event(pos, window->mapToGlobal(pos), QPoint(-100,0), QPoint(-120,0), -120, Qt::Horizontal, Qt::NoButton, Qt::NoModifier, Qt::ScrollUpdate);
+ event.setAccepted(false);
+ QGuiApplication::sendEvent(window.data(), &event);
+ }
+
+ QTRY_VERIFY(flick->contentX() > 0);
+ QCOMPARE(flick->contentY(), qreal(0));
+
+ {
+ QWheelEvent event(pos, window->mapToGlobal(pos), QPoint(0,0), QPoint(0,0), 0, Qt::Horizontal, Qt::NoButton, Qt::NoModifier, Qt::ScrollEnd);
+ event.setAccepted(false);
+ QGuiApplication::sendEvent(window.data(), &event);
+ }
+
+ QTRY_COMPARE(moveEndSpy.count(), 1); // QTBUG-55871
+ QCOMPARE(flick->property("movementsAfterEnd").value<int>(), 0); // QTBUG-55886
+}
+
void tst_qquickflickable::movingAndFlicking_data()
{
QTest::addColumn<bool>("verticalEnabled");