summaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qmllistmodel
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-02-19 19:32:53 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-02-19 19:32:53 (GMT)
commit01498eb9a44f3b15e517e81b309087fbbf1b93bf (patch)
tree24451e4bb7ccf184229499205ed5f832b0f453a9 /tests/auto/declarative/qmllistmodel
parentdc0ce606eb848730c1d5047eaad4ec061ffe2dde (diff)
parent6c3acdf906a678158928b76cf047b58fbb9f8969 (diff)
downloadQt-01498eb9a44f3b15e517e81b309087fbbf1b93bf.zip
Qt-01498eb9a44f3b15e517e81b309087fbbf1b93bf.tar.gz
Qt-01498eb9a44f3b15e517e81b309087fbbf1b93bf.tar.bz2
Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-qml into master-integration
* 'master' of scm.dev.nokia.troll.no:qt/qt-qml: (81 commits) Revert "Speed up QmlGraphicsItem::setParentItem." Fix dynamic example More strict type checking of ListElement properties. Fix tst_QmlGraphicsLoader::networkRequestUrl autotest. Fix tst_qmlgraphicstextedit::delegateLoading autotest Delete the QmlImageRequestHandler in the correct thread. Fix "AnimatedImage ignores Anchors setting" Remove unused function that breaks build on AIX. doc Add support for startDragDistance in qmlviewer. Add pixmap benchmarks and make cached rounded rect the same as Rectangle. Make QmlDom API internal Compile fix with namepaces Doc: reformulate why we build a button Removed incorrect Q_UNUSED() macro from QmlPropertyAnimation::transition Doc: onExited, onEntered only work when button pressed or hoverEnabled Ensure visibleIndex and currentIndex are updated on itemsMoved(). QmlView API review. See QmlChanges.txt for details. Fix example after introduction of RotationAnimation. Animation doc fix. ...
Diffstat (limited to 'tests/auto/declarative/qmllistmodel')
-rw-r--r--tests/auto/declarative/qmllistmodel/tst_qmllistmodel.cpp57
1 files changed, 56 insertions, 1 deletions
diff --git a/tests/auto/declarative/qmllistmodel/tst_qmllistmodel.cpp b/tests/auto/declarative/qmllistmodel/tst_qmllistmodel.cpp
index fa45a01..e70c7f1 100644
--- a/tests/auto/declarative/qmllistmodel/tst_qmllistmodel.cpp
+++ b/tests/auto/declarative/qmllistmodel/tst_qmllistmodel.cpp
@@ -51,6 +51,8 @@ public:
tst_QmlListModel() {}
private slots:
+ void static_types();
+ void static_types_data();
void static_i18n();
void static_nestedElements();
void static_nestedElements_data();
@@ -223,6 +225,59 @@ void tst_QmlListModel::dynamic()
QCOMPARE(actual,result);
}
+void tst_QmlListModel::static_types_data()
+{
+ QTest::addColumn<QString>("qml");
+ QTest::addColumn<QVariant>("value");
+
+ QTest::newRow("string")
+ << "ListElement { foo: \"bar\" }"
+ << QVariant(QString("bar"));
+
+ QTest::newRow("real")
+ << "ListElement { foo: 10.5 }"
+ << QVariant(10.5);
+
+ QTest::newRow("real0")
+ << "ListElement { foo: 0 }"
+ << QVariant(double(0));
+
+ QTest::newRow("bool")
+ << "ListElement { foo: false }"
+ << QVariant(false);
+
+ QTest::newRow("bool")
+ << "ListElement { foo: true }"
+ << QVariant(true);
+}
+
+void tst_QmlListModel::static_types()
+{
+ QFETCH(QString, qml);
+ QFETCH(QVariant, value);
+
+ qml = "import Qt 4.6\nListModel { " + qml + " }";
+
+ QmlEngine engine;
+ QmlComponent component(&engine);
+ component.setData(qml.toUtf8(),
+ QUrl::fromLocalFile(QString("dummy.qml")));
+ QVERIFY(!component.isError());
+
+ QmlListModel *obj = qobject_cast<QmlListModel*>(component.create());
+ QVERIFY(obj != 0);
+
+ QScriptValue actual = obj->get(0).property(QLatin1String("foo"));
+
+ QCOMPARE(actual.isString(), value.type() == QVariant::String);
+ QCOMPARE(actual.isBoolean(), value.type() == QVariant::Bool);
+ QCOMPARE(actual.isNumber(), value.type() == QVariant::Double);
+
+ QCOMPARE(actual.toString(), value.toString());
+
+ delete obj;
+}
+
void tst_QmlListModel::error_data()
{
QTest::addColumn<QString>("qml");
@@ -246,7 +301,7 @@ void tst_QmlListModel::error_data()
QTest::newRow("bindings not allowed in ListElement")
<< "import Qt 4.6\nRectangle { id: rect; ListModel { ListElement { foo: rect.color } } }"
- << "QTBUG-6203 ListElement should not allow binding its data to something";
+ << "ListElement: cannot use script for property value";
QTest::newRow("random object list properties allowed in ListElement")
<< "import Qt 4.6\nListModel { ListElement { foo: [ ListElement { bar: 123 } ] } }"