1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-05-03 06:08:05 +02:00

[ticket/12071] Skip tests that depend on fileinfo and fix expected results

Tests that depend on fileinfo being enabled will now be skipped to prevent
fatal errors while running the test suite. The expected results will be
modified to "application/octet-stream" in test_guess_files() if only the
extension_guesser is available due to the non-existing extension of those
files.

PHPBB3-12071
This commit is contained in:
marc1706 2014-01-03 13:30:52 +01:00
parent db94f80c5b
commit 8ebf5bb8d1

View File

@ -19,7 +19,9 @@ function function_exists($name)
class guesser_test extends \phpbb_test_case
{
public static $function_exists = true;
public static $function_exists = false;
protected $fileinfo_supported = false;
public function setUp()
{
@ -28,7 +30,13 @@ class guesser_test extends \phpbb_test_case
$guessers = array(
new \Symfony\Component\HttpFoundation\File\MimeType\FileinfoMimeTypeGuesser(),
new \Symfony\Component\HttpFoundation\File\MimeType\FileBinaryMimeTypeGuesser(),
new \phpbb\mimetype\extension_guesser,
new \phpbb\mimetype\content_guesser,
);
// Check if any guesser except the extension_guesser is available
$this->fileinfo_supported = (bool) $guessers[0]->isSupported() | $guessers[1]->isSupported() | $guessers[3]->is_supported();
$this->guesser = new \phpbb\mimetype\guesser($guessers);
$this->path = dirname(__FILE__);
$this->jpg_file = $this->path . '/fixtures/jpg';
@ -52,6 +60,12 @@ class guesser_test extends \phpbb_test_case
*/
public function test_guess_files($expected, $file)
{
// We will always get application/octet-stream as mimetype if only the
// extension guesser is supported
if ($expected && !$this->fileinfo_supported)
{
$expected = 'application/octet-stream';
}
$this->assertEquals($expected, $this->guesser->guess($this->path . '/../upload/fixture/' . $file));
}
@ -130,6 +144,11 @@ class guesser_test extends \phpbb_test_case
$supported = false;
self::$function_exists = !$overload;
if (!\function_exists('mime_content_type'))
{
$this->markTestSkipped('Emulating supported mime_content_type() when it is not supported will cause a fatal error');
}
// Cover possible LogicExceptions
foreach ($guessers as $cur_guesser)
{