From b98a67ee9efbd7d34e059221e8a4e568424a56fc Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Thu, 20 Jun 2024 15:09:23 +0200 Subject: [PATCH] QmlDesigner: Fix tests for changing import in model Change-Id: Ie09f4d77da460362deb068d2358dfb311d6428be Reviewed-by: Miikka Heikkinen --- tests/unit/tests/mocks/projectstoragemock.h | 4 +++- .../propertycomponentgenerator-test.cpp | 2 +- .../propertyeditorcomponentgenerator-test.cpp | 2 +- .../listmodeleditor/listmodeleditor-test.cpp | 2 +- .../unittests/metainfo/nodemetainfo-test.cpp | 2 +- .../metainfo/propertymetainfo-test.cpp | 2 +- .../auxiliarypropertystorageview-test.cpp | 2 +- .../unit/tests/unittests/model/model-test.cpp | 22 +++++++++++++------ .../tests/unittests/model/modelnode-test.cpp | 2 +- .../model/modelresourcemanagement-test.cpp | 2 +- .../tests/unittests/model/modelutils-test.cpp | 2 +- .../unittests/model/nodelistproperty-test.cpp | 2 +- 12 files changed, 28 insertions(+), 18 deletions(-) diff --git a/tests/unit/tests/mocks/projectstoragemock.h b/tests/unit/tests/mocks/projectstoragemock.h index 8d9c3381b2e..ed60f7b5cf4 100644 --- a/tests/unit/tests/mocks/projectstoragemock.h +++ b/tests/unit/tests/mocks/projectstoragemock.h @@ -367,8 +367,10 @@ public: class ProjectStorageMockWithQtQtuick : public ProjectStorageMock { public: - ProjectStorageMockWithQtQtuick(QmlDesigner::SourceId sourceId) + ProjectStorageMockWithQtQtuick(QmlDesigner::SourceId sourceId, + Utils::SmallStringView localPathModuleName) { + createModule(localPathModuleName, QmlDesigner::Storage::ModuleKind::PathLibrary); setupQtQuick(); setupQtQuickImportedTypeNameIds(sourceId); setupCommonTypeCache(); diff --git a/tests/unit/tests/unittests/componentcore/propertycomponentgenerator-test.cpp b/tests/unit/tests/unittests/componentcore/propertycomponentgenerator-test.cpp index 3255a64a0c7..4358aa0de71 100644 --- a/tests/unit/tests/unittests/componentcore/propertycomponentgenerator-test.cpp +++ b/tests/unit/tests/unittests/componentcore/propertycomponentgenerator-test.cpp @@ -172,7 +172,7 @@ protected: inline static QSharedPointer simpleReaderNode; NiceMock viewMock; NiceMock pathCacheMock{"/path/foo.qml"}; - NiceMock projectStorageMock{pathCacheMock.sourceId}; + NiceMock projectStorageMock{pathCacheMock.sourceId, "/path"}; NiceMock resourceManagementMock; QmlDesigner::Model model{{projectStorageMock, pathCacheMock}, "Item", diff --git a/tests/unit/tests/unittests/componentcore/propertyeditorcomponentgenerator-test.cpp b/tests/unit/tests/unittests/componentcore/propertyeditorcomponentgenerator-test.cpp index 398c54bfad4..2685009c7ad 100644 --- a/tests/unit/tests/unittests/componentcore/propertyeditorcomponentgenerator-test.cpp +++ b/tests/unit/tests/unittests/componentcore/propertyeditorcomponentgenerator-test.cpp @@ -84,7 +84,7 @@ protected: protected: QmlDesigner::SourceId sourceId = QmlDesigner::SourceId::create(10); - NiceMock projectStorageMock{sourceId}; + NiceMock projectStorageMock{sourceId, "/path"}; NiceMock propertyGeneratorMock; QmlDesigner::PropertyEditorComponentGenerator generator{propertyGeneratorMock}; QmlDesigner::ModuleId qtQuickModuleId = projectStorageMock.createModule("QtQuick", diff --git a/tests/unit/tests/unittests/listmodeleditor/listmodeleditor-test.cpp b/tests/unit/tests/unittests/listmodeleditor/listmodeleditor-test.cpp index f8bef106acf..5c817d80ec8 100644 --- a/tests/unit/tests/unittests/listmodeleditor/listmodeleditor-test.cpp +++ b/tests/unit/tests/unittests/listmodeleditor/listmodeleditor-test.cpp @@ -184,7 +184,7 @@ public: protected: NiceMock pathCacheMock{"/path/foo.qml"}; - NiceMock projectStorageMock{pathCacheMock.sourceId}; + NiceMock projectStorageMock{pathCacheMock.sourceId, "/path"}; NiceMock> goIntoComponentMock; QmlDesigner::ModelPointer designerModel{ QmlDesigner::Model::create(QmlDesigner::ProjectStorageDependencies{projectStorageMock, diff --git a/tests/unit/tests/unittests/metainfo/nodemetainfo-test.cpp b/tests/unit/tests/unittests/metainfo/nodemetainfo-test.cpp index c96def356ab..f9a83cc6089 100644 --- a/tests/unit/tests/unittests/metainfo/nodemetainfo-test.cpp +++ b/tests/unit/tests/unittests/metainfo/nodemetainfo-test.cpp @@ -100,7 +100,7 @@ protected: protected: NiceMock pathCache{"/path/foo.qml"}; - NiceMock projectStorageMock{pathCache.sourceId}; + NiceMock projectStorageMock{pathCache.sourceId, "/path"}; QmlDesigner::Model model{{projectStorageMock, pathCache}, "Item", {QmlDesigner::Import::createLibraryImport("QML"), diff --git a/tests/unit/tests/unittests/metainfo/propertymetainfo-test.cpp b/tests/unit/tests/unittests/metainfo/propertymetainfo-test.cpp index d2ec90b7a81..e0da900f5e9 100644 --- a/tests/unit/tests/unittests/metainfo/propertymetainfo-test.cpp +++ b/tests/unit/tests/unittests/metainfo/propertymetainfo-test.cpp @@ -42,7 +42,7 @@ protected: protected: NiceMock pathCache{"/path/foo.qml"}; - NiceMock projectStorageMock{pathCache.sourceId}; + NiceMock projectStorageMock{pathCache.sourceId, "/path"}; QmlDesigner::Model model{{projectStorageMock, pathCache}, "Item", {QmlDesigner::Import::createLibraryImport("QML"), diff --git a/tests/unit/tests/unittests/model/auxiliarypropertystorageview-test.cpp b/tests/unit/tests/unittests/model/auxiliarypropertystorageview-test.cpp index 62f99e89d57..61fcce49bb3 100644 --- a/tests/unit/tests/unittests/model/auxiliarypropertystorageview-test.cpp +++ b/tests/unit/tests/unittests/model/auxiliarypropertystorageview-test.cpp @@ -41,7 +41,7 @@ protected: inline static std::unique_ptr staticData; Sqlite::Database &database = staticData->database; NiceMock pathCacheMock{"/path/foo.qml"}; - NiceMock projectStorageMock{pathCacheMock.sourceId}; + NiceMock projectStorageMock{pathCacheMock.sourceId, "/path"}; NiceMock resourceManagementMock; QmlDesigner::Imports imports = {QmlDesigner::Import::createLibraryImport("QtQuick")}; QmlDesigner::Model model{{projectStorageMock, pathCacheMock}, diff --git a/tests/unit/tests/unittests/model/model-test.cpp b/tests/unit/tests/unittests/model/model-test.cpp index 227360c01f6..c0572cb1553 100644 --- a/tests/unit/tests/unittests/model/model-test.cpp +++ b/tests/unit/tests/unittests/model/model-test.cpp @@ -117,7 +117,7 @@ protected: protected: NiceMock pathCacheMock{"/path/foo.qml"}; - NiceMock projectStorageMock{pathCacheMock.sourceId}; + NiceMock projectStorageMock{pathCacheMock.sourceId, "/path"}; NiceMock resourceManagementMock; QmlDesigner::Imports imports = {QmlDesigner::Import::createLibraryImport("QtQuick")}; QmlDesigner::Model model{{projectStorageMock, pathCacheMock}, @@ -764,6 +764,7 @@ TEST_F(Model, change_imports_is_synchronizing_imports_with_project_storage) ON_CALL(pathCacheMock, sourceId(Eq("/path/foo/."))).WillByDefault(Return(directoryPathId)); auto qtQuickModuleId = projectStorageMock.moduleId("QtQuick", ModuleKind::QmlLibrary); auto qtQmlModelsModuleId = projectStorageMock.moduleId("QtQml.Models", ModuleKind::QmlLibrary); + auto localPathModuleId = projectStorageMock.moduleId("/path", ModuleKind::PathLibrary); auto qtQuickImport = QmlDesigner::Import::createLibraryImport("QtQuick", "2.1"); auto qtQmlModelsImport = QmlDesigner::Import::createLibraryImport("QtQml.Models"); auto directoryImport = QmlDesigner::Import::createFileImport("foo"); @@ -771,7 +772,8 @@ TEST_F(Model, change_imports_is_synchronizing_imports_with_project_storage) EXPECT_CALL(projectStorageMock, synchronizeDocumentImports( UnorderedElementsAre(IsImport(qtQuickModuleId, filePathId, 2, 1), - IsImport(qtQmlModelsModuleId, filePathId, -1, -1)), + IsImport(qtQmlModelsModuleId, filePathId, -1, -1), + IsImport(localPathModuleId, filePathId, -1, -1)), filePathId)); model.changeImports({qtQuickImport, qtQmlModelsImport}, {}); @@ -798,6 +800,7 @@ TEST_F(Model, change_imports_is_adding_import_in_project_storage) ON_CALL(pathCacheMock, sourceId(Eq("/path/foo/."))).WillByDefault(Return(directoryPathId)); auto qtQuickModuleId = projectStorageMock.moduleId("QtQuick", ModuleKind::QmlLibrary); auto qtQmlModelsModuleId = projectStorageMock.moduleId("QtQml.Models", ModuleKind::QmlLibrary); + auto localPathModuleId = projectStorageMock.moduleId("/path", ModuleKind::PathLibrary); auto qtQuickImport = QmlDesigner::Import::createLibraryImport("QtQuick", "2.1"); auto qtQmlModelsImport = QmlDesigner::Import::createLibraryImport("QtQml.Models"); auto directoryImport = QmlDesigner::Import::createFileImport("foo"); @@ -806,7 +809,8 @@ TEST_F(Model, change_imports_is_adding_import_in_project_storage) EXPECT_CALL(projectStorageMock, synchronizeDocumentImports( UnorderedElementsAre(IsImport(qtQuickModuleId, filePathId, 2, 1), - IsImport(qtQmlModelsModuleId, filePathId, -1, -1)), + IsImport(qtQmlModelsModuleId, filePathId, -1, -1), + IsImport(localPathModuleId, filePathId, -1, -1)), filePathId)); model.changeImports({qtQuickImport}, {}); @@ -817,15 +821,17 @@ TEST_F(Model, change_imports_is_removing_import_in_project_storage) QmlDesigner::SourceId directoryPathId = QmlDesigner::SourceId::create(2); ON_CALL(pathCacheMock, sourceId(Eq("/path/foo/."))).WillByDefault(Return(directoryPathId)); auto qtQmlModelsModuleId = projectStorageMock.moduleId("QtQml.Models", ModuleKind::QmlLibrary); + auto localPathModuleId = projectStorageMock.moduleId("/path", ModuleKind::PathLibrary); auto qtQuickImport = QmlDesigner::Import::createLibraryImport("QtQuick", "2.1"); auto qtQmlModelsImport = QmlDesigner::Import::createLibraryImport("QtQml.Models"); auto directoryImport = QmlDesigner::Import::createFileImport("foo"); model.changeImports({qtQuickImport, qtQmlModelsImport}, {}); EXPECT_CALL(projectStorageMock, - synchronizeDocumentImports(UnorderedElementsAre( - IsImport(qtQmlModelsModuleId, filePathId, -1, -1)), - filePathId)); + synchronizeDocumentImports( + UnorderedElementsAre(IsImport(qtQmlModelsModuleId, filePathId, -1, -1), + IsImport(localPathModuleId, filePathId, -1, -1)), + filePathId)); model.changeImports({}, {qtQuickImport}); } @@ -851,6 +857,7 @@ TEST_F(Model, change_imports_is_changing_import_version_with_project_storage) ON_CALL(pathCacheMock, sourceId(Eq("/path/foo/."))).WillByDefault(Return(directoryPathId)); auto qtQuickModuleId = projectStorageMock.moduleId("QtQuick", ModuleKind::QmlLibrary); auto qtQmlModelsModuleId = projectStorageMock.moduleId("QtQml.Models", ModuleKind::QmlLibrary); + auto localPathModuleId = projectStorageMock.moduleId("/path", ModuleKind::PathLibrary); auto qtQuickImport = QmlDesigner::Import::createLibraryImport("QtQuick", "2.1"); auto qtQmlModelsImport = QmlDesigner::Import::createLibraryImport("QtQml.Models"); auto directoryImport = QmlDesigner::Import::createFileImport("foo"); @@ -860,7 +867,8 @@ TEST_F(Model, change_imports_is_changing_import_version_with_project_storage) EXPECT_CALL(projectStorageMock, synchronizeDocumentImports( UnorderedElementsAre(IsImport(qtQuickModuleId, filePathId, 3, 1), - IsImport(qtQmlModelsModuleId, filePathId, -1, -1)), + IsImport(qtQmlModelsModuleId, filePathId, -1, -1), + IsImport(localPathModuleId, filePathId, -1, -1)), filePathId)); model.changeImports({qtQuickImport}, {}); diff --git a/tests/unit/tests/unittests/model/modelnode-test.cpp b/tests/unit/tests/unittests/model/modelnode-test.cpp index a93a56952f7..8c010ea526b 100644 --- a/tests/unit/tests/unittests/model/modelnode-test.cpp +++ b/tests/unit/tests/unittests/model/modelnode-test.cpp @@ -16,7 +16,7 @@ class ModelNode : public testing::Test { protected: NiceMock pathCache{"/path/foo.qml"}; - NiceMock projectStorageMock{pathCache.sourceId}; + NiceMock projectStorageMock{pathCache.sourceId, "/path"}; QmlDesigner::Model model{{projectStorageMock, pathCache}, "Item"}; QmlDesigner::ModelNode rootNode = model.rootModelNode(); }; diff --git a/tests/unit/tests/unittests/model/modelresourcemanagement-test.cpp b/tests/unit/tests/unittests/model/modelresourcemanagement-test.cpp index fd3d3c70c35..60ccee8aeb7 100644 --- a/tests/unit/tests/unittests/model/modelresourcemanagement-test.cpp +++ b/tests/unit/tests/unittests/model/modelresourcemanagement-test.cpp @@ -72,7 +72,7 @@ protected: protected: NiceMock viewMock; NiceMock pathCacheMock{"/path/foo.qml"}; - NiceMock projectStorageMock{pathCacheMock.sourceId}; + NiceMock projectStorageMock{pathCacheMock.sourceId, "/path"}; QmlDesigner::ModelResourceManagement management; QmlDesigner::Model model{{projectStorageMock, pathCacheMock}, "Item", diff --git a/tests/unit/tests/unittests/model/modelutils-test.cpp b/tests/unit/tests/unittests/model/modelutils-test.cpp index 2d49c6c94e6..89a062801cd 100644 --- a/tests/unit/tests/unittests/model/modelutils-test.cpp +++ b/tests/unit/tests/unittests/model/modelutils-test.cpp @@ -20,7 +20,7 @@ class ModelUtils : public ::testing::Test protected: NiceMock pathCacheMock{"/path/model.qml"}; QmlDesigner::SourceId sourceId = pathCacheMock.createSourceId("/path/foo.qml"); - NiceMock projectStorageMock{pathCacheMock.sourceId}; + NiceMock projectStorageMock{pathCacheMock.sourceId, "/path"}; QmlDesigner::ModuleId moduleId = projectStorageMock.moduleId("QtQuick", ModuleKind::QmlLibrary); QmlDesigner::Model model{{projectStorageMock, pathCacheMock}, "Item", diff --git a/tests/unit/tests/unittests/model/nodelistproperty-test.cpp b/tests/unit/tests/unittests/model/nodelistproperty-test.cpp index 238e2f5d158..ef87369811b 100644 --- a/tests/unit/tests/unittests/model/nodelistproperty-test.cpp +++ b/tests/unit/tests/unittests/model/nodelistproperty-test.cpp @@ -74,7 +74,7 @@ protected: protected: NiceMock pathCache{"/path/foo.qml"}; - NiceMock projectStorageMock{pathCache.sourceId}; + NiceMock projectStorageMock{pathCache.sourceId, "/path"}; QmlDesigner::ModelPointer model{ QmlDesigner::Model::create(QmlDesigner::ProjectStorageDependencies{projectStorageMock, pathCache},