Skip to content

Commit

Permalink
feature #59 Follow symlinks in themes/ (jacquesbh)
Browse files Browse the repository at this point in the history
This PR was merged into the 2.0-dev branch.

Discussion
----------

If a theme is a symlink then it'll now be catched by the Finder.

Commits
-------

a1446a9 Follow symlinks in themes/
pamil authored Jul 23, 2020
2 parents c07ee21 + a1446a9 commit 32ed27b
Showing 2 changed files with 10 additions and 0 deletions.
9 changes: 9 additions & 0 deletions spec/Locator/RecursiveFileLocatorSpec.php
Original file line number Diff line number Diff line change
@@ -39,6 +39,7 @@ function it_searches_for_file(FinderFactoryInterface $finderFactory, Finder $fin
$finder->in('/search/path/')->shouldBeCalled()->willReturn($finder);
$finder->ignoreUnreadableDirs()->shouldBeCalled()->willReturn($finder);
$finder->files()->shouldBeCalled()->willReturn($finder);
$finder->followLinks()->shouldBeCalled()->willReturn($finder);

$finder->getIterator()->willReturn(new \ArrayIterator([
$splFileInfo->getWrappedObject(),
@@ -61,6 +62,7 @@ function it_searches_for_files(
$finder->in('/search/path/')->shouldBeCalled()->willReturn($finder);
$finder->ignoreUnreadableDirs()->shouldBeCalled()->willReturn($finder);
$finder->files()->shouldBeCalled()->willReturn($finder);
$finder->followLinks()->shouldBeCalled()->willReturn($finder);

$finder->getIterator()->willReturn(new \ArrayIterator([
$firstSplFileInfo->getWrappedObject(),
@@ -90,6 +92,7 @@ function it_searches_for_files_at_a_maximum_depth(
$finder->in('/search/path/')->shouldBeCalled()->willReturn($finder);
$finder->ignoreUnreadableDirs()->shouldBeCalled()->willReturn($finder);
$finder->files()->shouldBeCalled()->willReturn($finder);
$finder->followLinks()->shouldBeCalled()->willReturn($finder);

$finder->getIterator()->willReturn(new \ArrayIterator([
$secondSplFileInfo->getWrappedObject(),
@@ -123,6 +126,7 @@ function it_throws_an_exception_if_there_is_no_file_that_matches_the_given_name(
$finder->in('/search/path/')->shouldBeCalled()->willReturn($finder);
$finder->ignoreUnreadableDirs()->shouldBeCalled()->willReturn($finder);
$finder->files()->shouldBeCalled()->willReturn($finder);
$finder->followLinks()->shouldBeCalled()->willReturn($finder);

$finder->getIterator()->willReturn(new \ArrayIterator());

@@ -139,6 +143,7 @@ function it_throws_an_exception_if_there_is_there_are_not_any_files_that_matches
$finder->in('/search/path/')->shouldBeCalled()->willReturn($finder);
$finder->ignoreUnreadableDirs()->shouldBeCalled()->willReturn($finder);
$finder->files()->shouldBeCalled()->willReturn($finder);
$finder->followLinks()->shouldBeCalled()->willReturn($finder);

$finder->getIterator()->willReturn(new \ArrayIterator());

@@ -159,11 +164,13 @@ function it_isolates_finding_paths_from_multiple_sources(
$firstFinder->in('/search/path/first/')->shouldBeCalled()->willReturn($firstFinder);
$firstFinder->ignoreUnreadableDirs()->shouldBeCalled()->willReturn($firstFinder);
$firstFinder->files()->shouldBeCalled()->willReturn($firstFinder);
$firstFinder->followLinks()->shouldBeCalled()->willReturn($firstFinder);

$secondFinder->name('readme.md')->shouldBeCalled()->willReturn($secondFinder);
$secondFinder->in('/search/path/second/')->shouldBeCalled()->willReturn($secondFinder);
$secondFinder->ignoreUnreadableDirs()->shouldBeCalled()->willReturn($secondFinder);
$secondFinder->files()->shouldBeCalled()->willReturn($secondFinder);
$secondFinder->followLinks()->shouldBeCalled()->willReturn($secondFinder);

$firstFinder->getIterator()->willReturn(new \ArrayIterator([$splFileInfo->getWrappedObject()]));
$secondFinder->getIterator()->willReturn(new \ArrayIterator());
@@ -189,11 +196,13 @@ function it_silences_finder_exceptions_even_if_searching_in_multiple_sources(
$firstFinder->in('/search/path/first/')->shouldBeCalled()->willReturn($firstFinder);
$firstFinder->ignoreUnreadableDirs()->shouldBeCalled()->willReturn($firstFinder);
$firstFinder->files()->shouldBeCalled()->willReturn($firstFinder);
$firstFinder->followLinks()->shouldBeCalled()->willReturn($firstFinder);

$secondFinder->name('readme.md')->shouldBeCalled()->willReturn($secondFinder);
$secondFinder->in('/search/path/second/')->shouldBeCalled()->willReturn($secondFinder);
$secondFinder->ignoreUnreadableDirs()->shouldBeCalled()->willReturn($secondFinder);
$secondFinder->files()->shouldBeCalled()->willReturn($secondFinder);
$secondFinder->followLinks()->shouldBeCalled()->willReturn($secondFinder);

$firstFinder->getIterator()->willReturn(new \ArrayIterator([$splFileInfo->getWrappedObject()]));
$secondFinder->getIterator()->willThrow(\InvalidArgumentException::class);
1 change: 1 addition & 0 deletions src/Locator/RecursiveFileLocator.php
Original file line number Diff line number Diff line change
@@ -63,6 +63,7 @@ private function doLocateFilesNamed(string $name): \Generator

$finder
->files()
->followLinks()
->name($name)
->ignoreUnreadableDirs()
->in($path);

0 comments on commit 32ed27b

Please sign in to comment.