aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmlproperty
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qml/qqmlproperty')
-rw-r--r--tests/auto/qml/qqmlproperty/data/listAssignmentSignals.qml13
-rw-r--r--tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp16
2 files changed, 29 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlproperty/data/listAssignmentSignals.qml b/tests/auto/qml/qqmlproperty/data/listAssignmentSignals.qml
new file mode 100644
index 0000000000..8a2c68ab5d
--- /dev/null
+++ b/tests/auto/qml/qqmlproperty/data/listAssignmentSignals.qml
@@ -0,0 +1,13 @@
+import QtQuick 2.0
+
+Item {
+ property int signalCounter: 0
+ property list<QtObject> sourceList: [ QtObject{}, QtObject{}, QtObject{} ]
+ property list<QtObject> targetList1: sourceList
+
+ onTargetList1Changed: signalCounter++
+
+ function assignList() {
+ targetList1 = sourceList
+ }
+}
diff --git a/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp b/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp
index 88c34f0e22..a636fe2292 100644
--- a/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp
+++ b/tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp
@@ -217,6 +217,9 @@ private slots:
void bindToNonQObjectTarget();
void assignVariantList();
+
+ void listAssignmentSignals();
+
private:
QQmlEngine engine;
};
@@ -2544,6 +2547,19 @@ void tst_qqmlproperty::assignVariantList()
QCOMPARE(holder->doubleList(), doubleList);
}
+void tst_qqmlproperty::listAssignmentSignals()
+{
+ QQmlEngine engine;
+ QQmlComponent component(&engine, testFileUrl("listAssignmentSignals.qml"));
+ QVERIFY2(component.isReady(), qPrintable(component.errorString()));
+ QScopedPointer<QObject> root(component.create());
+ QVERIFY(!root.isNull());
+
+ QCOMPARE(root->property("signalCounter").toInt(), 1);
+ QMetaObject::invokeMethod(root.get(), "assignList");
+ QCOMPARE(root->property("signalCounter").toInt(), 2);
+}
+
QTEST_MAIN(tst_qqmlproperty)
#include "tst_qqmlproperty.moc"