diff options
Diffstat (limited to 'tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp')
-rw-r--r-- | tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp index c36e707ff8..fca398d7b2 100644 --- a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp +++ b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp @@ -309,6 +309,8 @@ private slots: void selfReference(); void selfReferencingSingleton(); + void listContainingDeletedObject(); + private: QQmlEngine engine; QStringList defaultImportPathList; @@ -5354,6 +5356,25 @@ void tst_qqmllanguage::selfReferencingSingleton() QCOMPARE(singletonPointer->property("dummy").toInt(), 42); } +void tst_qqmllanguage::listContainingDeletedObject() +{ + QQmlEngine engine; + auto url = testFileUrl("listContainingDeleted.qml"); + const QString message = url.toString() + ":24: TypeError: Cannot read property 'enabled' of null"; + QTest::ignoreMessage(QtMsgType::QtWarningMsg, message.toUtf8().data()); + QQmlComponent comp(&engine, url); + QScopedPointer<QObject> root(comp.create()); + QVERIFY(root); + + auto cmp = root->property("a").value<QQmlComponent*>(); + auto o = cmp->create(); + + QMetaObject::invokeMethod(root.get(), "doAssign", Q_ARG(QVariant, QVariant::fromValue(o))); + delete o; + QMetaObject::invokeMethod(root.get(), "use"); + +} + QTEST_MAIN(tst_qqmllanguage) #include "tst_qqmllanguage.moc" |