diff options
author | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2016-02-02 13:12:42 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2016-02-02 13:12:42 +0100 |
commit | 1d417a7bfa99695db7d8bf6b28a5141bf97e96cc (patch) | |
tree | 71d7fcd63cf14aa608284b436a481dca75014bc9 /tests/auto | |
parent | a1f0e69d162e9d6e1841b7a1e91dcca5e1109373 (diff) | |
parent | 666bc731a0ba930ca0cfda18daf836913fd91361 (diff) |
Merge 5.6 into 5.6.0
Change-Id: I971229ff050c98258729ad70d9e06b89e5bbf617
Diffstat (limited to 'tests/auto')
-rw-r--r-- | tests/auto/qml/qqmlecmascript/data/metaobjectRevision5.qml | 12 | ||||
-rw-r--r-- | tests/auto/qml/qqmlecmascript/testtypes.cpp | 1 | ||||
-rw-r--r-- | tests/auto/qml/qqmlecmascript/testtypes.h | 17 | ||||
-rw-r--r-- | tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp | 9 | ||||
-rw-r--r-- | tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp | 20 | ||||
-rw-r--r-- | tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp | 18 |
6 files changed, 77 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlecmascript/data/metaobjectRevision5.qml b/tests/auto/qml/qqmlecmascript/data/metaobjectRevision5.qml new file mode 100644 index 0000000000..0493a7c0b9 --- /dev/null +++ b/tests/auto/qml/qqmlecmascript/data/metaobjectRevision5.qml @@ -0,0 +1,12 @@ +import Qt.test 1.1 +import QtQuick 2.0 + +MyItemUsingRevisionedObject { + property real test + + revisioned.prop1: 10 + revisioned.prop2: 1 + + Component.onCompleted: test = revisioned.prop1 + revisioned.prop2 +} + diff --git a/tests/auto/qml/qqmlecmascript/testtypes.cpp b/tests/auto/qml/qqmlecmascript/testtypes.cpp index 285158a4ea..b9e088d64c 100644 --- a/tests/auto/qml/qqmlecmascript/testtypes.cpp +++ b/tests/auto/qml/qqmlecmascript/testtypes.cpp @@ -452,6 +452,7 @@ void registerTypes() qmlRegisterType<MyRevisionedSubclass>("Qt.test",1,0,"MyRevisionedSubclass"); // MyRevisionedSubclass 1.1 uses MyRevisionedClass revision 1 qmlRegisterType<MyRevisionedSubclass,1>("Qt.test",1,1,"MyRevisionedSubclass"); + qmlRegisterType<MyItemUsingRevisionedObject>("Qt.test", 1, 0, "MyItemUsingRevisionedObject"); #ifndef QT_NO_WIDGETS qmlRegisterExtendedType<QWidget,QWidgetDeclarativeUI>("Qt.test",1,0,"QWidget"); diff --git a/tests/auto/qml/qqmlecmascript/testtypes.h b/tests/auto/qml/qqmlecmascript/testtypes.h index eb4a3147d3..5603356ef0 100644 --- a/tests/auto/qml/qqmlecmascript/testtypes.h +++ b/tests/auto/qml/qqmlecmascript/testtypes.h @@ -1084,10 +1084,27 @@ protected: qreal m_p4; }; + +class MyItemUsingRevisionedObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(MyRevisionedClass *revisioned READ revisioned) + +public: + MyItemUsingRevisionedObject() { + m_revisioned = new MyRevisionedClass; + } + + MyRevisionedClass *revisioned() const { return m_revisioned; } +private: + MyRevisionedClass *m_revisioned; +}; + QML_DECLARE_TYPE(MyRevisionedBaseClassRegistered) QML_DECLARE_TYPE(MyRevisionedBaseClassUnregistered) QML_DECLARE_TYPE(MyRevisionedClass) QML_DECLARE_TYPE(MyRevisionedSubclass) +QML_DECLARE_TYPE(MyItemUsingRevisionedObject) Q_DECLARE_METATYPE(MyQmlObject::MyType) diff --git a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp index b30dfcbd0b..a208bf5634 100644 --- a/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp +++ b/tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp @@ -6578,6 +6578,15 @@ void tst_qqmlecmascript::revision() QCOMPARE(object->property("test").toReal(), 11.); delete object; } + + { + QQmlComponent component(&engine, testFileUrl("metaobjectRevision5.qml")); + + QObject *object = component.create(); + QVERIFY(object != 0); + QCOMPARE(object->property("test").toReal(), 11.); + delete object; + } } void tst_qqmlecmascript::realToInt() diff --git a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp index 1f299c0dbb..71f206ed8f 100644 --- a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp +++ b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp @@ -249,6 +249,8 @@ private slots: void dataAlignment(); + void deleteSingletons(); + private: QQmlEngine engine; QStringList defaultImportPathList; @@ -4089,6 +4091,24 @@ void tst_qqmllanguage::dataAlignment() QVERIFY(sizeof(QQmlVMEMetaData::MethodData) % sizeof(int) == 0); } +void tst_qqmllanguage::deleteSingletons() +{ + QPointer<QObject> singleton; + { + QQmlEngine tmpEngine; + QQmlComponent component(&tmpEngine, testFile("singletonTest5.qml")); + VERIFY_ERRORS(0); + QObject *o = component.create(); + QVERIFY(o != 0); + QObject *s1 = NULL; + getSingletonInstance(o, "singletonInstance", &s1); + QVERIFY(s1 != 0); + singleton = s1; + QVERIFY(singleton.data() != 0); + } + QVERIFY(singleton.data() == 0); +} + QTEST_MAIN(tst_qqmllanguage) #include "tst_qqmllanguage.moc" diff --git a/tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp b/tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp index 58755927b5..04abe0bfcb 100644 --- a/tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp +++ b/tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp @@ -1493,6 +1493,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) {} @@ -1500,8 +1501,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) @@ -1513,6 +1518,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); @@ -1530,6 +1540,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 |