From 5a88c3ffc16d242a29350c3e5592597aed8f7e69 Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Mon, 8 May 2023 16:30:08 +0200 Subject: [PATCH] QmlDesigner: improve ModuleScanner handle empty path and paths better Task-number: QDS-9847 Change-Id: I9dc6f7972835a366a046d06641fbb64494c734fc Reviewed-by: Marco Bubke --- .../projectstorage/modulescanner.cpp | 3 +++ tests/unit/unittest/modulescanner-test.cpp | 16 +++++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/plugins/qmldesigner/designercore/projectstorage/modulescanner.cpp b/src/plugins/qmldesigner/designercore/projectstorage/modulescanner.cpp index 12cded6650d..c9c7fd8d61e 100644 --- a/src/plugins/qmldesigner/designercore/projectstorage/modulescanner.cpp +++ b/src/plugins/qmldesigner/designercore/projectstorage/modulescanner.cpp @@ -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}; diff --git a/tests/unit/unittest/modulescanner-test.cpp b/tests/unit/unittest/modulescanner-test.cpp index f3bbbf23e9e..b4632e0cb41 100644 --- a/tests/unit/unittest/modulescanner-test.cpp +++ b/tests/unit/unittest/modulescanner-test.cpp @@ -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});