diff options
Diffstat (limited to 'tests/auto/qml/qqmlproperty')
-rw-r--r-- | tests/auto/qml/qqmlproperty/data/listAssignmentSignals.qml | 13 | ||||
-rw-r--r-- | tests/auto/qml/qqmlproperty/tst_qqmlproperty.cpp | 16 |
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" |