Skip to content

Commit c4ec31d

Browse files
committed
backport laravel / framework #35518
1 parent 4013847 commit c4ec31d

File tree

2 files changed

+25
-8
lines changed

2 files changed

+25
-8
lines changed

src/Illuminate/Validation/Validator.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1222,6 +1222,10 @@ protected function validateMimes($attribute, $value, $parameters)
12221222
return false;
12231223
}
12241224

1225+
if (in_array('jpg', $parameters) || in_array('jpeg', $parameters)) {
1226+
$parameters = array_unique(array_merge($parameters, ['jpg', 'jpeg']));
1227+
}
1228+
12251229
return $value->getPath() != '' && in_array($value->guessExtension(), $parameters);
12261230
}
12271231

tests/Validation/ValidationValidatorTest.php

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -991,11 +991,18 @@ public function testValidateImage()
991991
$this->assertFalse($v->passes());
992992

993993
$v = new Validator($trans, [], ['x' => 'Image']);
994-
$file2 = $this->getMock(UploadedFile::class, ['guessExtension'], $uploadedFile);
995-
$file2->expects($this->any())->method('guessExtension')->willReturn('jpeg');
994+
$file2 = $this->getMock(UploadedFile::class, ['guessExtension', 'getClientOriginalExtension'], $uploadedFile);
995+
$file2->expects($this->any())->method('guessExtension')->willReturn('jpg');
996+
$file2->expects($this->any())->method('getClientOriginalExtension')->willReturn('jpeg');
996997
$v->setFiles(['x' => $file2]);
997998
$this->assertTrue($v->passes());
998999

1000+
$file2 = $this->getMock(UploadedFile::class, ['guessExtension', 'getClientOriginalExtension'], $uploadedFile);
1001+
$file2->expects($this->any())->method('guessExtension')->willReturn('jpg');
1002+
$file2->expects($this->any())->method('getClientOriginalExtension')->willReturn('jpg');
1003+
$v->setFiles(['x' => $file2]);
1004+
$this->assertTrue($v->passes());
1005+
9991006
$file3 = $this->getMock(UploadedFile::class, ['guessExtension'], $uploadedFile);
10001007
$file3->expects($this->any())->method('guessExtension')->willReturn('gif');
10011008
$v->setFiles(['x' => $file3]);
@@ -1010,12 +1017,6 @@ public function testValidateImage()
10101017
$file5->expects($this->any())->method('guessExtension')->willReturn('png');
10111018
$v->setFiles(['x' => $file5]);
10121019
$this->assertTrue($v->passes());
1013-
1014-
$file6 = $this->getMock(UploadedFile::class, ['guessExtension', 'getClientOriginalExtension'], $uploadedFile);
1015-
$file6->expects($this->any())->method('guessExtension')->willReturn('jpg');
1016-
$file6->expects($this->any())->method('getClientOriginalExtension')->willReturn('jpg');
1017-
$v->setFiles(['x' => $file6]);
1018-
$this->assertTrue($v->passes());
10191020
}
10201021

10211022

@@ -1036,6 +1037,18 @@ public function testValidateMime()
10361037
$v = new Validator($trans, [], ['x' => 'mimes:php']);
10371038
$v->setFiles(['x' => $file2]);
10381039
$this->assertFalse($v->passes());
1040+
1041+
$file = $this->getMock(UploadedFile::class, ['guessExtension', 'getClientOriginalExtension'], $uploadedFile);
1042+
$file->expects($this->any())->method('guessExtension')->willReturn('jpg');
1043+
$file->expects($this->any())->method('getClientOriginalExtension')->willReturn('jpg');
1044+
$v = new Validator($trans, ['x' => $file], ['x' => 'mimes:jpeg']);
1045+
$this->assertTrue($v->passes());
1046+
1047+
$file = $this->getMock(UploadedFile::class, ['guessExtension', 'getClientOriginalExtension'], $uploadedFile);
1048+
$file->expects($this->any())->method('guessExtension')->willReturn('jpg');
1049+
$file->expects($this->any())->method('getClientOriginalExtension')->willReturn('jpeg');
1050+
$v = new Validator($trans, ['x' => $file], ['x' => 'mimes:jpg']);
1051+
$this->assertTrue($v->passes());
10391052
}
10401053

10411054

0 commit comments

Comments
 (0)