diff options
author | Albert Astals Cid <albert.astals.cid@kdab.com> | 2017-06-28 14:39:19 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2017-08-30 11:55:30 +0000 |
commit | 4c46dce8fd9c9dddddd1d07f56396b3eabb2efc4 (patch) | |
tree | 4906c73b440d410f0f09aa85965a1f864be664cb /tests/auto/quicktest | |
parent | 457c5bcb148e8ff13141e086b905f47d8b9ae03c (diff) |
Make QtQuickTest::mouseEvent use QTest::mouseX
Fixes QQuickItem::isUnderMouse returning wrong information when
moving the mouse cursor with QtQuickTest::mouseX
Also changes TestCase.mouseDrag to actually resemble more what
real life does, i.e. send mouse moves with the same localPos
if the item has already moved and update tst_drag.qml accordingly
Change-Id: I80e4ab097da90d21ba987466c1b82467755a6b56
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'tests/auto/quicktest')
-rw-r--r-- | tests/auto/quicktest/quicktest.pro | 3 | ||||
-rw-r--r-- | tests/auto/quicktest/testevent/testevent.pro | 8 | ||||
-rw-r--r-- | tests/auto/quicktest/testevent/tst_testevent.cpp | 81 |
3 files changed, 91 insertions, 1 deletions
diff --git a/tests/auto/quicktest/quicktest.pro b/tests/auto/quicktest/quicktest.pro index 3b4ec23a64..ee22131753 100644 --- a/tests/auto/quicktest/quicktest.pro +++ b/tests/auto/quicktest/quicktest.pro @@ -1,3 +1,4 @@ TEMPLATE = subdirs SUBDIRS = \ - signalspy + signalspy \ + testevent diff --git a/tests/auto/quicktest/testevent/testevent.pro b/tests/auto/quicktest/testevent/testevent.pro new file mode 100644 index 0000000000..bd97e13b89 --- /dev/null +++ b/tests/auto/quicktest/testevent/testevent.pro @@ -0,0 +1,8 @@ +CONFIG += testcase +TARGET = tst_testevent +macos:CONFIG -= app_bundle + +SOURCES += tst_testevent.cpp +QT += quick testlib qmltest-private + +include (../../shared/util.pri) diff --git a/tests/auto/quicktest/testevent/tst_testevent.cpp b/tests/auto/quicktest/testevent/tst_testevent.cpp new file mode 100644 index 0000000000..8adb98f33b --- /dev/null +++ b/tests/auto/quicktest/testevent/tst_testevent.cpp @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2016 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <qtest.h> + +#include <QtQuick/qquickitem.h> +#include <QtQuick/qquickwindow.h> +#include "QtQuickTest/private/quicktestevent_p.h" + +class tst_testevent : public QObject +{ + Q_OBJECT +public: + +private slots: + void moveSetsQuickItemIsUnderMouse(); +}; + +void tst_testevent::moveSetsQuickItemIsUnderMouse() +{ + QQuickWindow w; + w.resize(400, 400); + w.show(); + w.requestActivate(); + QTest::qWaitForWindowActive(&w); + + QTRY_COMPARE(QGuiApplication::focusWindow(), &w); + + QQuickItem *item = new QQuickItem(w.contentItem()); + item->setX(0); + item->setY(0); + item->setWidth(100); + item->setHeight(100); + + QQuickItem *item2 = new QQuickItem(w.contentItem()); + item2->setX(100); + item2->setY(100); + item2->setWidth(100); + item2->setHeight(100); + + QuickTestEvent te; + te.mouseMove(w.contentItem(), 10, 10, /*delay*/ -1, Qt::NoButton); + + QVERIFY(item->isUnderMouse()); + QVERIFY(!item2->isUnderMouse()); + + te.mouseMove(w.contentItem(), 110, 110, /*delay*/ -1, Qt::NoButton); + + QVERIFY(!item->isUnderMouse()); + QVERIFY(item2->isUnderMouse()); + +} + +QTEST_MAIN(tst_testevent) + +#include "tst_testevent.moc" |