QmlDesigner: improve ModuleScanner

handle empty path and paths better

Task-number: QDS-9847
Change-Id: I9dc6f7972835a366a046d06641fbb64494c734fc
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
This commit is contained in:
Tim Jenssen
2023-05-08 16:30:08 +02:00
committed by Marco Bubke
parent a946eebd43
commit 5a88c3ffc1
2 changed files with 18 additions and 1 deletions

View File

@@ -69,6 +69,9 @@ void ModuleScanner::scan(const QStringList &modulePaths)
void ModuleScanner::scan([[maybe_unused]] std::string_view modulePath) void ModuleScanner::scan([[maybe_unused]] std::string_view modulePath)
{ {
#ifdef QDS_HAS_QMLPRIVATE #ifdef QDS_HAS_QMLPRIVATE
if (modulePath.empty())
return;
QDirIterator dirIterator{QString::fromUtf8(modulePath), QDirIterator dirIterator{QString::fromUtf8(modulePath),
QDir::Dirs | QDir::NoDotAndDotDot, QDir::Dirs | QDir::NoDotAndDotDot,
QDirIterator::Subdirectories}; QDirIterator::Subdirectories};

View File

@@ -65,13 +65,27 @@ protected:
externalDependenciesMock}; externalDependenciesMock};
}; };
TEST_F(ModuleScanner, ReturnEmptyOptionalForWrongPath) TEST_F(ModuleScanner, ReturnEmptyOptionalForEmptyPath)
{ {
scanner.scan(QStringList{""}); scanner.scan(QStringList{""});
ASSERT_THAT(scanner.modules(), IsEmpty()); ASSERT_THAT(scanner.modules(), IsEmpty());
} }
TEST_F(ModuleScanner, ReturnEmptyOptionalForNullStringPath)
{
scanner.scan(QStringList{QString{}});
ASSERT_THAT(scanner.modules(), IsEmpty());
}
TEST_F(ModuleScanner, ReturnEmptyOptionalForEmptyPaths)
{
scanner.scan(QStringList{});
ASSERT_THAT(scanner.modules(), IsEmpty());
}
TEST_F(ModuleScanner, GetQtQuick) TEST_F(ModuleScanner, GetQtQuick)
{ {
scanner.scan(QStringList{qmlModulesPath}); scanner.scan(QStringList{qmlModulesPath});