diff --git a/src/FilesystemRepository.php b/src/FilesystemRepository.php index 1912e3d..f207d86 100644 --- a/src/FilesystemRepository.php +++ b/src/FilesystemRepository.php @@ -137,7 +137,7 @@ public function __construct($baseDir = '/', $symlink = true, $relative = true, C Assert::boolean($symlink); $this->baseDir = rtrim(Path::canonicalize($baseDir), '/'); - $this->baseDirLength = strlen($baseDir); + $this->baseDirLength = strlen($this->baseDir); $this->symlink = $symlink && self::isSymlinkSupported(); $this->relative = $this->symlink && $relative; $this->filesystem = new Filesystem(); diff --git a/tests/FilesystemRepositoryCopyTest.php b/tests/FilesystemRepositoryCopyTest.php index 3abf7d9..2f570f1 100644 --- a/tests/FilesystemRepositoryCopyTest.php +++ b/tests/FilesystemRepositoryCopyTest.php @@ -191,4 +191,13 @@ public function testDirectoryLink() { $this->writeRepo->add('/webmozart/link', new LinkResource('/webmozart/puli/file')); } + + public function testNonRealPath() + { + $repository = new FilesystemRepository(__DIR__ . '/Fixtures/dir5/sub/..'); + $children = $repository->listChildren('/'); + $children = iterator_to_array($children); + $this->assertArrayHasKey(0, $children); + $this->assertEquals('file1', $children[0]->getName()); + } }