QmlDesigner: Move annotation tests

Change-Id: I4c175b969721805f9fd7a9c132c52f722f31cc5a
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This commit is contained in:
Marco Bubke
2025-05-15 16:48:56 +02:00
parent 7eddd735bf
commit 9b5834d503

View File

@@ -1255,7 +1255,8 @@ public:
SourceId qmlDirPathSourceId = sourcePathCache.sourceId("/path/qmldir"); SourceId qmlDirPathSourceId = sourcePathCache.sourceId("/path/qmldir");
DirectoryPathId directoryPathId = qmlDirPathSourceId.directoryPathId(); DirectoryPathId directoryPathId = qmlDirPathSourceId.directoryPathId();
SourceId directoryPathSourceId = SourceId::create(directoryPathId, QmlDesigner::FileNameId{}); SourceId directoryPathSourceId = SourceId::create(directoryPathId, QmlDesigner::FileNameId{});
SourceId annotationDirectorySourceId = createDirectorySourceId("/path/designer"); DirectoryPathId annotationDirectoryId = sourcePathCache.directoryPathId("/path/designer");
SourceId annotationDirectorySourceId = SourceId::create(annotationDirectoryId, FileNameId{});
ModuleId qmlModuleId{storage.moduleId("Qml", ModuleKind::QmlLibrary)}; ModuleId qmlModuleId{storage.moduleId("Qml", ModuleKind::QmlLibrary)};
ModuleId exampleModuleId{storage.moduleId("Example", ModuleKind::QmlLibrary)}; ModuleId exampleModuleId{storage.moduleId("Example", ModuleKind::QmlLibrary)};
ModuleId exampleCppNativeModuleId{storage.moduleId("Example", ModuleKind::CppLibrary)}; ModuleId exampleCppNativeModuleId{storage.moduleId("Example", ModuleKind::CppLibrary)};
@@ -1268,7 +1269,7 @@ public:
{ExportedType{exampleModuleId, "Object"}, ExportedType{exampleModuleId, "Obj"}}}; {ExportedType{exampleModuleId, "Object"}, ExportedType{exampleModuleId, "Obj"}}};
}; };
using ChangeQmlTypesParameters = std::tuple<Update, FileState, FileState, FileState>; using ChangeQmlTypesParameters = std::tuple<Update, FileState, FileState, FileState, FileState>;
class synchronize_changed_qml_types : public synchronize_qml_types, class synchronize_changed_qml_types : public synchronize_qml_types,
public testing::WithParamInterface<ChangeQmlTypesParameters> public testing::WithParamInterface<ChangeQmlTypesParameters>
@@ -1278,6 +1279,7 @@ public:
: state{std::get<1>(GetParam())} : state{std::get<1>(GetParam())}
, directoryState{std::get<2>(GetParam())} , directoryState{std::get<2>(GetParam())}
, qmldirState{std::get<3>(GetParam())} , qmldirState{std::get<3>(GetParam())}
, annotationDirectoryState{std::get<4>(GetParam())}
, update{std::get<0>(GetParam())} , update{std::get<0>(GetParam())}
{ {
@@ -1295,6 +1297,7 @@ public:
FileState state; FileState state;
FileState directoryState; FileState directoryState;
FileState qmldirState; FileState qmldirState;
FileState annotationDirectoryState;
const Update &update; const Update &update;
}; };
@@ -1317,6 +1320,10 @@ auto change_qml_types_parameters_printer =
name += "_qmldir"; name += "_qmldir";
name += toString(std::get<4>(info.param));
name += "_annotation";
return name; return name;
}; };
@@ -1326,20 +1333,37 @@ INSTANTIATE_TEST_SUITE_P(ProjectStorageUpdater,
Update{.projectDirectory = "/path"}), Update{.projectDirectory = "/path"}),
Values(FileState::Added, FileState::Changed), Values(FileState::Added, FileState::Changed),
Values(FileState::Changed, FileState::Unchanged), Values(FileState::Changed, FileState::Unchanged),
Values(FileState::Changed, FileState::Unchanged)), Values(FileState::Changed, FileState::Unchanged),
Values(FileState::NotExistsUnchanged,
FileState::Added,
FileState::Unchanged,
FileState::Changed)),
change_qml_types_parameters_printer); change_qml_types_parameters_printer);
TEST_P(synchronize_changed_qml_types, from_qt_directory_update_types) TEST_P(synchronize_changed_qml_types, from_qt_directory_update_imports)
{ {
setFiles(directoryState, {directoryPathSourceId}); setFiles(directoryState, {directoryPathSourceId});
setFiles(annotationDirectoryState, {annotationDirectorySourceId});
setFiles(qmldirState, {qmlDirPathSourceId}); setFiles(qmldirState, {qmlDirPathSourceId});
setFiles(state, {qmltypesPathSourceId}); setFiles(state, {qmltypesPathSourceId});
EXPECT_CALL(projectStorageMock, EXPECT_CALL(projectStorageMock,
synchronize(AllOf(Field("SynchronizationPackage::imports", synchronize(AllOf(Field("SynchronizationPackage::imports",
&SynchronizationPackage::imports, &SynchronizationPackage::imports,
ElementsAre(import)), ElementsAre(import)))));
Field("SynchronizationPackage::types",
updater.update(update);
}
TEST_P(synchronize_changed_qml_types, from_qt_directory_update_types)
{
setFiles(directoryState, {directoryPathSourceId});
setFiles(annotationDirectoryState, {annotationDirectorySourceId});
setFiles(qmldirState, {qmlDirPathSourceId});
setFiles(state, {qmltypesPathSourceId});
EXPECT_CALL(projectStorageMock,
synchronize(AllOf(Field("SynchronizationPackage::types",
&SynchronizationPackage::types, &SynchronizationPackage::types,
ElementsAre(Eq(objectType))), ElementsAre(Eq(objectType))),
Field("SynchronizationPackage::updatedSourceIds", Field("SynchronizationPackage::updatedSourceIds",
@@ -1352,6 +1376,7 @@ TEST_P(synchronize_changed_qml_types, from_qt_directory_update_types)
TEST_P(synchronize_changed_qml_types, from_qt_directory_update_file_status) TEST_P(synchronize_changed_qml_types, from_qt_directory_update_file_status)
{ {
setFiles(directoryState, {directoryPathSourceId}); setFiles(directoryState, {directoryPathSourceId});
setFiles(annotationDirectoryState, {annotationDirectorySourceId});
setFiles(qmldirState, {qmlDirPathSourceId}); setFiles(qmldirState, {qmlDirPathSourceId});
setFiles(state, {qmltypesPathSourceId}); setFiles(state, {qmltypesPathSourceId});
@@ -1370,6 +1395,7 @@ TEST_P(synchronize_changed_qml_types, from_qt_directory_update_directory_infos)
{ {
bool directoryUnchanged = directoryState == FileState::Unchanged; bool directoryUnchanged = directoryState == FileState::Unchanged;
setFiles(directoryState, {directoryPathSourceId}); setFiles(directoryState, {directoryPathSourceId});
setFiles(annotationDirectoryState, {annotationDirectorySourceId});
setFiles(qmldirState, {qmlDirPathSourceId}); setFiles(qmldirState, {qmlDirPathSourceId});
setFiles(state, {qmltypesPathSourceId}); setFiles(state, {qmltypesPathSourceId});
@@ -3347,6 +3373,10 @@ public:
SourceId rootDirectoryPathSourceId = SourceId::create(rootDirectoryPathId, SourceId rootDirectoryPathSourceId = SourceId::create(rootDirectoryPathId,
QmlDesigner::FileNameId{}); QmlDesigner::FileNameId{});
SourceId rootQmldirPathSourceId = sourcePathCache.sourceId("/root/qmldir"); SourceId rootQmldirPathSourceId = sourcePathCache.sourceId("/root/qmldir");
DirectoryPathId designerDirectoryPathId = sourcePathCache.directoryPathId(
"/root/path/designer");
SourceId designerDirectoryPathSourceId = SourceId::create(designerDirectoryPathId,
QmlDesigner::FileNameId{});
QmlDesigner::ProjectPartId partId = std::get<0>(GetParam()).projectPartId; QmlDesigner::ProjectPartId partId = std::get<0>(GetParam()).projectPartId;
std::vector<IdPaths> idPaths; std::vector<IdPaths> idPaths;
FileState state = std::get<1>(GetParam()).state; FileState state = std::get<1>(GetParam()).state;
@@ -3423,7 +3453,7 @@ public:
setContent(u"/root/path/qmldir", qmldir); setContent(u"/root/path/qmldir", qmldir);
setQmlFileNames(u"/root/path", {"First.qml", "Second.qml"}); setQmlFileNames(u"/root/path", {"First.qml", "Second.qml"});
setFilesNotExistsUnchanged({createDirectorySourceId("/root/path/designer")}); setFilesNotExistsUnchanged({designerDirectoryPathSourceId});
setFileSystemSubdirectories(u"/root", {"/root/path"}); setFileSystemSubdirectories(u"/root", {"/root/path"});
setStorageSubdirectories(rootDirectoryPathId, {directoryPathId}); setStorageSubdirectories(rootDirectoryPathId, {directoryPathId});
@@ -3726,7 +3756,7 @@ public:
} }
setContent(u"/root/path/qmldir", qmldir); setContent(u"/root/path/qmldir", qmldir);
setFilesNotExistsUnchanged({createDirectorySourceId("/root/path/designer")}); setFilesNotExistsUnchanged({designerDirectoryPathSourceId});
setFileSystemSubdirectories(u"/root", {"/root/path"}); setFileSystemSubdirectories(u"/root", {"/root/path"});
setStorageSubdirectories(rootDirectoryPathId, {directoryPathId}); setStorageSubdirectories(rootDirectoryPathId, {directoryPathId});
@@ -3999,7 +4029,7 @@ public:
setContent(u"/root/path/qmltypes1.qmltypes", qmltypes1Content); setContent(u"/root/path/qmltypes1.qmltypes", qmltypes1Content);
setContent(u"/root/path/qmltypes2.qmltypes", qmltypes2Content); setContent(u"/root/path/qmltypes2.qmltypes", qmltypes2Content);
} }
setFilesNotExistsUnchanged({createDirectorySourceId("/root/path/designer")}); setFilesNotExistsUnchanged({designerDirectoryPathSourceId});
setFileSystemSubdirectories(u"/root", {"/root/path"}); setFileSystemSubdirectories(u"/root", {"/root/path"});
setStorageSubdirectories(rootDirectoryPathId, {directoryPathId}); setStorageSubdirectories(rootDirectoryPathId, {directoryPathId});
@@ -4301,7 +4331,7 @@ public:
} }
setContent(u"/root/path/qmldir", qmldir); setContent(u"/root/path/qmldir", qmldir);
setFilesNotExistsUnchanged({createDirectorySourceId("/root/path/designer")}); setFilesNotExistsUnchanged({designerDirectoryPathSourceId});
setFileSystemSubdirectories(u"/root", {"/root/path"}); setFileSystemSubdirectories(u"/root", {"/root/path"});
setStorageSubdirectories(rootDirectoryPathId, {directoryPathId}); setStorageSubdirectories(rootDirectoryPathId, {directoryPathId});