summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2010-04-15 07:48:56 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2010-04-15 07:50:44 (GMT)
commit2c9ff8dc79b69b310a568f7457838753abbf2178 (patch)
tree974ac90d252e9b748b5e2296faecb00acd4967e8 /tests/auto
parent0b3ade40922ecb06e3f67be96973322f8440bef9 (diff)
downloadQt-2c9ff8dc79b69b310a568f7457838753abbf2178.zip
Qt-2c9ff8dc79b69b310a568f7457838753abbf2178.tar.gz
Qt-2c9ff8dc79b69b310a568f7457838753abbf2178.tar.bz2
Support valuetypes as method return values
QTBUG-9818
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp1
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml17
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/testtypes.h3
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp14
4 files changed, 34 insertions, 1 deletions
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index 35b4d99..098ac36 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -1382,7 +1382,6 @@ void tst_qdeclarativeecmascript::callQtInvokables()
o.reset();
{
QScriptValue ret = engine->evaluate("object.method_NoArgs_QPointF()");
- QVERIFY(ret.isVariant());
QCOMPARE(ret.toVariant(), QVariant(QPointF(123, 4.5)));
QCOMPARE(o.error(), false);
QCOMPARE(o.invoked(), 3);
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml
new file mode 100644
index 0000000..185e7ba
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml
@@ -0,0 +1,17 @@
+import Test 1.0
+import Qt 4.6
+
+MyTypeObject {
+ property bool test1: false;
+ property bool test2: false;
+
+ Component.onCompleted: {
+ var a = method();
+
+ test1 = (a.width == 13)
+ test2 = (a.height == 14)
+
+ size = a;
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h b/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h
index 9057b4f..dd13429 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h
+++ b/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h
@@ -129,6 +129,9 @@ public:
signals:
void changed();
void runScript();
+
+public slots:
+ QSize method() { return QSize(13, 14); }
};
QML_DECLARE_TYPE(MyTypeObject);
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp b/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp
index e653abf..b733b10 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp
+++ b/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp
@@ -79,6 +79,7 @@ private slots:
void cppClasses();
void enums();
void conflictingBindings();
+ void returnValues();
private:
QDeclarativeEngine engine;
@@ -763,6 +764,19 @@ void tst_qdeclarativevaluetypes::conflictingBindings()
}
}
+void tst_qdeclarativevaluetypes::returnValues()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("returnValues.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test1").toBool(), true);
+ QCOMPARE(object->property("test2").toBool(), true);
+ QCOMPARE(object->property("size").toSize(), QSize(13, 14));
+
+ delete object;
+}
+
QTEST_MAIN(tst_qdeclarativevaluetypes)
#include "tst_qdeclarativevaluetypes.moc"