diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2020-06-22 18:10:23 +0200 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-06-29 15:51:16 +0200 |
commit | d8513d338d8537506984a13bf1f4ef6507678286 (patch) | |
tree | 087b524a17c38a9bfa44849e3c8e45fdeba3423b /tests/auto/qml/qqmlimport | |
parent | bd1c28a82c2ff955e0d154fac2e2df8d5a110dd7 (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.cpp | 42 |
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() |