From 36f5ecd33f662da31bb856aaecfdeb675ff06306 Mon Sep 17 00:00:00 2001 From: Kunal Sachdev <57170-kunal.sachdev@users.noreply.drupalcode.org> Date: Tue, 21 Feb 2023 15:45:07 +0000 Subject: [PATCH] =?UTF-8?q?Issue=20#3342726=20by=20kunal.sachdev,=20Wim=20?= =?UTF-8?q?Leers:=20UnknownPathExcluder=20doesn=E2=80=99t=20consider=20hid?= =?UTF-8?q?den=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/PathExcluder/UnknownPathExcluder.php | 3 ++- .../PathExcluder/UnknownPathExcluderTest.php | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/package_manager/src/PathExcluder/UnknownPathExcluder.php b/package_manager/src/PathExcluder/UnknownPathExcluder.php index d0ae54dbc3..163c4c40d1 100644 --- a/package_manager/src/PathExcluder/UnknownPathExcluder.php +++ b/package_manager/src/PathExcluder/UnknownPathExcluder.php @@ -64,7 +64,8 @@ final class UnknownPathExcluder implements EventSubscriberInterface { // @todo Refactor in https://www.drupal.org/project/automatic_updates/issues/3334994. $core_packages = $event->stage->getActiveComposer()->getCorePackages(); $scaffold_files_paths = $this->getScaffoldFiles($core_packages); - $paths_in_project_root = glob("$project_root/*"); + // Search for all files (including hidden ones) in project root. + $paths_in_project_root = glob("$project_root/{,.}*", GLOB_BRACE); $paths = []; $known_paths = array_merge([$vendor_dir, $web_root, "$project_root/composer.json", "$project_root/composer.lock"], $scaffold_files_paths); foreach ($paths_in_project_root as $path_in_project_root) { diff --git a/package_manager/tests/src/Kernel/PathExcluder/UnknownPathExcluderTest.php b/package_manager/tests/src/Kernel/PathExcluder/UnknownPathExcluderTest.php index c56be26270..642047efdd 100644 --- a/package_manager/tests/src/Kernel/PathExcluder/UnknownPathExcluderTest.php +++ b/package_manager/tests/src/Kernel/PathExcluder/UnknownPathExcluderTest.php @@ -94,6 +94,16 @@ class UnknownPathExcluderTest extends PackageManagerKernelTestBase { NULL, ['unknown_file.txt'], ], + 'unknown hidden file where web and project root same' => [ + FALSE, + NULL, + ['.unknown_file'], + ], + 'unknown hidden file where web and project root different' => [ + TRUE, + NULL, + ['.unknown_file'], + ], 'unknown directory where web and project root same' => [ FALSE, 'unknown_dir', @@ -104,6 +114,16 @@ class UnknownPathExcluderTest extends PackageManagerKernelTestBase { 'unknown_dir', ['unknown_dir/unknown_dir.README.md', 'unknown_dir/unknown_file.txt'], ], + 'unknown hidden directory where web and project root same' => [ + FALSE, + '.unknown_dir', + ['.unknown_dir/unknown_dir.README.md', '.unknown_dir/unknown_file.txt'], + ], + 'unknown hidden directory where web and project root different' => [ + TRUE, + '.unknown_dir', + ['.unknown_dir/unknown_dir.README.md', '.unknown_dir/unknown_file.txt'], + ], ]; } -- GitLab