aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2012-03-28 17:42:32 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-24 02:40:49 +0200
commitafbde67c01baad017cf7ed385a6415e137269e9e (patch)
treeb338b6115c8acc39f0a5e6b293b8792de22761c3 /tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
parent959fd59bd5bb72dde5db4975443c69045ea2fe53 (diff)
Don't construct VisualDataModel attached properties unless requested.
This saves allocating a QObject per item model in the common case. Change-Id: I0e77e6c6c0c64ac6c5e482ef55e194c68e778b32 Reviewed-by: Bea Lam <bea.lam@nokia.com>
Diffstat (limited to 'tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp')
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp b/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
index b8d46ac373..9047dcc021 100644
--- a/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
+++ b/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
@@ -229,6 +229,7 @@ private slots:
void resolve();
void warnings_data();
void warnings();
+ void invalidAttachment();
private:
template <int N> void groups_verify(
@@ -3439,6 +3440,31 @@ void tst_qquickvisualdatamodel::warnings()
QCOMPARE(evaluate<int>(listView, "count"), count);
}
+void tst_qquickvisualdatamodel::invalidAttachment()
+{
+ QQmlComponent component(&engine);
+ component.loadUrl(testFileUrl("invalidAttachment.qml"));
+
+ QScopedPointer<QObject> object(component.create());
+ QVERIFY(object);
+ QCOMPARE(component.errors().count(), 0);
+
+ QVariant property = object->property("invalidVdm");
+ QCOMPARE(property.userType(), qMetaTypeId<QQuickVisualDataModel *>());
+ QVERIFY(!property.value<QQuickVisualDataModel *>());
+
+ QQuickItem *item = object->findChild<QQuickItem *>("delegate");
+ QVERIFY(item);
+
+ property = item->property("validVdm");
+ QCOMPARE(property.userType(), qMetaTypeId<QQuickVisualDataModel *>());
+ QVERIFY(property.value<QQuickVisualDataModel *>());
+
+ property = item->property("invalidVdm");
+ QCOMPARE(property.userType(), qMetaTypeId<QQuickVisualDataModel *>());
+ QVERIFY(!property.value<QQuickVisualDataModel *>());
+}
+
QTEST_MAIN(tst_qquickvisualdatamodel)