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)
{
#ifdef QDS_HAS_QMLPRIVATE
if (modulePath.empty())
return;
QDirIterator dirIterator{QString::fromUtf8(modulePath),
QDir::Dirs | QDir::NoDotAndDotDot,
QDirIterator::Subdirectories};

View File

@@ -65,13 +65,27 @@ protected:
externalDependenciesMock};
};
TEST_F(ModuleScanner, ReturnEmptyOptionalForWrongPath)
TEST_F(ModuleScanner, ReturnEmptyOptionalForEmptyPath)
{
scanner.scan(QStringList{""});
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)
{
scanner.scan(QStringList{qmlModulesPath});