aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qquickpopup
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@qt.io>2020-03-10 14:23:53 +0100
committerSimon Hausmann <simon.hausmann@qt.io>2020-03-10 14:24:28 +0100
commit3f3e82fb05eb9eb9e03ccf8ed7de987b91e698ee (patch)
tree484247f63e601abd8b012b86e6cde6ff56710cbb /tests/auto/qquickpopup
parentc3ff6b78ba8e0978bc408f6e3e490bcd32f6cfb0 (diff)
parent6cdd4b53031de17b36b30b00de0a6945470a35ad (diff)
Merge remote-tracking branch 'origin/5.15' into dev
Conflicts: src/imports/controls/qtquickcontrols2plugin.cpp Change-Id: Ifc09ea9f71fdba119fe8eed99f0bdcb402444f27
Diffstat (limited to 'tests/auto/qquickpopup')
-rw-r--r--tests/auto/qquickpopup/data/invisibleToolTipOpen.qml28
-rw-r--r--tests/auto/qquickpopup/tst_qquickpopup.cpp28
2 files changed, 56 insertions, 0 deletions
diff --git a/tests/auto/qquickpopup/data/invisibleToolTipOpen.qml b/tests/auto/qquickpopup/data/invisibleToolTipOpen.qml
new file mode 100644
index 00000000..2e58bb97
--- /dev/null
+++ b/tests/auto/qquickpopup/data/invisibleToolTipOpen.qml
@@ -0,0 +1,28 @@
+import QtQuick 2.13
+import QtQuick.Window 2.13
+import QtQuick.Controls 2.13
+
+Window {
+ width: 400
+ height: 400
+ property alias mouseArea: mouseArea
+ property alias loader: loader
+ MouseArea {
+ id: mouseArea
+ property bool isToolTipVisible: false
+ width: 200
+ height: 200
+ hoverEnabled: true
+ ToolTip.text: "static tooltip"
+ ToolTip.visible: containsMouse
+ ToolTip.onVisibleChanged: isToolTipVisible = ToolTip.visible
+ }
+ Loader {
+ id: loader
+ active: false
+ sourceComponent: Rectangle {
+ ToolTip.text: "dynamic tooltip"
+ ToolTip.visible: false
+ }
+ }
+}
diff --git a/tests/auto/qquickpopup/tst_qquickpopup.cpp b/tests/auto/qquickpopup/tst_qquickpopup.cpp
index f0d8b004..d96436de 100644
--- a/tests/auto/qquickpopup/tst_qquickpopup.cpp
+++ b/tests/auto/qquickpopup/tst_qquickpopup.cpp
@@ -94,6 +94,7 @@ private slots:
void toolTipCrashOnClose();
void setOverlayParentToNull();
void tabFence();
+ void invisibleToolTipOpen();
};
void tst_QQuickPopup::initTestCase()
@@ -1358,6 +1359,33 @@ void tst_QQuickPopup::tabFence()
QVERIFY(outsideButton1->hasActiveFocus());
}
+void tst_QQuickPopup::invisibleToolTipOpen()
+{
+ QQuickApplicationHelper helper(this, "invisibleToolTipOpen.qml");
+
+ QQuickWindow *window = helper.window;
+ centerOnScreen(window);
+ moveMouseAway(window);
+ window->show();
+ QVERIFY(QTest::qWaitForWindowActive(window));
+
+ QQuickItem *mouseArea = qvariant_cast<QQuickItem *>(window->property("mouseArea"));
+ QVERIFY(mouseArea);
+ QObject *loader = qvariant_cast<QObject *>(window->property("loader"));
+ QVERIFY(loader);
+
+ QTest::mouseMove(window, QPoint(mouseArea->width() / 2, mouseArea->height() / 2));
+ QTRY_VERIFY(mouseArea->property("isToolTipVisible").toBool());
+
+ QSignalSpy componentLoadedSpy(loader, SIGNAL(loaded()));
+ QVERIFY(componentLoadedSpy.isValid());
+
+ loader->setProperty("active", true);
+ QTRY_COMPARE(componentLoadedSpy.count(), 1);
+
+ QTRY_VERIFY(mouseArea->property("isToolTipVisible").toBool());
+}
+
QTEST_QUICKCONTROLS_MAIN(tst_QQuickPopup)
#include "tst_qquickpopup.moc"