diff options
author | Chris Adams <christopher.adams@nokia.com> | 2011-08-22 17:01:04 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-08-31 05:03:34 +0200 |
commit | 9140731319269c75f24e80075750971e00844906 (patch) | |
tree | beaf13b75b87e648aab8ed0d69b30e1d30176aff /tests | |
parent | 1646db78918f740c5e5a7e487914f56d732f4a17 (diff) |
Add enums support to QObject module APIs
This commit adds support for retrieving enum values from QObject
module APIs.
Task-number: QTBUG-21033
Task-number: QTBUG-21056
Change-Id: Ib2bd107f3f5905e2d2d35f8a20c55045ef9bb322
Reviewed-on: http://codereview.qt.nokia.com/3291
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Reviewed-by: Aaron Kennedy <aaron.kennedy@nokia.com>
Diffstat (limited to 'tests')
3 files changed, 22 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/moduleapi/qobjectModuleApiEnums.qml b/tests/auto/declarative/qdeclarativeecmascript/data/moduleapi/qobjectModuleApiEnums.qml new file mode 100644 index 0000000000..da5ffd5e76 --- /dev/null +++ b/tests/auto/declarative/qdeclarativeecmascript/data/moduleapi/qobjectModuleApiEnums.qml @@ -0,0 +1,8 @@ +import QtQuick 2.0 +import Qt.test.qobjectApi 1.0 as QtTestQObjectApi // qobject module API installed into new uri + +QtObject { + property int enumValue: QtTestQObjectApi.EnumValue2; + property int enumMethod: QtTestQObjectApi.qobjectEnumTestMethod(QtTestQObjectApi.EnumValue1); +} + diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h index d88fcd0fd8..2738ee3d60 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h +++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h @@ -934,6 +934,7 @@ private: class testQObjectApi : public QObject { Q_OBJECT + Q_ENUMS(MyEnum) Q_PROPERTY (int qobjectTestProperty READ qobjectTestProperty NOTIFY qobjectTestPropertyChanged) Q_PROPERTY (int qobjectTestWritableProperty READ qobjectTestWritableProperty WRITE setQObjectTestWritableProperty NOTIFY qobjectTestWritablePropertyChanged) @@ -945,6 +946,8 @@ public: ~testQObjectApi() {} + enum MyEnum { EnumValue1 = 25, EnumValue2 = 42 }; + Q_INVOKABLE int qobjectEnumTestMethod(MyEnum val) { return (static_cast<int>(val) + 5); } Q_INVOKABLE int qobjectTestMethod(int increment = 1) { m_methodCallCount += increment; return m_methodCallCount; } int qobjectTestProperty() const { return m_testProperty; } diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp index 111c04deaa..f14db0a330 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp @@ -2815,6 +2815,17 @@ void tst_qdeclarativeecmascript::moduleApi_data() << (QStringList() << "readBack" << "unchanged") << (QVariantList() << 30 << 42); + QTest::newRow("qobject module API enum values in JS") + << TEST_FILE("moduleapi/qobjectModuleApiEnums.qml") + << QString() + << QStringList() + << (QStringList() << "enumValue" << "enumMethod") + << (QVariantList() << 42 << 30) + << QStringList() + << QVariantList() + << QStringList() + << QVariantList(); + QTest::newRow("qobject, invalid major version fail") << TEST_FILE("moduleapi/moduleApiMajorVersionFail.qml") << QString("QDeclarativeComponent: Component is not ready") |