From 41a965cdc433603ebbc9363abee4b3394168d42f Mon Sep 17 00:00:00 2001 From: "Alexander M. Turek" Date: Mon, 30 Nov 2020 22:38:34 +0100 Subject: [PATCH] [Mime] Leverage PHP 8's detection of CSV files. --- src/Symfony/Component/Mime/MimeTypes.php | 3 ++- .../Mime/Tests/Fixtures/mimetypes/abc.csv | 3 +++ src/Symfony/Component/Mime/Tests/MimeTypesTest.php | 14 ++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 src/Symfony/Component/Mime/Tests/Fixtures/mimetypes/abc.csv diff --git a/src/Symfony/Component/Mime/MimeTypes.php b/src/Symfony/Component/Mime/MimeTypes.php index 653a36458c..5de599ca9a 100644 --- a/src/Symfony/Component/Mime/MimeTypes.php +++ b/src/Symfony/Component/Mime/MimeTypes.php @@ -166,6 +166,7 @@ final class MimeTypes implements MimeTypesInterface 'application/cdmi-queue' => ['cdmiq'], 'application/cdr' => ['cdr'], 'application/coreldraw' => ['cdr'], + 'application/csv' => ['csv'], 'application/cu-seeme' => ['cu'], 'application/davmount+xml' => ['davmount'], 'application/dbase' => ['dbf'], @@ -1817,7 +1818,7 @@ final class MimeTypes implements MimeTypesInterface 'csp' => ['application/vnd.commonspace'], 'css' => ['text/css'], 'cst' => ['application/x-director'], - 'csv' => ['text/csv', 'text/x-comma-separated-values', 'text/x-csv'], + 'csv' => ['text/csv', 'text/x-comma-separated-values', 'text/x-csv', 'application/csv'], 'csvs' => ['text/csv-schema'], 'cu' => ['application/cu-seeme'], 'cue' => ['application/x-cue'], diff --git a/src/Symfony/Component/Mime/Tests/Fixtures/mimetypes/abc.csv b/src/Symfony/Component/Mime/Tests/Fixtures/mimetypes/abc.csv new file mode 100644 index 0000000000..bd1221bfdd --- /dev/null +++ b/src/Symfony/Component/Mime/Tests/Fixtures/mimetypes/abc.csv @@ -0,0 +1,3 @@ +a,b,c +d,e,f +g,h,i diff --git a/src/Symfony/Component/Mime/Tests/MimeTypesTest.php b/src/Symfony/Component/Mime/Tests/MimeTypesTest.php index b1387c9a5c..9b16ff6807 100644 --- a/src/Symfony/Component/Mime/Tests/MimeTypesTest.php +++ b/src/Symfony/Component/Mime/Tests/MimeTypesTest.php @@ -73,4 +73,18 @@ class MimeTypesTest extends AbstractMimeTypeGuesserTest $this->assertContains('text/baz', $mt->getMimeTypes('foo')); $this->assertSame(['foo', 'moof'], $mt->getExtensions('text/baz')); } + + /** + * PHP 8 detects .csv files as "application/csv" while PHP 7 returns "text/plain". + * + * @requires PHP 8 + */ + public function testCsvExtension() + { + $mt = new MimeTypes(); + + $mime = $mt->guessMimeType(__DIR__.'/Fixtures/mimetypes/abc.csv'); + $this->assertSame('application/csv', $mime); + $this->assertSame(['csv'], $mt->getExtensions($mime)); + } }