Verified Commit 61a6cb28 authored by godotislate's avatar godotislate
Browse files

fix: #3469280 Handle NULL mime types in template_preprocess_file_link()

By: asghar
By: smustgrave
By: sahana _n
By: kim.pepper
By: alexpott
By: larowlan
By: fathershawn
By: longwave
By: godotislate
parent 6d0b1224
Loading
Loading
Loading
Loading
+1 −1
Changes for core/modules/file/src/Hook/FileThemeHooks.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ public function preprocessFileLink(array &$variables): void {

    $url = $this->fileUrlGenerator->generate($file->getFileUri());

    $mime_type = $file->getMimeType();
    $mime_type = $file->getMimeType() ?? 'application/octet-stream';
    $options['attributes']['type'] = $mime_type;

    // Use the description as the link text if available.
+4 −0
Changes for core/modules/file/tests/src/Kernel/Formatter/FileEntityFormatterTest.php: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -194,7 +194,9 @@ public function testFormatterFileLinkWithQueryString(): void {
      'uri' => 'dummy-external-readonly://file-query-string?foo=bar',
      'filename' => 'file-query-string',
    ]);
    $file->set('filemime', NULL);
    $file->save();
    $this->assertNull($file->get('filemime')->value);
    $file_link = [
      '#theme' => 'file_link',
      '#file' => $file,
@@ -202,6 +204,8 @@ public function testFormatterFileLinkWithQueryString(): void {

    $output = (string) \Drupal::service('renderer')->renderRoot($file_link);
    $this->assertStringContainsString($this->fileUrlGenerator->generate('dummy-external-readonly://file-query-string?foo=bar')->toUriString(), $output);
    $this->assertStringContainsString('file--mime-application-octet-stream', $output);
    $this->assertStringContainsString('type="application/octet-stream"', $output);
  }

}