aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/qml/qqmlimport
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@qt.io>2020-06-22 18:10:23 +0200
committerUlf Hermann <ulf.hermann@qt.io>2020-06-29 15:51:16 +0200
commitd8513d338d8537506984a13bf1f4ef6507678286 (patch)
tree087b524a17c38a9bfa44849e3c8e45fdeba3423b /tests/auto/qml/qqmlimport
parentbd1c28a82c2ff955e0d154fac2e2df8d5a110dd7 (diff)
Match specific module imports also for versionless QML imports
Previously, if you registered a module import for a specific version X of a module, and the user imported the module without specifying a version, the module import would not be carried out even if X was the version actually imported. Change-Id: I853ed6f275501cf4cbd4e5a360985e67b07f3773 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'tests/auto/qml/qqmlimport')
-rw-r--r--tests/auto/qml/qqmlimport/tst_qqmlimport.cpp42
1 files changed, 31 insertions, 11 deletions
diff --git a/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp b/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp
index ac21a2fac6..03a046db8b 100644
--- a/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp
+++ b/tests/auto/qml/qqmlimport/tst_qqmlimport.cpp
@@ -370,23 +370,43 @@ void tst_QQmlImport::partialImportVersions()
void tst_QQmlImport::registerModuleImport()
{
- qmlRegisterModuleImport("MyPluginSupported", 2, "QtQuick");
- {
+ const auto isValid = [&]() {
QQmlEngine engine;
engine.addImportPath(directory());
QQmlComponent component(&engine);
component.setData("import MyPluginSupported; Item {}", QUrl());
- QVERIFY(component.isReady());
+ if (!component.isReady())
+ return false;
QScopedPointer<QObject> obj(component.create());
- QVERIFY(!obj.isNull());
- }
+ return !obj.isNull();
+ };
+
+ qmlRegisterModuleImport("MyPluginSupported", 2, "QtQuick");
+ QVERIFY(isValid());
qmlUnregisterModuleImport("MyPluginSupported", 2, "QtQuick");
- {
- QQmlEngine engine;
- QQmlComponent component(&engine);
- component.setData("import MyPluginSupported; Item {}", QUrl());
- QVERIFY(component.isError());
- }
+ QVERIFY(!isValid());
+ qmlRegisterModuleImport("MyPluginSupported", 3, "QtQuick"); // won't match, 3 doesn't exist
+ QVERIFY(!isValid());
+ qmlRegisterModuleImport("MyPluginSupported", 1, "QtQuick"); // won't match, as we import latest
+ QVERIFY(!isValid());
+ qmlRegisterModuleImport("MyPluginSupported", QQmlModuleImportModuleAny, "QtQuick");
+ QVERIFY(isValid());
+ qmlUnregisterModuleImport("MyPluginSupported", QQmlModuleImportModuleAny, "QtQuick");
+ QVERIFY(!isValid());
+ qmlRegisterModuleImport("MyPluginSupported", QQmlModuleImportModuleAny, "QtQuick",
+ QQmlModuleImportAuto); // matches, because both 2.0
+ QVERIFY(isValid());
+ qmlUnregisterModuleImport("MyPluginSupported", QQmlModuleImportModuleAny, "QtQuick",
+ QQmlModuleImportAuto);
+ QVERIFY(!isValid());
+ qmlRegisterModuleImport("MyPluginSupported", 2, "QtQuick", 2, 15);
+ QVERIFY(isValid());
+ qmlUnregisterModuleImport("MyPluginSupported", 2, "QtQuick", 2, 15);
+ QVERIFY(!isValid());
+ qmlUnregisterModuleImport("MyPluginSupported", 3, "QtQuick");
+ QVERIFY(!isValid());
+ qmlUnregisterModuleImport("MyPluginSupported", 1, "QtQuick");
+ QVERIFY(!isValid());
}
void tst_QQmlImport::importDependenciesPrecedence()