From f5eb5ad7a0b5bbfc40070a65d7dfc84c53ef9414 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Tue, 26 Jul 2011 10:44:16 +1000 Subject: [PATCH] Autotest Task-number: QTBUG-16878 Change-Id: I0d074c13b32670697f4811060ddf4edbdf6c6451 Reviewed-on: http://codereview.qt.nokia.com/2133 Reviewed-by: Aaron Kennedy Reviewed-by: Qt Sanity Bot --- .../data/registrationOrder.qml | 4 ++++ .../declarative/qdeclarativelanguage/testtypes.cpp | 3 +++ .../declarative/qdeclarativelanguage/testtypes.h | 5 +++++ .../tst_qdeclarativelanguage.cpp | 13 +++++++++++++ 4 files changed, 25 insertions(+), 0 deletions(-) create mode 100644 tests/auto/declarative/qdeclarativelanguage/data/registrationOrder.qml diff --git a/tests/auto/declarative/qdeclarativelanguage/data/registrationOrder.qml b/tests/auto/declarative/qdeclarativelanguage/data/registrationOrder.qml new file mode 100644 index 0000000..14217ad --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/registrationOrder.qml @@ -0,0 +1,4 @@ +import Test.VersionOrder 2.0 + +MyQmlObject { +} diff --git a/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp b/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp index 20f0719..9c9eb04 100644 --- a/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp +++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp @@ -74,6 +74,9 @@ void registerTypes() qmlRegisterType("Test.Version",1,0,"MyQmlObject"); qmlRegisterType("Test.Version",1,0,"MyTypeObject"); qmlRegisterType("Test.Version",2,0,"MyTypeObject"); + + qmlRegisterType("Test.VersionOrder", 2,0, "MyQmlObject"); + qmlRegisterType("Test.VersionOrder", 1,0, "MyQmlObject"); } QVariant myCustomVariantTypeConverter(const QString &data) diff --git a/tests/auto/declarative/qdeclarativelanguage/testtypes.h b/tests/auto/declarative/qdeclarativelanguage/testtypes.h index 527f670..c11bc33 100644 --- a/tests/auto/declarative/qdeclarativelanguage/testtypes.h +++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.h @@ -794,6 +794,11 @@ protected: qreal m_p5; }; +class MyVersion2Class : public QObject +{ + Q_OBJECT +}; + QML_DECLARE_TYPE(MyRevisionedBaseClassRegistered) QML_DECLARE_TYPE(MyRevisionedBaseClassUnregistered) QML_DECLARE_TYPE(MyRevisionedClass) diff --git a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp index b8f1899..328b7c8 100644 --- a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp +++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp @@ -136,6 +136,7 @@ private slots: void reservedWords(); void inlineAssignmentsOverrideBindings(); void nestedComponentRoots(); + void registrationOrder(); void basicRemote_data(); void basicRemote(); @@ -2056,6 +2057,18 @@ void tst_qdeclarativelanguage::propertyInit() } } +// Test that registration order doesn't break type availability +// QTBUG-16878 +void tst_qdeclarativelanguage::registrationOrder() +{ + QDeclarativeComponent component(&engine, TEST_FILE("registrationOrder.qml")); + + QObject *o = component.create(); + QVERIFY(o != 0); + QVERIFY(o->metaObject() == &MyVersion2Class::staticMetaObject); + delete o; +} + QTEST_MAIN(tst_qdeclarativelanguage) #include "tst_qdeclarativelanguage.moc" -- 1.7.2.5