Skip to content
This repository was archived by the owner on Jan 31, 2020. It is now read-only.

Commit 8d24b49

Browse files
authored
Merge pull request #92 in master
2 parents 33f11ae + 66b579b commit 8d24b49

File tree

2 files changed

+39
-12
lines changed

2 files changed

+39
-12
lines changed

src/File/ExcludeMimeType.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,15 @@ class ExcludeMimeType extends MimeType
2121
const NOT_DETECTED = 'fileExcludeMimeTypeNotDetected';
2222
const NOT_READABLE = 'fileExcludeMimeTypeNotReadable';
2323

24+
/**
25+
* @var array Error message templates
26+
*/
27+
protected $messageTemplates = [
28+
self::FALSE_TYPE => "File has an incorrect mimetype of '%type%'",
29+
self::NOT_DETECTED => "The mimetype could not be detected from the file",
30+
self::NOT_READABLE => "File is not readable or does not exist",
31+
];
32+
2433
/**
2534
* Returns true if the mimetype of the file does not matche the given ones. Also parts
2635
* of mimetypes can be checked. If you give for example "image" all image

test/File/ExcludeMimeTypeTest.php

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,32 +25,43 @@ public function basicBehaviorDataProvider()
2525
{
2626
$testFile = __DIR__ . '/_files/picture.jpg';
2727
$fileUpload = [
28-
'tmp_name' => $testFile, 'name' => basename($testFile),
29-
'size' => 200, 'error' => 0, 'type' => 'image/jpeg'
28+
'tmp_name' => $testFile,
29+
'name' => basename($testFile),
30+
'size' => 200,
31+
'error' => 0,
32+
'type' => 'image/jpeg',
3033
];
34+
35+
$falseTypeMessage = [ExcludeMimeType::FALSE_TYPE => "File has an incorrect mimetype of 'image/jpeg'"];
36+
3137
return [
32-
// Options, isValid Param, Expected value
33-
['image/gif', $fileUpload, true],
34-
['image', $fileUpload, false],
35-
['test/notype', $fileUpload, true],
36-
['image/gif, image/jpeg', $fileUpload, false],
37-
[['image/vasa', 'image/gif'], $fileUpload, true],
38-
[['image/gif', 'jpeg'], $fileUpload, false],
39-
[['image/gif', 'gif'], $fileUpload, true],
38+
// Options, isValid Param, Expected value, messages
39+
['image/gif', $fileUpload, true, []],
40+
['image', $fileUpload, false, $falseTypeMessage],
41+
['test/notype', $fileUpload, true, []],
42+
['image/gif, image/jpeg', $fileUpload, false, $falseTypeMessage],
43+
[['image/vasa', 'image/gif'], $fileUpload, true, []],
44+
[['image/gif', 'jpeg'], $fileUpload, false, $falseTypeMessage],
45+
[['image/gif', 'gif'], $fileUpload, true, []],
4046
];
4147
}
4248

4349
/**
4450
* Ensures that the validator follows expected behavior
4551
*
4652
* @dataProvider basicBehaviorDataProvider
47-
* @return void
53+
*
54+
* @param string|array $options
55+
* @param array $isValidParam
56+
* @param bool $expected
57+
* @param array $messages
4858
*/
49-
public function testBasic($options, $isValidParam, $expected)
59+
public function testBasic($options, array $isValidParam, $expected, array $messages)
5060
{
5161
$validator = new ExcludeMimeType($options);
5262
$validator->enableHeaderCheck();
5363
$this->assertEquals($expected, $validator->isValid($isValidParam));
64+
$this->assertEquals($messages, $validator->getMessages());
5465
}
5566

5667
/**
@@ -137,6 +148,12 @@ public function testEmptyFileShouldReturnFalseAndDisplayNotFoundMessage()
137148

138149
$this->assertFalse($validator->isValid(''));
139150
$this->assertArrayHasKey(ExcludeMimeType::NOT_READABLE, $validator->getMessages());
151+
$this->assertNotEmpty($validator->getMessages()[ExcludeMimeType::NOT_READABLE]);
152+
}
153+
154+
public function testEmptyArrayFileShouldReturnFalseAdnDisplayNotFoundMessage()
155+
{
156+
$validator = new ExcludeMimeType();
140157

141158
$filesArray = [
142159
'name' => '',
@@ -148,6 +165,7 @@ public function testEmptyFileShouldReturnFalseAndDisplayNotFoundMessage()
148165

149166
$this->assertFalse($validator->isValid($filesArray));
150167
$this->assertArrayHasKey(ExcludeMimeType::NOT_READABLE, $validator->getMessages());
168+
$this->assertNotEmpty($validator->getMessages()[ExcludeMimeType::NOT_READABLE]);
151169
}
152170

153171
public function testIsValidRaisesExceptionWithArrayNotInFilesFormat()

0 commit comments

Comments
 (0)