diff options
4 files changed, 25 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/deferredPropertiesOverwrite.qml b/tests/auto/qml/qqmlecmascript/data/deferredPropertiesOverwrite.qml new file mode 100644 index 0000000000..3a4a424f30 --- /dev/null +++ b/tests/auto/qml/qqmlecmascript/data/deferredPropertiesOverwrite.qml @@ -0,0 +1,6 @@ +import Qt.test 1.0 + +DeferredChildOverwrite { + id: root + baseValue: 10 +} diff --git a/tests/auto/qml/qqmlecmascript/testtypes.cpp b/tests/auto/qml/qqmlecmascript/testtypes.cpp index 56cb03f6f4..021a2d11ab 100644 --- a/tests/auto/qml/qqmlecmascript/testtypes.cpp +++ b/tests/auto/qml/qqmlecmascript/testtypes.cpp @@ -469,6 +469,7 @@ void registerTypes() qmlRegisterSingletonType<TestTypeCppSingleton>("Test", 1, 0, "TestTypeCppSingleton", testTypeCppProvider); qmlRegisterType<MyDeferredObject>("Qt.test", 1,0, "MyDeferredObject"); qmlRegisterType<DeferredChild>("Qt.test", 1,0, "DeferredChild"); + qmlRegisterType<DeferredChildOverwrite>("Qt.test", 1, 0, "DeferredChildOverwrite"); qmlRegisterType<DeferredByParentChild>("Qt.test", 1,0, "DeferredByParentChild"); qmlRegisterType<MyVeryDeferredObject>("Qt.test", 1,0, "MyVeryDeferredObject"); qmlRegisterType<MyQmlContainer>("Qt.test", 1,0, "MyQmlContainer"); diff --git a/tests/auto/qml/qqmlecmascript/testtypes.h b/tests/auto/qml/qqmlecmascript/testtypes.h index e6ef36fd1e..04f97adcfe 100644 --- a/tests/auto/qml/qqmlecmascript/testtypes.h +++ b/tests/auto/qml/qqmlecmascript/testtypes.h @@ -435,6 +435,12 @@ class DeferredChild : public NonDeferredBased Q_CLASSINFO("DeferredPropertyNames", "baseValue") }; +class DeferredChildOverwrite : public DeferredChild +{ + Q_OBJECT + Q_CLASSINFO("DeferredPropertyNames", "") +}; + class ChildDeferringParent : public QObject { Q_OBJECT diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp index 9b7286dc0e..5244530b66 100644 --- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp +++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp @@ -101,6 +101,7 @@ private slots: void dependenciesWithFunctions(); void deferredProperties(); void deferredPropertiesParent(); + void deferredPropertiesOverwrite(); void deferredPropertiesByParent(); void deferredPropertiesErrors(); void deferredPropertiesInComponents(); @@ -1231,6 +1232,17 @@ void tst_qqmlecmascript::deferredPropertiesParent() QCOMPARE(object->baseValue(), 10); } +void tst_qqmlecmascript::deferredPropertiesOverwrite() +{ + QQmlEngine engine; + QQmlComponent component(&engine, testFileUrl("deferredPropertiesOverwrite.qml")); + QScopedPointer<QObject> obj(component.create()); + QVERIFY2(obj, qPrintable(component.errorString())); + DeferredChildOverwrite *object = qobject_cast<DeferredChildOverwrite *>(obj.data()); + QVERIFY(object != nullptr); + QCOMPARE(object->baseValue(), 10); +} + void tst_qqmlecmascript::deferredPropertiesByParent() { QQmlEngine engine; |