diff options
Diffstat (limited to 'tests/auto/qml')
4 files changed, 12 insertions, 2 deletions
diff --git a/tests/auto/qml/qqmllanguage/data/unregisteredValueTypeConversion.qml b/tests/auto/qml/qqmllanguage/data/unregisteredValueTypeConversion.qml index ecf2130f5a..e0cebe58fc 100644 --- a/tests/auto/qml/qqmllanguage/data/unregisteredValueTypeConversion.qml +++ b/tests/auto/qml/qqmllanguage/data/unregisteredValueTypeConversion.qml @@ -2,5 +2,8 @@ import QtQml import Test UnregisteredValueTypeHandler { - Component.onCompleted: consume(produce()) + Component.onCompleted: { + consume(produce()) + consume(produceDerived()) + } } diff --git a/tests/auto/qml/qqmllanguage/testtypes.cpp b/tests/auto/qml/qqmllanguage/testtypes.cpp index 87241921c9..3fc9fd7f16 100644 --- a/tests/auto/qml/qqmllanguage/testtypes.cpp +++ b/tests/auto/qml/qqmllanguage/testtypes.cpp @@ -150,6 +150,7 @@ void registerTypes() qmlRegisterTypesAndRevisions<DerivedValueType>("ValueTypes", 1); qmlRegisterTypesAndRevisions<GetterObject>("Test", 1); + QMetaType::registerConverter<UnregisteredValueDerivedType, UnregisteredValueBaseType>(); qmlRegisterTypesAndRevisions<UnregisteredValueTypeHandler>("Test", 1); } diff --git a/tests/auto/qml/qqmllanguage/testtypes.h b/tests/auto/qml/qqmllanguage/testtypes.h index 3b4f612127..1220f70b3f 100644 --- a/tests/auto/qml/qqmllanguage/testtypes.h +++ b/tests/auto/qml/qqmllanguage/testtypes.h @@ -2426,6 +2426,11 @@ struct UnregisteredValueBaseType int foo = 12; }; +struct UnregisteredValueDerivedType: public UnregisteredValueBaseType +{ + int bar = 13; +}; + class UnregisteredValueTypeHandler: public QObject { Q_OBJECT @@ -2435,6 +2440,7 @@ public: public slots: UnregisteredValueBaseType produce() { return UnregisteredValueBaseType(); } + UnregisteredValueDerivedType produceDerived() { return UnregisteredValueDerivedType(); } void consume(UnregisteredValueBaseType) { ++consumed; } }; diff --git a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp index ff5eeb9d7a..e1884dd87c 100644 --- a/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp +++ b/tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp @@ -7920,7 +7920,7 @@ void tst_qqmllanguage::unregisteredValueTypeConversion() QVERIFY(!o.isNull()); UnregisteredValueTypeHandler *handler = qobject_cast<UnregisteredValueTypeHandler *>(o.data()); Q_ASSERT(handler); - QCOMPARE(handler->consumed, 1); + QCOMPARE(handler->consumed, 2); } QTEST_MAIN(tst_qqmllanguage) |