aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/auto/qml/qqmlimport/tst_qqmlimport.cpp39
1 files changed, 36 insertions, 3 deletions
diff --git a/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp b/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp
index 06df6e6919..38970a3b99 100644
--- a/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp
+++ b/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp
@@ -431,19 +431,38 @@ void tst_QQmlImport::partialImportVersions()
}
}
+class NotItem : public QObject
+{
+ Q_OBJECT
+ QML_NAMED_ELEMENT(Item)
+};
+
void tst_QQmlImport::registerModuleImport()
{
- const auto isValid = [&]() {
+ enum Result { IsItem, IsNotItem, IsNull, IsInvalid };
+ const auto check = [&]() -> Result {
QQmlEngine engine;
engine.addImportPath(directory());
QQmlComponent component(&engine);
component.setData("import MyPluginSupported; Item {}", QUrl());
if (!component.isReady())
- return false;
+ return IsInvalid;
QScopedPointer<QObject> obj(component.create());
- return !obj.isNull();
+ if (obj.isNull())
+ return IsNull;
+ if (qobject_cast<NotItem *>(obj.data()))
+ return IsNotItem;
+ else if (qobject_cast<QQuickItem *>(obj.data()))
+ return IsItem;
+ return IsInvalid;
};
+ const auto isValid = [&]() {
+ return check() == IsItem;
+ };
+
+ qmlRegisterTypesAndRevisions<NotItem>("ShadowQuick", 1);
+
qmlRegisterModuleImport("MyPluginSupported", 2, "QtQuick");
QVERIFY(isValid());
qmlUnregisterModuleImport("MyPluginSupported", 2, "QtQuick");
@@ -470,6 +489,20 @@ void tst_QQmlImport::registerModuleImport()
QVERIFY(!isValid());
qmlUnregisterModuleImport("MyPluginSupported", 1, "QtQuick");
QVERIFY(!isValid());
+
+ qmlRegisterModuleImport("MyPluginSupported", 2, "ShadowQuick", 1);
+ qmlRegisterModuleImport("MyPluginSupported", 2, "QtQuick", 2);
+ QCOMPARE(check(), IsItem);
+
+ qmlUnregisterModuleImport("MyPluginSupported", 2, "ShadowQuick", 1);
+ qmlUnregisterModuleImport("MyPluginSupported", 2, "QtQuick", 2);
+
+ qmlRegisterModuleImport("MyPluginSupported", 2, "QtQuick", 2);
+ qmlRegisterModuleImport("MyPluginSupported", 2, "ShadowQuick", 1);
+ QCOMPARE(check(), IsNotItem);
+
+ qmlUnregisterModuleImport("MyPluginSupported", 2, "QtQuick", 2);
+ qmlUnregisterModuleImport("MyPluginSupported", 2, "ShadowQuick", 1);
}
void tst_QQmlImport::importDependenciesPrecedence()