Skip to content
Snippets Groups Projects
Unverified Commit ec3fedad authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3466462 by mfb, chandansha, kim.pepper, charlliequadros, smustgrave,...

Issue #3466462 by mfb, chandansha, kim.pepper, charlliequadros, smustgrave, mxr576, quietone, morvaim, larowlan: Fix handling of unknown file extensions in FileMediaFormatterBase
parent c9888317
No related branches found
No related tags found
No related merge requests found
...@@ -81,7 +81,7 @@ public static function isApplicable(FieldDefinitionInterface $field_definition) ...@@ -81,7 +81,7 @@ public static function isApplicable(FieldDefinitionInterface $field_definition)
foreach ($extension_list as $extension) { foreach ($extension_list as $extension) {
$mime_type = $extension_mime_type_guesser->guessMimeType('fakedFile.' . $extension); $mime_type = $extension_mime_type_guesser->guessMimeType('fakedFile.' . $extension);
if (static::mimeTypeApplies($mime_type)) { if ($mime_type !== NULL && static::mimeTypeApplies($mime_type)) {
return TRUE; return TRUE;
} }
} }
...@@ -192,11 +192,12 @@ protected function getSourceFiles(EntityReferenceFieldItemListInterface $items, ...@@ -192,11 +192,12 @@ protected function getSourceFiles(EntityReferenceFieldItemListInterface $items,
// grouping in case the multiple file behavior is not 'tags'. // grouping in case the multiple file behavior is not 'tags'.
/** @var \Drupal\file\Entity\File $file */ /** @var \Drupal\file\Entity\File $file */
foreach ($this->getEntitiesToView($items, $langcode) as $file) { foreach ($this->getEntitiesToView($items, $langcode) as $file) {
if (static::mimeTypeApplies($file->getMimeType())) { $mime_type = $file->getMimeType();
if ($mime_type !== NULL && static::mimeTypeApplies($mime_type)) {
$source_attributes = new Attribute(); $source_attributes = new Attribute();
$source_attributes $source_attributes
->setAttribute('src', $file->createFileUrl()) ->setAttribute('src', $file->createFileUrl())
->setAttribute('type', $file->getMimeType()); ->setAttribute('type', $mime_type);
if ($this->getSetting('multiple_file_display_type') === 'tags') { if ($this->getSetting('multiple_file_display_type') === 'tags') {
$source_files[] = [ $source_files[] = [
[ [
......
...@@ -24,7 +24,8 @@ class FileAudioFormatterTest extends FileMediaFormatterTestBase { ...@@ -24,7 +24,8 @@ class FileAudioFormatterTest extends FileMediaFormatterTestBase {
* @dataProvider dataProvider * @dataProvider dataProvider
*/ */
public function testRender($tag_count, $formatter_settings): void { public function testRender($tag_count, $formatter_settings): void {
$field_config = $this->createMediaField('file_audio', 'mp3', $formatter_settings); // Create a file field that accepts .mp3 and an unknown file extension.
$field_config = $this->createMediaField('file_audio', 'unknown-extension, mp3', $formatter_settings);
file_put_contents('public://file.mp3', str_repeat('t', 10)); file_put_contents('public://file.mp3', str_repeat('t', 10));
$file1 = File::create([ $file1 = File::create([
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment