mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-11 05:48:51 +00:00
Merge remote-tracking branch 'github-marc1706/ticket/12071' into develop-ascraeus
* github-marc1706/ticket/12071: [ticket/12071] Add test that covers not available fileinfo [ticket/12071] Get rid of unneeded cast to boolean in tests [ticket/12071] Skip tests that depend on fileinfo and fix expected results
This commit is contained in:
commit
1dd02b0a91
1 changed files with 40 additions and 1 deletions
|
@ -19,7 +19,9 @@ function function_exists($name)
|
||||||
|
|
||||||
class guesser_test extends \phpbb_test_case
|
class guesser_test extends \phpbb_test_case
|
||||||
{
|
{
|
||||||
public static $function_exists = true;
|
public static $function_exists = false;
|
||||||
|
|
||||||
|
protected $fileinfo_supported = false;
|
||||||
|
|
||||||
public function setUp()
|
public function setUp()
|
||||||
{
|
{
|
||||||
|
@ -28,7 +30,16 @@ class guesser_test extends \phpbb_test_case
|
||||||
$guessers = array(
|
$guessers = array(
|
||||||
new \Symfony\Component\HttpFoundation\File\MimeType\FileinfoMimeTypeGuesser(),
|
new \Symfony\Component\HttpFoundation\File\MimeType\FileinfoMimeTypeGuesser(),
|
||||||
new \Symfony\Component\HttpFoundation\File\MimeType\FileBinaryMimeTypeGuesser(),
|
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 = $guessers[0]->isSupported() | $guessers[1]->isSupported() | $guessers[3]->is_supported();
|
||||||
|
|
||||||
|
// Also create a guesser that emulates not having fileinfo available
|
||||||
|
$this->guesser_no_fileinfo = new \phpbb\mimetype\guesser(array($guessers[2]));
|
||||||
|
|
||||||
$this->guesser = new \phpbb\mimetype\guesser($guessers);
|
$this->guesser = new \phpbb\mimetype\guesser($guessers);
|
||||||
$this->path = dirname(__FILE__);
|
$this->path = dirname(__FILE__);
|
||||||
$this->jpg_file = $this->path . '/fixtures/jpg';
|
$this->jpg_file = $this->path . '/fixtures/jpg';
|
||||||
|
@ -52,9 +63,32 @@ class guesser_test extends \phpbb_test_case
|
||||||
*/
|
*/
|
||||||
public function test_guess_files($expected, $file)
|
public function test_guess_files($expected, $file)
|
||||||
{
|
{
|
||||||
|
// We will always get application/octet-stream as mimetype if only the
|
||||||
|
// extension guesser is supported
|
||||||
|
if (!$this->fileinfo_supported)
|
||||||
|
{
|
||||||
|
$this->markTestSkipped('Unable to run tests depending on fileinfo if it is not available');
|
||||||
|
}
|
||||||
$this->assertEquals($expected, $this->guesser->guess($this->path . '/../upload/fixture/' . $file));
|
$this->assertEquals($expected, $this->guesser->guess($this->path . '/../upload/fixture/' . $file));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function data_guess_files_no_fileinfo()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
array('application/octet-stream', 'gif'),
|
||||||
|
array('application/octet-stream', 'txt'),
|
||||||
|
array(false, 'foobar'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dataProvider data_guess_files_no_fileinfo
|
||||||
|
*/
|
||||||
|
public function test_guess_files_no_fileinfo($expected, $file)
|
||||||
|
{
|
||||||
|
$this->assertEquals($expected, $this->guesser_no_fileinfo->guess($this->path . '/../upload/fixture/' . $file));
|
||||||
|
}
|
||||||
|
|
||||||
public function test_file_not_readable()
|
public function test_file_not_readable()
|
||||||
{
|
{
|
||||||
@chmod($this->jpg_file, 0000);
|
@chmod($this->jpg_file, 0000);
|
||||||
|
@ -130,6 +164,11 @@ class guesser_test extends \phpbb_test_case
|
||||||
$supported = false;
|
$supported = false;
|
||||||
self::$function_exists = !$overload;
|
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
|
// Cover possible LogicExceptions
|
||||||
foreach ($guessers as $cur_guesser)
|
foreach ($guessers as $cur_guesser)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue