aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2021-10-19 14:42:28 +0200
committerTim Jenssen <tim.jenssen@qt.io>2021-10-20 16:41:55 +0000
commitb4fcd05451dd35fd2f3abb0b73a66c82327d22fb (patch)
tree36004a3f7102f2966b6b58b7d2e3ab1d115a5d3d /tests
parentcb946ec3078312c3d29ec456805803e55c38717d (diff)
QmlDesigner: Introduce different modules for cpp, qml and directories
There are now different modules for qml, cpp and directory imports. Cpp imports are qml import append by "-cppnative". Task-number: QDS-5196 Change-Id: I599b224892c5ada0224a765d0bde8b32de20b061 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'tests')
-rw-r--r--tests/unit/unittest/projectstoragemock.h4
-rw-r--r--tests/unit/unittest/projectstorageupdater-test.cpp19
-rw-r--r--tests/unit/unittest/qmltypesparser-test.cpp37
-rw-r--r--tests/unit/unittest/qmltypesparsermock.h3
4 files changed, 32 insertions, 31 deletions
diff --git a/tests/unit/unittest/projectstoragemock.h b/tests/unit/unittest/projectstoragemock.h
index 0f4c40e56e..161a2a0fe1 100644
--- a/tests/unit/unittest/projectstoragemock.h
+++ b/tests/unit/unittest/projectstoragemock.h
@@ -51,8 +51,8 @@ public:
(QmlDesigner::SourceId sourceId),
(const, override));
- MOCK_METHOD(QmlDesigner::SourceIds,
- fetchSourceDependencieIds,
+ MOCK_METHOD(QmlDesigner::Storage::ProjectDatas,
+ fetchProjectDatas,
(QmlDesigner::SourceId sourceId),
(const, override));
diff --git a/tests/unit/unittest/projectstorageupdater-test.cpp b/tests/unit/unittest/projectstorageupdater-test.cpp
index 2b70d332c7..d63448063d 100644
--- a/tests/unit/unittest/projectstorageupdater-test.cpp
+++ b/tests/unit/unittest/projectstorageupdater-test.cpp
@@ -126,8 +126,10 @@ public:
ON_CALL(projectStorageMock, fetchFileStatus(Eq(qmlDirPathSourceId)))
.WillByDefault(Return(FileStatus{qmlDirPathSourceId, 2, 421}));
- ON_CALL(projectStorageMock, fetchSourceDependencieIds(Eq(qmlDirPathSourceId)))
- .WillByDefault(Return(QmlDesigner::SourceIds{qmltypesPathSourceId, qmltypes2PathSourceId}));
+ ON_CALL(projectStorageMock, fetchProjectDatas(Eq(qmlDirPathSourceId)))
+ .WillByDefault(
+ Return(QmlDesigner::Storage::ProjectDatas{{ModuleId{}, qmltypesPathSourceId},
+ {ModuleId{}, qmltypes2PathSourceId}}));
QString qmldir{"module Example\ntypeinfo example.qmltypes\n"};
ON_CALL(projectManagerMock, qtQmlDirs()).WillByDefault(Return(QStringList{"/path/qmldir"}));
@@ -300,8 +302,8 @@ TEST_F(ProjectStorageUpdater, ParseQmlTypes)
ON_CALL(fileSystemMock, contentAsQString(Eq(QString("/path/example2.qmltypes"))))
.WillByDefault(Return(qmltypes2));
- EXPECT_CALL(qmlTypesParserMock, parse(qmltypes, _, _, _, _));
- EXPECT_CALL(qmlTypesParserMock, parse(qmltypes2, _, _, _, _));
+ EXPECT_CALL(qmlTypesParserMock, parse(qmltypes, _, _, _));
+ EXPECT_CALL(qmlTypesParserMock, parse(qmltypes2, _, _, _));
updater.update();
}
@@ -328,8 +330,8 @@ TEST_F(ProjectStorageUpdater, SynchronizeQmlTypes)
QString qmltypes{"Module {\ndependencies: []}"};
ON_CALL(fileSystemMock, contentAsQString(Eq(QString("/path/example.qmltypes"))))
.WillByDefault(Return(qmltypes));
- ON_CALL(qmlTypesParserMock, parse(qmltypes, _, _, _, _))
- .WillByDefault([&](auto, auto &imports, auto &types, auto, auto) {
+ ON_CALL(qmlTypesParserMock, parse(qmltypes, _, _, _))
+ .WillByDefault([&](auto, auto &imports, auto &types, auto) {
types.push_back(objectType);
imports.push_back(import);
});
@@ -350,9 +352,8 @@ TEST_F(ProjectStorageUpdater, SynchronizeQmlTypesAreEmptyIfFileDoesNotChanged)
QString qmltypes{"Module {\ndependencies: []}"};
ON_CALL(fileSystemMock, contentAsQString(Eq(QString("/path/example.qmltypes"))))
.WillByDefault(Return(qmltypes));
- ON_CALL(qmlTypesParserMock, parse(qmltypes, _, _, _, _))
- .WillByDefault(
- [&](auto, auto &imports, auto &types, auto, auto) { types.push_back(objectType); });
+ ON_CALL(qmlTypesParserMock, parse(qmltypes, _, _, _))
+ .WillByDefault([&](auto, auto &, auto &types, auto) { types.push_back(objectType); });
ON_CALL(fileSystemMock, fileStatus(Eq(qmltypesPathSourceId)))
.WillByDefault(Return(FileStatus{qmltypesPathSourceId, 2, 421}));
ON_CALL(fileSystemMock, fileStatus(Eq(qmltypes2PathSourceId)))
diff --git a/tests/unit/unittest/qmltypesparser-test.cpp b/tests/unit/unittest/qmltypesparser-test.cpp
index 8fd4263d22..9de60a1807 100644
--- a/tests/unit/unittest/qmltypesparser-test.cpp
+++ b/tests/unit/unittest/qmltypesparser-test.cpp
@@ -173,6 +173,8 @@ protected:
Storage::Imports imports;
Storage::Types types;
SourceId qmltypesFileSourceId{sourcePathCache.sourceId("path/to/types.qmltypes")};
+ QmlDesigner::Storage::ProjectData projectData{storage.moduleId("QtQml-cppnative"),
+ qmltypesFileSourceId};
SourceContextId qmltypesFileSourceContextId{sourcePathCache.sourceContextId(qmltypesFileSourceId)};
ModuleId directoryModuleId{storage.moduleId("path/to/")};
};
@@ -184,21 +186,17 @@ TEST_F(QmlTypesParser, Imports)
dependencies:
["QtQuick 2.15", "QtQuick.Window 2.1", "QtFoo 6"]})"};
- parser.parse(source, imports, types, qmltypesFileSourceId, directoryModuleId);
+ parser.parse(source, imports, types, projectData);
ASSERT_THAT(
imports,
UnorderedElementsAre(
IsImport(storage.moduleId("QML"), Storage::Version{}, qmltypesFileSourceId),
- IsImport(storage.moduleId("QtQml"), Storage::Version{}, qmltypesFileSourceId),
IsImport(storage.moduleId("QtQml-cppnative"), Storage::Version{}, qmltypesFileSourceId),
- IsImport(storage.moduleId("QtQuick"), Storage::Version{2, 15}, qmltypesFileSourceId),
IsImport(storage.moduleId("QtQuick-cppnative"), Storage::Version{2, 15}, qmltypesFileSourceId),
- IsImport(storage.moduleId("QtQuick.Window"), Storage::Version{2, 1}, qmltypesFileSourceId),
IsImport(storage.moduleId("QtQuick.Window-cppnative"),
Storage::Version{2, 1},
qmltypesFileSourceId),
- IsImport(storage.moduleId("QtFoo"), Storage::Version{6}, qmltypesFileSourceId),
IsImport(storage.moduleId("QtFoo-cppnative"), Storage::Version{6}, qmltypesFileSourceId)));
}
@@ -210,7 +208,7 @@ TEST_F(QmlTypesParser, Types)
Component { name: "QQmlComponent"
prototype: "QObject"}})"};
- parser.parse(source, imports, types, qmltypesFileSourceId, directoryModuleId);
+ parser.parse(source, imports, types, projectData);
ASSERT_THAT(types,
UnorderedElementsAre(IsType("QObject",
@@ -228,17 +226,20 @@ TEST_F(QmlTypesParser, ExportedTypes)
QString source{R"(import QtQuick.tooling 1.2
Module{
Component { name: "QObject"
- exports: ["QtQml/QtObject 1.0", "QtQml/QtObject 2.1"]
+ exports: ["QML/QtObject 1.0", "QtQml/QtObject 2.1"]
}})"};
+ ModuleId qmlModuleId = storage.moduleId("QML");
+ ModuleId qtQmlModuleId = storage.moduleId("QtQml");
+ ModuleId qtQmlNativeModuleId = storage.moduleId("QtQml-cppnative");
- parser.parse(source, imports, types, qmltypesFileSourceId, directoryModuleId);
+ parser.parse(source, imports, types, projectData);
- ASSERT_THAT(
- types,
- ElementsAre(
- Field(&Storage::Type::exportedTypes,
- ElementsAre(IsExportedType(directoryModuleId, "QtObject", Storage::Version{1, 0}),
- IsExportedType(directoryModuleId, "QtObject", Storage::Version{2, 1})))));
+ ASSERT_THAT(types,
+ ElementsAre(Field(
+ &Storage::Type::exportedTypes,
+ ElementsAre(IsExportedType(qmlModuleId, "QtObject", Storage::Version{1, 0}),
+ IsExportedType(qtQmlModuleId, "QtObject", Storage::Version{2, 1}),
+ IsExportedType(qtQmlNativeModuleId, "QObject", Storage::Version{})))));
}
TEST_F(QmlTypesParser, Properties)
@@ -252,7 +253,7 @@ TEST_F(QmlTypesParser, Properties)
Property { name: "targets"; type: "QQuickItem"; isList: true; isReadonly: true; isPointer: true }
}})"};
- parser.parse(source, imports, types, qmltypesFileSourceId, directoryModuleId);
+ parser.parse(source, imports, types, projectData);
ASSERT_THAT(types,
ElementsAre(Field(
@@ -296,7 +297,7 @@ TEST_F(QmlTypesParser, Functions)
}
}})"};
- parser.parse(source, imports, types, qmltypesFileSourceId, directoryModuleId);
+ parser.parse(source, imports, types, projectData);
ASSERT_THAT(types,
ElementsAre(
@@ -337,7 +338,7 @@ TEST_F(QmlTypesParser, Signals)
}
}})"};
- parser.parse(source, imports, types, qmltypesFileSourceId, directoryModuleId);
+ parser.parse(source, imports, types, projectData);
ASSERT_THAT(types,
ElementsAre(Field(&Storage::Type::signalDeclarations,
@@ -375,7 +376,7 @@ TEST_F(QmlTypesParser, Enumerations)
}
}})"};
- parser.parse(source, imports, types, qmltypesFileSourceId, directoryModuleId);
+ parser.parse(source, imports, types, projectData);
ASSERT_THAT(types,
ElementsAre(
diff --git a/tests/unit/unittest/qmltypesparsermock.h b/tests/unit/unittest/qmltypesparsermock.h
index cfbb872984..6cf5271379 100644
--- a/tests/unit/unittest/qmltypesparsermock.h
+++ b/tests/unit/unittest/qmltypesparsermock.h
@@ -37,7 +37,6 @@ public:
(const QString &sourceContent,
QmlDesigner::Storage::Imports &imports,
QmlDesigner::Storage::Types &types,
- QmlDesigner::SourceId sourceId,
- QmlDesigner::ModuleId moduleId),
+ const QmlDesigner::Storage::ProjectData &projectData),
(override));
};