aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp')
-rw-r--r--tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
index 175bec4cb8..73411e5b8a 100644
--- a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
+++ b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
@@ -14,6 +14,7 @@
#include <QtQuick/private/qquicktaphandler_p.h>
#include <QtQuickTemplates2/private/qquickbutton_p.h>
#include <QtQuickTestUtils/private/qmlutils_p.h>
+#include <QtQuickTestUtils/private/visualtestutils_p.h>
#include <QtGui/QWindow>
#include <QtGui/QScreen>
#include <QtGui/QImage>
@@ -142,6 +143,7 @@ private slots:
void focusPreserved();
void accessibilityHandlesViewChange();
void cleanupRhi();
+ void dontRecreateRootElementOnWindowChange();
private:
QPointingDevice *device = QTest::createTouchDevice();
@@ -991,8 +993,7 @@ void tst_qquickwidget::focusOnClickInProxyWidget()
void tst_qquickwidget::focusPreserved()
{
- if (!QGuiApplicationPrivate::platformIntegration()->hasCapability(QPlatformIntegration::WindowActivation))
- QSKIP("Window Activation is not supported.");
+ SKIP_IF_NO_WINDOW_ACTIVATION
if (QGuiApplication::platformName() == "android")
QSKIP("Test doesn't exit cleanly on Android and generates many warnings - QTBUG-112696");
@@ -1096,6 +1097,21 @@ void tst_qquickwidget::cleanupRhi()
topLevel.create();
}
+void tst_qquickwidget::dontRecreateRootElementOnWindowChange()
+{
+ auto *quickWidget = new QQuickWidget();
+ quickWidget->setSource(testFileUrl("rectangle.qml"));
+ QObject *item = quickWidget->rootObject();
+
+ bool wasDestroyed = false;
+ QObject::connect(item, &QObject::destroyed, this, [&] { wasDestroyed = true; });
+
+ QEvent event(QEvent::WindowChangeInternal);
+ QCoreApplication::sendEvent(quickWidget, &event);
+
+ QVERIFY(!wasDestroyed);
+}
+
QTEST_MAIN(tst_qquickwidget)
#include "tst_qquickwidget.moc"