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
|
class ProjectStorageMockWithQtQtuick : public ProjectStorageMock
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
ProjectStorageMockWithQtQtuick(QmlDesigner::SourceId sourceId)
|
ProjectStorageMockWithQtQtuick(QmlDesigner::SourceId sourceId,
|
||||||
|
Utils::SmallStringView localPathModuleName)
|
||||||
{
|
{
|
||||||
|
createModule(localPathModuleName, QmlDesigner::Storage::ModuleKind::PathLibrary);
|
||||||
setupQtQuick();
|
setupQtQuick();
|
||||||
setupQtQuickImportedTypeNameIds(sourceId);
|
setupQtQuickImportedTypeNameIds(sourceId);
|
||||||
setupCommonTypeCache();
|
setupCommonTypeCache();
|
||||||
|
@@ -172,7 +172,7 @@ protected:
|
|||||||
inline static QSharedPointer<const QmlJS::SimpleReaderNode> simpleReaderNode;
|
inline static QSharedPointer<const QmlJS::SimpleReaderNode> simpleReaderNode;
|
||||||
NiceMock<AbstractViewMock> viewMock;
|
NiceMock<AbstractViewMock> viewMock;
|
||||||
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
||||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId};
|
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId, "/path"};
|
||||||
NiceMock<ModelResourceManagementMock> resourceManagementMock;
|
NiceMock<ModelResourceManagementMock> resourceManagementMock;
|
||||||
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
||||||
"Item",
|
"Item",
|
||||||
|
@@ -84,7 +84,7 @@ protected:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
QmlDesigner::SourceId sourceId = QmlDesigner::SourceId::create(10);
|
QmlDesigner::SourceId sourceId = QmlDesigner::SourceId::create(10);
|
||||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{sourceId};
|
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{sourceId, "/path"};
|
||||||
NiceMock<PropertyComponentGeneratorMock> propertyGeneratorMock;
|
NiceMock<PropertyComponentGeneratorMock> propertyGeneratorMock;
|
||||||
QmlDesigner::PropertyEditorComponentGenerator generator{propertyGeneratorMock};
|
QmlDesigner::PropertyEditorComponentGenerator generator{propertyGeneratorMock};
|
||||||
QmlDesigner::ModuleId qtQuickModuleId = projectStorageMock.createModule("QtQuick",
|
QmlDesigner::ModuleId qtQuickModuleId = projectStorageMock.createModule("QtQuick",
|
||||||
|
@@ -184,7 +184,7 @@ public:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
||||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId};
|
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId, "/path"};
|
||||||
NiceMock<MockFunction<ModelNode(const ModelNode &)>> goIntoComponentMock;
|
NiceMock<MockFunction<ModelNode(const ModelNode &)>> goIntoComponentMock;
|
||||||
QmlDesigner::ModelPointer designerModel{
|
QmlDesigner::ModelPointer designerModel{
|
||||||
QmlDesigner::Model::create(QmlDesigner::ProjectStorageDependencies{projectStorageMock,
|
QmlDesigner::Model::create(QmlDesigner::ProjectStorageDependencies{projectStorageMock,
|
||||||
|
@@ -100,7 +100,7 @@ protected:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
NiceMock<SourcePathCacheMockWithPaths> pathCache{"/path/foo.qml"};
|
NiceMock<SourcePathCacheMockWithPaths> pathCache{"/path/foo.qml"};
|
||||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId};
|
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId, "/path"};
|
||||||
QmlDesigner::Model model{{projectStorageMock, pathCache},
|
QmlDesigner::Model model{{projectStorageMock, pathCache},
|
||||||
"Item",
|
"Item",
|
||||||
{QmlDesigner::Import::createLibraryImport("QML"),
|
{QmlDesigner::Import::createLibraryImport("QML"),
|
||||||
|
@@ -42,7 +42,7 @@ protected:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
NiceMock<SourcePathCacheMockWithPaths> pathCache{"/path/foo.qml"};
|
NiceMock<SourcePathCacheMockWithPaths> pathCache{"/path/foo.qml"};
|
||||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId};
|
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId, "/path"};
|
||||||
QmlDesigner::Model model{{projectStorageMock, pathCache},
|
QmlDesigner::Model model{{projectStorageMock, pathCache},
|
||||||
"Item",
|
"Item",
|
||||||
{QmlDesigner::Import::createLibraryImport("QML"),
|
{QmlDesigner::Import::createLibraryImport("QML"),
|
||||||
|
@@ -41,7 +41,7 @@ protected:
|
|||||||
inline static std::unique_ptr<StaticData> staticData;
|
inline static std::unique_ptr<StaticData> staticData;
|
||||||
Sqlite::Database &database = staticData->database;
|
Sqlite::Database &database = staticData->database;
|
||||||
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
||||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId};
|
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId, "/path"};
|
||||||
NiceMock<ModelResourceManagementMock> resourceManagementMock;
|
NiceMock<ModelResourceManagementMock> resourceManagementMock;
|
||||||
QmlDesigner::Imports imports = {QmlDesigner::Import::createLibraryImport("QtQuick")};
|
QmlDesigner::Imports imports = {QmlDesigner::Import::createLibraryImport("QtQuick")};
|
||||||
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
||||||
|
@@ -117,7 +117,7 @@ protected:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
||||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId};
|
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId, "/path"};
|
||||||
NiceMock<ModelResourceManagementMock> resourceManagementMock;
|
NiceMock<ModelResourceManagementMock> resourceManagementMock;
|
||||||
QmlDesigner::Imports imports = {QmlDesigner::Import::createLibraryImport("QtQuick")};
|
QmlDesigner::Imports imports = {QmlDesigner::Import::createLibraryImport("QtQuick")};
|
||||||
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
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));
|
ON_CALL(pathCacheMock, sourceId(Eq("/path/foo/."))).WillByDefault(Return(directoryPathId));
|
||||||
auto qtQuickModuleId = projectStorageMock.moduleId("QtQuick", ModuleKind::QmlLibrary);
|
auto qtQuickModuleId = projectStorageMock.moduleId("QtQuick", ModuleKind::QmlLibrary);
|
||||||
auto qtQmlModelsModuleId = projectStorageMock.moduleId("QtQml.Models", 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 qtQuickImport = QmlDesigner::Import::createLibraryImport("QtQuick", "2.1");
|
||||||
auto qtQmlModelsImport = QmlDesigner::Import::createLibraryImport("QtQml.Models");
|
auto qtQmlModelsImport = QmlDesigner::Import::createLibraryImport("QtQml.Models");
|
||||||
auto directoryImport = QmlDesigner::Import::createFileImport("foo");
|
auto directoryImport = QmlDesigner::Import::createFileImport("foo");
|
||||||
@@ -771,7 +772,8 @@ TEST_F(Model, change_imports_is_synchronizing_imports_with_project_storage)
|
|||||||
EXPECT_CALL(projectStorageMock,
|
EXPECT_CALL(projectStorageMock,
|
||||||
synchronizeDocumentImports(
|
synchronizeDocumentImports(
|
||||||
UnorderedElementsAre(IsImport(qtQuickModuleId, filePathId, 2, 1),
|
UnorderedElementsAre(IsImport(qtQuickModuleId, filePathId, 2, 1),
|
||||||
IsImport(qtQmlModelsModuleId, filePathId, -1, -1)),
|
IsImport(qtQmlModelsModuleId, filePathId, -1, -1),
|
||||||
|
IsImport(localPathModuleId, filePathId, -1, -1)),
|
||||||
filePathId));
|
filePathId));
|
||||||
|
|
||||||
model.changeImports({qtQuickImport, qtQmlModelsImport}, {});
|
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));
|
ON_CALL(pathCacheMock, sourceId(Eq("/path/foo/."))).WillByDefault(Return(directoryPathId));
|
||||||
auto qtQuickModuleId = projectStorageMock.moduleId("QtQuick", ModuleKind::QmlLibrary);
|
auto qtQuickModuleId = projectStorageMock.moduleId("QtQuick", ModuleKind::QmlLibrary);
|
||||||
auto qtQmlModelsModuleId = projectStorageMock.moduleId("QtQml.Models", 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 qtQuickImport = QmlDesigner::Import::createLibraryImport("QtQuick", "2.1");
|
||||||
auto qtQmlModelsImport = QmlDesigner::Import::createLibraryImport("QtQml.Models");
|
auto qtQmlModelsImport = QmlDesigner::Import::createLibraryImport("QtQml.Models");
|
||||||
auto directoryImport = QmlDesigner::Import::createFileImport("foo");
|
auto directoryImport = QmlDesigner::Import::createFileImport("foo");
|
||||||
@@ -806,7 +809,8 @@ TEST_F(Model, change_imports_is_adding_import_in_project_storage)
|
|||||||
EXPECT_CALL(projectStorageMock,
|
EXPECT_CALL(projectStorageMock,
|
||||||
synchronizeDocumentImports(
|
synchronizeDocumentImports(
|
||||||
UnorderedElementsAre(IsImport(qtQuickModuleId, filePathId, 2, 1),
|
UnorderedElementsAre(IsImport(qtQuickModuleId, filePathId, 2, 1),
|
||||||
IsImport(qtQmlModelsModuleId, filePathId, -1, -1)),
|
IsImport(qtQmlModelsModuleId, filePathId, -1, -1),
|
||||||
|
IsImport(localPathModuleId, filePathId, -1, -1)),
|
||||||
filePathId));
|
filePathId));
|
||||||
|
|
||||||
model.changeImports({qtQuickImport}, {});
|
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);
|
QmlDesigner::SourceId directoryPathId = QmlDesigner::SourceId::create(2);
|
||||||
ON_CALL(pathCacheMock, sourceId(Eq("/path/foo/."))).WillByDefault(Return(directoryPathId));
|
ON_CALL(pathCacheMock, sourceId(Eq("/path/foo/."))).WillByDefault(Return(directoryPathId));
|
||||||
auto qtQmlModelsModuleId = projectStorageMock.moduleId("QtQml.Models", 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 qtQuickImport = QmlDesigner::Import::createLibraryImport("QtQuick", "2.1");
|
||||||
auto qtQmlModelsImport = QmlDesigner::Import::createLibraryImport("QtQml.Models");
|
auto qtQmlModelsImport = QmlDesigner::Import::createLibraryImport("QtQml.Models");
|
||||||
auto directoryImport = QmlDesigner::Import::createFileImport("foo");
|
auto directoryImport = QmlDesigner::Import::createFileImport("foo");
|
||||||
model.changeImports({qtQuickImport, qtQmlModelsImport}, {});
|
model.changeImports({qtQuickImport, qtQmlModelsImport}, {});
|
||||||
|
|
||||||
EXPECT_CALL(projectStorageMock,
|
EXPECT_CALL(projectStorageMock,
|
||||||
synchronizeDocumentImports(UnorderedElementsAre(
|
synchronizeDocumentImports(
|
||||||
IsImport(qtQmlModelsModuleId, filePathId, -1, -1)),
|
UnorderedElementsAre(IsImport(qtQmlModelsModuleId, filePathId, -1, -1),
|
||||||
filePathId));
|
IsImport(localPathModuleId, filePathId, -1, -1)),
|
||||||
|
filePathId));
|
||||||
|
|
||||||
model.changeImports({}, {qtQuickImport});
|
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));
|
ON_CALL(pathCacheMock, sourceId(Eq("/path/foo/."))).WillByDefault(Return(directoryPathId));
|
||||||
auto qtQuickModuleId = projectStorageMock.moduleId("QtQuick", ModuleKind::QmlLibrary);
|
auto qtQuickModuleId = projectStorageMock.moduleId("QtQuick", ModuleKind::QmlLibrary);
|
||||||
auto qtQmlModelsModuleId = projectStorageMock.moduleId("QtQml.Models", 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 qtQuickImport = QmlDesigner::Import::createLibraryImport("QtQuick", "2.1");
|
||||||
auto qtQmlModelsImport = QmlDesigner::Import::createLibraryImport("QtQml.Models");
|
auto qtQmlModelsImport = QmlDesigner::Import::createLibraryImport("QtQml.Models");
|
||||||
auto directoryImport = QmlDesigner::Import::createFileImport("foo");
|
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,
|
EXPECT_CALL(projectStorageMock,
|
||||||
synchronizeDocumentImports(
|
synchronizeDocumentImports(
|
||||||
UnorderedElementsAre(IsImport(qtQuickModuleId, filePathId, 3, 1),
|
UnorderedElementsAre(IsImport(qtQuickModuleId, filePathId, 3, 1),
|
||||||
IsImport(qtQmlModelsModuleId, filePathId, -1, -1)),
|
IsImport(qtQmlModelsModuleId, filePathId, -1, -1),
|
||||||
|
IsImport(localPathModuleId, filePathId, -1, -1)),
|
||||||
filePathId));
|
filePathId));
|
||||||
|
|
||||||
model.changeImports({qtQuickImport}, {});
|
model.changeImports({qtQuickImport}, {});
|
||||||
|
@@ -16,7 +16,7 @@ class ModelNode : public testing::Test
|
|||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
NiceMock<SourcePathCacheMockWithPaths> pathCache{"/path/foo.qml"};
|
NiceMock<SourcePathCacheMockWithPaths> pathCache{"/path/foo.qml"};
|
||||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId};
|
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId, "/path"};
|
||||||
QmlDesigner::Model model{{projectStorageMock, pathCache}, "Item"};
|
QmlDesigner::Model model{{projectStorageMock, pathCache}, "Item"};
|
||||||
QmlDesigner::ModelNode rootNode = model.rootModelNode();
|
QmlDesigner::ModelNode rootNode = model.rootModelNode();
|
||||||
};
|
};
|
||||||
|
@@ -72,7 +72,7 @@ protected:
|
|||||||
protected:
|
protected:
|
||||||
NiceMock<AbstractViewMock> viewMock;
|
NiceMock<AbstractViewMock> viewMock;
|
||||||
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/foo.qml"};
|
||||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId};
|
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCacheMock.sourceId, "/path"};
|
||||||
QmlDesigner::ModelResourceManagement management;
|
QmlDesigner::ModelResourceManagement management;
|
||||||
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
||||||
"Item",
|
"Item",
|
||||||
|
@@ -20,7 +20,7 @@ class ModelUtils : public ::testing::Test
|
|||||||
protected:
|
protected:
|
||||||
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/model.qml"};
|
NiceMock<SourcePathCacheMockWithPaths> pathCacheMock{"/path/model.qml"};
|
||||||
QmlDesigner::SourceId sourceId = pathCacheMock.createSourceId("/path/foo.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::ModuleId moduleId = projectStorageMock.moduleId("QtQuick", ModuleKind::QmlLibrary);
|
||||||
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
QmlDesigner::Model model{{projectStorageMock, pathCacheMock},
|
||||||
"Item",
|
"Item",
|
||||||
|
@@ -74,7 +74,7 @@ protected:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
NiceMock<SourcePathCacheMockWithPaths> pathCache{"/path/foo.qml"};
|
NiceMock<SourcePathCacheMockWithPaths> pathCache{"/path/foo.qml"};
|
||||||
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId};
|
NiceMock<ProjectStorageMockWithQtQtuick> projectStorageMock{pathCache.sourceId, "/path"};
|
||||||
QmlDesigner::ModelPointer model{
|
QmlDesigner::ModelPointer model{
|
||||||
QmlDesigner::Model::create(QmlDesigner::ProjectStorageDependencies{projectStorageMock,
|
QmlDesigner::Model::create(QmlDesigner::ProjectStorageDependencies{projectStorageMock,
|
||||||
pathCache},
|
pathCache},
|
||||||
|
Reference in New Issue
Block a user