diff options
author | Marco Bubke <marco.bubke@qt.io> | 2021-10-19 14:42:28 +0200 |
---|---|---|
committer | Tim Jenssen <tim.jenssen@qt.io> | 2021-10-20 16:41:55 +0000 |
commit | b4fcd05451dd35fd2f3abb0b73a66c82327d22fb (patch) | |
tree | 36004a3f7102f2966b6b58b7d2e3ab1d115a5d3d /tests | |
parent | cb946ec3078312c3d29ec456805803e55c38717d (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.h | 4 | ||||
-rw-r--r-- | tests/unit/unittest/projectstorageupdater-test.cpp | 19 | ||||
-rw-r--r-- | tests/unit/unittest/qmltypesparser-test.cpp | 37 | ||||
-rw-r--r-- | tests/unit/unittest/qmltypesparsermock.h | 3 |
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)); }; |