diff --git a/libraries/classes/FileListing.php b/libraries/classes/FileListing.php index a562d9ea7e..f8487725b8 100644 --- a/libraries/classes/FileListing.php +++ b/libraries/classes/FileListing.php @@ -64,15 +64,13 @@ class FileListing if ($list === false) { return false; } - $result = ''; - foreach ($list as $val) { - $result .= ' +{% endfor %} diff --git a/test/classes/FileListingTest.php b/test/classes/FileListingTest.php index 278147dea6..542e3b9358 100644 --- a/test/classes/FileListingTest.php +++ b/test/classes/FileListingTest.php @@ -34,6 +34,16 @@ class FileListingTest extends TestCase public function testGetDirContent(): void { $this->assertFalse($this->fileListing->getDirContent('nonexistent directory')); + + $fixturesDir = ROOT_PATH . 'test/classes/_data/file_listing'; + + $this->assertSame( + array_values([ + 'one.txt', + 'two.md', + ]), + array_values($this->fileListing->getDirContent($fixturesDir)) + ); } /** @@ -41,7 +51,51 @@ class FileListingTest extends TestCase */ public function testGetFileSelectOptions(): void { + $fixturesDir = ROOT_PATH . 'test/classes/_data/file_listing'; + $this->assertFalse($this->fileListing->getFileSelectOptions('nonexistent directory')); + + $expectedHtmlWithoutActive = << + one.txt + + + +HTML; + + $this->assertSame( + $expectedHtmlWithoutActive, + $this->fileListing->getFileSelectOptions($fixturesDir) + ); + + $expectedHtmlWithActive = << + one.txt + + + +HTML; + + $this->assertSame( + $expectedHtmlWithActive, + $this->fileListing->getFileSelectOptions($fixturesDir, '', 'two.md') + ); + + $expectedFilteredHtml = << + one.txt + + +HTML; + + $this->assertSame( + $expectedFilteredHtml, + $this->fileListing->getFileSelectOptions($fixturesDir, '/.*\.txt/') + ); } /** diff --git a/test/classes/_data/file_listing/one.txt b/test/classes/_data/file_listing/one.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/classes/_data/file_listing/two.md b/test/classes/_data/file_listing/two.md new file mode 100644 index 0000000000..e69de29bb2