forked from qt-creator/qt-creator
QmlDesigner: Fix tests for changing import in model
Change-Id: Ie09f4d77da460362deb068d2358dfb311d6428be Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This commit is contained in:
@@ -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();
|
||||
|
@@ -172,7 +172,7 @@ protected:
|
||||
inline static QSharedPointer<const QmlJS::SimpleReaderNode> simpleReaderNode;
|
||||
NiceMock<AbstractViewMock> viewMock;
|
||||
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId, "/path"};
|
||||
NiceMock<ModelResourceManagementMock> resourceManagementMock;
|
||||
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
||||
"Item",
|
||||
|
@@ -84,7 +84,7 @@ protected:
|
||||
|
||||
protected:
|
||||
QmlDesigner::SourceId sourceId = QmlDesigner::SourceId::create(10);
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{sourceId};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{sourceId, "/path"};
|
||||
NiceMock<PropertyComponentGeneratorMock> propertyGeneratorMock;
|
||||
QmlDesigner::PropertyEditorComponentGenerator generator{propertyGeneratorMock};
|
||||
QmlDesigner::ModuleId qtQuickModuleId = projectStorageMock.createModule("QtQuick",
|
||||
|
@@ -184,7 +184,7 @@ public:
|
||||
|
||||
protected:
|
||||
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId, "/path"};
|
||||
NiceMock<MockFunction<ModelNode(const ModelNode &)>> goIntoComponentMock;
|
||||
QmlDesigner::ModelPointer designerModel{
|
||||
QmlDesigner::Model::create(QmlDesigner::ProjectStorageDependencies{projectStorageMock,
|
||||
|
@@ -100,7 +100,7 @@ protected:
|
||||
|
||||
protected:
|
||||
NiceMock<SourcePathCacheMockWithPaths> pathCache{"/path/foo.qml"};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId, "/path"};
|
||||
QmlDesigner::Model model{{projectStorageMock, pathCache},
|
||||
"Item",
|
||||
{QmlDesigner::Import::createLibraryImport("QML"),
|
||||
|
@@ -42,7 +42,7 @@ protected:
|
||||
|
||||
protected:
|
||||
NiceMock<SourcePathCacheMockWithPaths> pathCache{"/path/foo.qml"};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId, "/path"};
|
||||
QmlDesigner::Model model{{projectStorageMock, pathCache},
|
||||
"Item",
|
||||
{QmlDesigner::Import::createLibraryImport("QML"),
|
||||
|
@@ -41,7 +41,7 @@ protected:
|
||||
inline static std::unique_ptr<StaticData> staticData;
|
||||
Sqlite::Database &database = staticData->database;
|
||||
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId, "/path"};
|
||||
NiceMock<ModelResourceManagementMock> resourceManagementMock;
|
||||
QmlDesigner::Imports imports = {QmlDesigner::Import::createLibraryImport("QtQuick")};
|
||||
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
||||
|
@@ -117,7 +117,7 @@ protected:
|
||||
|
||||
protected:
|
||||
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId, "/path"};
|
||||
NiceMock<ModelResourceManagementMock> 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}, {});
|
||||
|
@@ -16,7 +16,7 @@ class ModelNode : public testing::Test
|
||||
{
|
||||
protected:
|
||||
NiceMock<SourcePathCacheMockWithPaths> pathCache{"/path/foo.qml"};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId, "/path"};
|
||||
QmlDesigner::Model model{{projectStorageMock, pathCache}, "Item"};
|
||||
QmlDesigner::ModelNode rootNode = model.rootModelNode();
|
||||
};
|
||||
|
@@ -72,7 +72,7 @@ protected:
|
||||
protected:
|
||||
NiceMock<AbstractViewMock> viewMock;
|
||||
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId, "/path"};
|
||||
QmlDesigner::ModelResourceManagement management;
|
||||
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
||||
"Item",
|
||||
|
@@ -20,7 +20,7 @@ class ModelUtils : public ::testing::Test
|
||||
protected:
|
||||
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/model.qml"};
|
||||
QmlDesigner::SourceId sourceId = pathCacheMock.createSourceId("/path/foo.qml");
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId, "/path"};
|
||||
QmlDesigner::ModuleId moduleId = projectStorageMock.moduleId("QtQuick", ModuleKind::QmlLibrary);
|
||||
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
||||
"Item",
|
||||
|
@@ -74,7 +74,7 @@ protected:
|
||||
|
||||
protected:
|
||||
NiceMock<SourcePathCacheMockWithPaths> pathCache{"/path/foo.qml"};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId};
|
||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId, "/path"};
|
||||
QmlDesigner::ModelPointer model{
|
||||
QmlDesigner::Model::create(QmlDesigner::ProjectStorageDependencies{projectStorageMock,
|
||||
pathCache},
|
||||
|
Reference in New Issue
Block a user