mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-23 18:38:53 +00:00
[ticket/12071] Add test that covers not available fileinfo
The newly added test case will also emulate a non-existing fileinfo in order to check if the mimetype guesser is properly working when fileinfo is not available. PHPBB3-12071
This commit is contained in:
parent
f111a9262f
commit
98aebabd73
1 changed files with 22 additions and 2 deletions
|
@ -37,6 +37,9 @@ class guesser_test extends \phpbb_test_case
|
|||
// 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->path = dirname(__FILE__);
|
||||
$this->jpg_file = $this->path . '/fixtures/jpg';
|
||||
|
@ -62,13 +65,30 @@ class guesser_test extends \phpbb_test_case
|
|||
{
|
||||
// We will always get application/octet-stream as mimetype if only the
|
||||
// extension guesser is supported
|
||||
if ($expected && !$this->fileinfo_supported)
|
||||
if (!$this->fileinfo_supported)
|
||||
{
|
||||
$expected = 'application/octet-stream';
|
||||
$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));
|
||||
}
|
||||
|
||||
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()
|
||||
{
|
||||
@chmod($this->jpg_file, 0000);
|
||||
|
|
Loading…
Add table
Reference in a new issue