fileListing = new FileListing(); } public function testGetDirContent(): void { self::assertFalse($this->fileListing->getDirContent('nonexistent directory')); $fixturesDir = TEST_PATH . 'test/classes/_data/file_listing'; $dirContent = $this->fileListing->getDirContent($fixturesDir); if (is_bool($dirContent)) { $dirContent = []; } self::assertSame([ 'one.txt', 'two.md', ], array_values($dirContent)); } public function testGetFileSelectOptions(): void { $fixturesDir = TEST_PATH . 'test/classes/_data/file_listing'; self::assertFalse($this->fileListing->getFileSelectOptions('nonexistent directory')); $expectedHtmlWithoutActive = ' ' . "\n" . ' ' . "\n"; self::assertSame($expectedHtmlWithoutActive, $this->fileListing->getFileSelectOptions($fixturesDir)); $expectedHtmlWithActive = ' ' . "\n" . ' ' . "\n"; self::assertSame($expectedHtmlWithActive, $this->fileListing->getFileSelectOptions($fixturesDir, '', 'two.md')); $expectedFilteredHtml = ' ' . "\n"; self::assertSame($expectedFilteredHtml, $this->fileListing->getFileSelectOptions($fixturesDir, '/.*\.txt/')); } public function testSupportedDecompressionsEmptyList(): void { $GLOBALS['cfg']['ZipDump'] = false; $GLOBALS['cfg']['GZipDump'] = false; $GLOBALS['cfg']['BZipDump'] = false; self::assertEmpty($this->fileListing->supportedDecompressions()); } /** * @requires extension bz2 1 */ public function testSupportedDecompressionsFull(): void { $GLOBALS['cfg']['ZipDump'] = true; $GLOBALS['cfg']['GZipDump'] = true; $GLOBALS['cfg']['BZipDump'] = true; self::assertSame('gz|bz2|zip', $this->fileListing->supportedDecompressions()); } public function testSupportedDecompressionsPartial(): void { $GLOBALS['cfg']['ZipDump'] = true; $GLOBALS['cfg']['GZipDump'] = true; $GLOBALS['cfg']['BZipDump'] = true; $extensionString = 'gz'; if (extension_loaded('bz2')) { $extensionString .= '|bz2'; } $extensionString .= '|zip'; self::assertSame($extensionString, $this->fileListing->supportedDecompressions()); } }