aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/auto/qml/qqmlecmascript/data/deferredPropertiesOverwrite.qml6
-rw-r--r--tests/auto/qml/qqmlecmascript/testtypes.cpp1
-rw-r--r--tests/auto/qml/qqmlecmascript/testtypes.h6
-rw-r--r--tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp12
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;