aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmlvaluetypes
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@theqtcompany.com>2016-01-29 13:01:21 +0100
committerLiang Qi <liang.qi@theqtcompany.com>2016-01-29 13:01:22 +0100
commit1e421097f08876f5e2242be6f7a20db2aeb51692 (patch)
treec45b9323368cfdede67facd43c076a85322f12f6 /tests/auto/qml/qqmlvaluetypes
parentf4788a13e98aa4e5438327094524d7b8239893ec (diff)
parent666bc731a0ba930ca0cfda18daf836913fd91361 (diff)
Merge remote-tracking branch 'origin/5.6' into dev
Diffstat (limited to 'tests/auto/qml/qqmlvaluetypes')
-rw-r--r--tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp b/tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp
index d0b7737794..300f5b90e5 100644
--- a/tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp
+++ b/tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp
@@ -1490,6 +1490,7 @@ struct MyOffice
{
Q_PROPERTY(int chairs MEMBER m_chairs)
Q_PROPERTY(MyDesk desk READ desk WRITE setDesk)
+ Q_PROPERTY(QVariant myThing READ myThing WRITE setMyThing)
Q_GADGET
public:
MyOffice() : m_chairs(0) {}
@@ -1497,8 +1498,12 @@ public:
MyDesk desk() const { return m_desk; }
void setDesk(const MyDesk &d) { m_desk = d; }
+ QVariant myThing() const { return m_myThing; }
+ void setMyThing(const QVariant &thingy) { m_myThing = thingy; }
+
int m_chairs;
MyDesk m_desk;
+ QVariant m_myThing;
};
Q_DECLARE_METATYPE(MyOffice)
@@ -1510,6 +1515,11 @@ void tst_qqmlvaluetypes::customValueType()
MyOffice cppOffice;
cppOffice.m_chairs = 2;
+ QVariantMap m;
+ m.insert(QStringLiteral("hasChair"), false);
+ m.insert(QStringLiteral("textOnWhiteboard"), QStringLiteral("Blah blah"));
+ cppOffice.m_myThing = m;
+
QJSValue office = engine.toScriptValue(cppOffice);
QCOMPARE(office.property("chairs").toInt(), 2);
office.setProperty("chairs", 1);
@@ -1527,6 +1537,14 @@ void tst_qqmlvaluetypes::customValueType()
cppOffice = engine.fromScriptValue<MyOffice>(office);
QCOMPARE(cppOffice.m_chairs, 1);
QCOMPARE(cppOffice.desk().monitorCount, 2);
+
+ QJSValue thingy = office.property("myThing");
+ QVERIFY(thingy.hasProperty("hasChair"));
+ QVERIFY(thingy.property("hasChair").isBool());
+ QCOMPARE(thingy.property("hasChair").toBool(), false);
+ QVERIFY(thingy.property("textOnWhiteboard").isString());
+ QVERIFY(thingy.hasProperty("textOnWhiteboard"));
+ QCOMPARE(thingy.property("textOnWhiteboard").toString(), QStringLiteral("Blah blah"));
}
struct BaseGadget