Add tests for writing to model role properties.
authorAndrew den Exter <andrew.den-exter@nokia.com>
Wed, 1 Aug 2012 04:06:52 +0000 (14:06 +1000)
committerQt by Nokia <qt-info@nokia.com>
Thu, 2 Aug 2012 00:43:54 +0000 (02:43 +0200)
Change-Id: I91375e9caecc130fb3a86f5a48d19e000fa6fcac
Reviewed-by: Damian Jansen <damian.jansen@nokia.com>

tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp

index e23ae6f..e55c537 100644 (file)
@@ -410,6 +410,7 @@ private slots:
     void subtreeRowsMoved();
     void watchedRoles();
     void hasModelChildren();
+    void setValue();
     void remove_data();
     void remove();
     void move_data();
@@ -1338,6 +1339,36 @@ void tst_qquickvisualdatamodel::hasModelChildren()
     QCOMPARE(evaluate<bool>(vdm, "items.get(3).model.hasModelChildren"), false);
 }
 
+void tst_qquickvisualdatamodel::setValue()
+{
+    QStandardItemModel model;
+    initStandardTreeModel(&model);
+
+    QQmlEngine engine;
+    engine.rootContext()->setContextProperty("myModel", &model);
+
+    QQmlComponent component(&engine, testFileUrl("visualdatamodel.qml"));
+
+    QScopedPointer<QObject> object(component.create());
+    QQuickVisualDataModel *vdm = qobject_cast<QQuickVisualDataModel*>(object.data());
+    QVERIFY(vdm);
+
+    QCOMPARE(vdm->count(), 3);
+
+    QQuickItem *item = 0;
+
+    item = vdm->item(0);
+    QVERIFY(item);
+    QCOMPARE(evaluate<QString>(item, "display"), QString("Row 1 Item"));
+    evaluate<void>(item, "display = 'Changed Item 1'");
+    QCOMPARE(evaluate<QString>(item, "display"), QString("Changed Item 1"));
+    QCOMPARE(model.item(0)->text(), QString("Changed Item 1"));
+
+    vdm->release(item);
+
+    QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);  // Ensure released items are deleted before test exits.
+}
+
 void tst_qquickvisualdatamodel::remove_data()
 {
     QTest::addColumn<QUrl>("source");