diff --git a/src/Symfony/Component/Mime/MimeTypes.php b/src/Symfony/Component/Mime/MimeTypes.php index dfdea060e466d..33d51d7f5b5f3 100644 --- a/src/Symfony/Component/Mime/MimeTypes.php +++ b/src/Symfony/Component/Mime/MimeTypes.php @@ -51,7 +51,8 @@ public function __construct(array $map = []) $this->extensions[$mimeType] = $extensions; foreach ($extensions as $extension) { - $this->mimeTypes[$extension] = $mimeType; + $this->mimeTypes[$extension] = $this->mimeTypes[$extension] ?? []; + $this->mimeTypes[$extension][] = $mimeType; } } $this->registerGuesser(new FileBinaryMimeTypeGuesser()); diff --git a/src/Symfony/Component/Mime/Tests/MimeTypesTest.php b/src/Symfony/Component/Mime/Tests/MimeTypesTest.php index a736dbebbae0f..6598fed85e089 100644 --- a/src/Symfony/Component/Mime/Tests/MimeTypesTest.php +++ b/src/Symfony/Component/Mime/Tests/MimeTypesTest.php @@ -62,4 +62,15 @@ public function testGetMimeTypes() $this->assertContains('image/svg', $mt->getMimeTypes('svg')); $this->assertSame([], $mt->getMimeTypes('symfony')); } + + public function testCustomMimeTypes() + { + $mt = new MimeTypes([ + 'text/bar' => 'foo', + 'text/baz' => ['foo', 'moof'], + ]); + $this->assertContains('text/bar', $mt->getMimeTypes('foo')); + $this->assertContains('text/baz', $mt->getMimeTypes('foo')); + $this->assertSame(['foo', 'moof'], $mt->getExtensions('text/baz')); + } }