diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-06-16 05:26:08 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-06-16 05:26:08 (GMT) |
commit | 27f14fcbf4eeec1b5f2255e1a0ebc74a221964a1 (patch) | |
tree | ea49d1c576c1f0a6b685a0b41b19cc664e021f9a | |
parent | 6bc2a137e2b9c508d86047576907956418d292aa (diff) | |
download | Qt-27f14fcbf4eeec1b5f2255e1a0ebc74a221964a1.zip Qt-27f14fcbf4eeec1b5f2255e1a0ebc74a221964a1.tar.gz Qt-27f14fcbf4eeec1b5f2255e1a0ebc74a221964a1.tar.bz2 |
Autotest for extension objects
4 files changed, 90 insertions, 0 deletions
diff --git a/tests/auto/declarative/qmlbindengine/extensionObjects.txt b/tests/auto/declarative/qmlbindengine/extensionObjects.txt new file mode 100644 index 0000000..4c33de4 --- /dev/null +++ b/tests/auto/declarative/qmlbindengine/extensionObjects.txt @@ -0,0 +1,8 @@ +MyExtendedObject +{ + baseProperty: baseExtendedProperty + baseExtendedProperty: 13 + + coreProperty: extendedProperty + extendedProperty: 9 +} diff --git a/tests/auto/declarative/qmlbindengine/testtypes.cpp b/tests/auto/declarative/qmlbindengine/testtypes.cpp index afac27b..2f83f58 100644 --- a/tests/auto/declarative/qmlbindengine/testtypes.cpp +++ b/tests/auto/declarative/qmlbindengine/testtypes.cpp @@ -1,5 +1,41 @@ #include "testtypes.h" +class BaseExtensionObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(int baseExtendedProperty READ extendedProperty WRITE setExtendedProperty NOTIFY extendedPropertyChanged); +public: + BaseExtensionObject(QObject *parent) : QObject(parent), m_value(0) {} + + int extendedProperty() const { return m_value; } + void setExtendedProperty(int v) { m_value = v; emit extendedPropertyChanged(); } + +signals: + void extendedPropertyChanged(); +private: + int m_value; +}; + +class ExtensionObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(int extendedProperty READ extendedProperty WRITE setExtendedProperty NOTIFY extendedPropertyChanged); +public: + ExtensionObject(QObject *parent) : QObject(parent), m_value(0) {} + + int extendedProperty() const { return m_value; } + void setExtendedProperty(int v) { m_value = v; emit extendedPropertyChanged(); } + +signals: + void extendedPropertyChanged(); +private: + int m_value; +}; + QML_DEFINE_TYPE(MyQmlObject,MyQmlObject); QML_DEFINE_TYPE(MyDeferredObject,MyDeferredObject); QML_DEFINE_TYPE(MyQmlContainer,MyQmlContainer); +QML_DEFINE_EXTENDED_TYPE(MyBaseExtendedObject,MyBaseExtendedObject,BaseExtensionObject); +QML_DEFINE_EXTENDED_TYPE(MyExtendedObject,MyExtendedObject,ExtensionObject); + +#include "testtypes.moc" diff --git a/tests/auto/declarative/qmlbindengine/testtypes.h b/tests/auto/declarative/qmlbindengine/testtypes.h index 1934fe0..df31f7a 100644 --- a/tests/auto/declarative/qmlbindengine/testtypes.h +++ b/tests/auto/declarative/qmlbindengine/testtypes.h @@ -148,5 +148,35 @@ private: }; QML_DECLARE_TYPE(MyDeferredObject); +class MyBaseExtendedObject : public QObject +{ +Q_OBJECT +Q_PROPERTY(int baseProperty READ baseProperty WRITE setBaseProperty); +public: + MyBaseExtendedObject() : m_value(0) {} + + int baseProperty() const { return m_value; } + void setBaseProperty(int v) { m_value = v; } + +private: + int m_value; +}; +QML_DECLARE_TYPE(MyBaseExtendedObject); + +class MyExtendedObject : public MyBaseExtendedObject +{ +Q_OBJECT +Q_PROPERTY(int coreProperty READ coreProperty WRITE setCoreProperty); +public: + MyExtendedObject() : m_value(0) {} + + int coreProperty() const { return m_value; } + void setCoreProperty(int v) { m_value = v; } + +private: + int m_value; +}; +QML_DECLARE_TYPE(MyExtendedObject); + #endif // TESTTYPES_H diff --git a/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp b/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp index 0ff66c4..8d3c0b4 100644 --- a/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp +++ b/tests/auto/declarative/qmlbindengine/tst_qmlbindengine.cpp @@ -37,6 +37,7 @@ private slots: void contextPropertiesTriggerReeval(); void objectPropertiesTriggerReeval(); void deferredProperties(); + void extensionObjects(); private: QmlEngine engine; @@ -355,6 +356,21 @@ void tst_qmlbindengine::deferredProperties() QVERIFY(qmlObject != 0); } +void tst_qmlbindengine::extensionObjects() +{ + QmlComponent component(&engine, TEST_FILE("extensionObjects.txt")); + MyExtendedObject *object = + qobject_cast<MyExtendedObject *>(component.create()); + QVERIFY(object != 0); + QCOMPARE(object->baseProperty(), 13); + QCOMPARE(object->coreProperty(), 9); + + object->setProperty("extendedProperty", QVariant(11)); + object->setProperty("baseExtendedProperty", QVariant(92)); + QCOMPARE(object->coreProperty(), 11); + QCOMPARE(object->baseProperty(), 92); +} + QTEST_MAIN(tst_qmlbindengine) #include "tst_qmlbindengine.moc" |