Index: tests/t3lib/t3lib_divTest.php =================================================================== --- tests/t3lib/t3lib_divTest.php (Revision 8055) +++ tests/t3lib/t3lib_divTest.php (Arbeitskopie) @@ -1397,5 +1397,34 @@ $this->assertTrue($mkdirResult); $this->assertTrue($directoryCreated); } + + /** + * Checks if t3lib_div::split_fileref() return NO file extension if incomming $fileref is a folder + * This test avoid bug #0014845: Filelist module reports "type" of files also for directories + * This test assumes directory 'PATH_site'/typo3temp exists + * + * @test + * @see t3lib_div::split_fileref() + */ + public function checkIfSplitFileRefReturnFileTypeNotForFolders(){ + $directoryName = uniqid('test_'); + $directoryPath = PATH_site . 'typo3temp/'; + $directory = $directoryPath . $directoryName; + mkdir($directory, octdec($GLOBALS['TYPO3_CONF_VARS']['BE']['folderCreateMask'])); + + $fileInfo = t3lib_div::split_fileref($directory); + + $directoryCreated = is_dir($directory); + $this->assertTrue($directoryCreated); + + $this->assertType(PHPUnit_Framework_Constraint_IsType::TYPE_ARRAY, $fileInfo); + $this->assertEquals($directoryPath, $fileInfo['path']); + $this->assertEquals($directoryName, $fileInfo['file']); + $this->assertEquals($directoryName, $fileInfo['filebody']); + $this->assertEquals('', $fileInfo['fileext']); + $this->assertArrayNotHasKey('realFileext', $fileInfo); + + rmdir($directory); + } } ?> \ No newline at end of file Index: t3lib/class.t3lib_div.php =================================================================== --- t3lib/class.t3lib_div.php (Revision 8055) +++ t3lib/class.t3lib_div.php (Arbeitskopie) @@ -1134,15 +1134,16 @@ */ public static function split_fileref($fileref) { $reg = array(); - if (preg_match('/(.*\/)(.*)$/',$fileref,$reg) ) { + if (preg_match('/(.*\/)(.*)$/', $fileref, $reg)) { $info['path'] = $reg[1]; $info['file'] = $reg[2]; } else { $info['path'] = ''; $info['file'] = $fileref; } - $reg=''; - if ( preg_match('/(.*)\.([^\.]*$)/',$info['file'],$reg) ) { + + $reg = ''; + if (is_file($fileref) && preg_match('/(.*)\.([^\.]*$)/', $info['file'], $reg)) { $info['filebody'] = $reg[1]; $info['fileext'] = strtolower($reg[2]); $info['realFileext'] = $reg[2];