summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-05-24 15:51:52 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-05-24 15:51:52 (GMT)
commit5ace2ec2a272091ba6dfb15274d387fb58bfa772 (patch)
tree9c1fbdf2475e831fc9cce597586f37836589f60b /tests/auto
parentc6d893bc8ada7ddd3b9896ab43d05f7d764edf51 (diff)
parent1079096a57112d9615812771adba18d2e9297320 (diff)
downloadQt-5ace2ec2a272091ba6dfb15274d387fb58bfa772.zip
Qt-5ace2ec2a272091ba6dfb15274d387fb58bfa772.tar.gz
Qt-5ace2ec2a272091ba6dfb15274d387fb58bfa772.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-qml into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-qml: Added autotest for Component.createObject() without Qt.createComponent()
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/declarative/qdeclarativecomponent/data/createObject.qml16
-rw-r--r--tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp28
2 files changed, 44 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativecomponent/data/createObject.qml b/tests/auto/declarative/qdeclarativecomponent/data/createObject.qml
new file mode 100644
index 0000000..4ee1e75
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativecomponent/data/createObject.qml
@@ -0,0 +1,16 @@
+import Qt 4.7
+
+Item{
+ id: root
+ property QtObject qobject : null
+ property QtObject declarativeitem : null
+ property QtObject graphicswidget: null
+ Component{id: a; QtObject{} }
+ Component{id: b; Item{} }
+ Component{id: c; QGraphicsWidget{} }
+ Component.onCompleted: {
+ root.qobject = a.createObject(root);
+ root.declarativeitem = b.createObject(root);
+ root.graphicswidget = c.createObject(root);
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp b/tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp
index c9e304c..faa1c21 100644
--- a/tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp
+++ b/tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp
@@ -39,7 +39,9 @@
**
****************************************************************************/
#include <qtest.h>
+#include <QDebug>
+#include <QtGui/qgraphicsitem.h>
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativecomponent.h>
@@ -51,6 +53,7 @@ public:
private slots:
void loadEmptyUrl();
+ void qmlCreateObject();
private:
QDeclarativeEngine engine;
@@ -70,6 +73,31 @@ void tst_qdeclarativecomponent::loadEmptyUrl()
QCOMPARE(error.description(), QLatin1String("Invalid empty URL"));
}
+void tst_qdeclarativecomponent::qmlCreateObject()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/createObject.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QObject *testObject1 = object->property("qobject").value<QObject*>();
+ QVERIFY(testObject1);
+ QVERIFY(testObject1->parent() == object);
+
+ QObject *testObject2 = object->property("declarativeitem").value<QObject*>();
+ QVERIFY(testObject2);
+ QVERIFY(testObject2->parent() == object);
+ QCOMPARE(testObject2->metaObject()->className(), "QDeclarativeItem");
+
+ //Note that QGraphicsObjects are not exposed to QML for instantiation, and so can't be used in a component directly
+ //Also this is actually the extended type QDeclarativeGraphicsWidget, but it still doesn't inherit QDeclarativeItem
+ QGraphicsObject *testObject3 = qobject_cast<QGraphicsObject*>(object->property("graphicswidget").value<QObject*>());
+ QVERIFY(testObject3);
+ QVERIFY(testObject3->parent() == object);
+ QVERIFY(testObject3->parentItem() == qobject_cast<QGraphicsObject*>(object));
+ QCOMPARE(testObject3->metaObject()->className(), "QDeclarativeGraphicsWidget");
+}
+
QTEST_MAIN(tst_qdeclarativecomponent)
#include "tst_qdeclarativecomponent.moc"