diff --cc core/modules/file/file.module
index 769d480,5d9f620..0000000
--- a/core/modules/file/file.module
+++ b/core/modules/file/file.module
@@@ -1606,9 -1286,9 +1606,10 @@@ function theme_file_icon($variables) 
    $file = $variables['file'];
    $icon_directory = $variables['icon_directory'];
  
 -  $title = !empty($file->filename) ? check_plain($file->filename) : check_plain($file->filemime);
 +  $mime = check_plain($file->getMimeType());
++  $title = !empty($file->filename) ? check_plain($file->filename) : '';
    $icon_url = file_icon_url($file, $icon_directory);
-   return '<img class="file-icon" alt="" title="' . $mime . '" src="' . $icon_url . '" />';
 -  return '<img class="file-icon" alt="" title="' . $title . '" src="' . $icon_url . '" />';
++  return '<img class="file-icon" alt="' . $mime . '" title="' . $title . '" src="' . $icon_url . '" />';
  }
  
  /**
diff --cc core/modules/file/lib/Drupal/file/Tests/FileFieldDisplayTest.php
index f6c399d,086db71..0000000
--- a/core/modules/file/lib/Drupal/file/Tests/FileFieldDisplayTest.php
+++ b/core/modules/file/lib/Drupal/file/Tests/FileFieldDisplayTest.php
@@@ -58,19 -60,19 +58,25 @@@ class FileFieldDisplayTest extends File
  
      // Check that the default formatter is displaying with the file name.
      $node = node_load($nid, TRUE);
 -    $node_file = file_load($node->{$field_name}[LANGUAGE_NOT_SPECIFIED][0]['fid']);
 -    $default_output = theme('file_link', array('file' => $node_file));
++
 +    $node_file = file_load($node->{$field_name}->target_id);
 +    $file_link = array(
 +      '#theme' => 'file_link',
 +      '#file' => $node_file,
 +    );
 +    $default_output = drupal_render($file_link);
 +    $this->assertRaw($default_output, 'Default formatter displaying correctly on full node view.');
  
+     $this->assertRaw('title="' . $node_file->filename . '"', t('Theme icon includes title attribute correctly'));
+     $this->assertRaw('type="' . $node_file->filemime . '; length=' . $node_file->filesize . '"', t('File link includes type attribute correctly'));
+     $this->assertRaw('href="' . file_create_url($node_file->uri) .'"', t('File link includes href attribute correctly'));
+     $this->assertRaw($default_output, t('Default formatter displaying correctly on full node view.'));
+ 
      // Turn the "display" option off and check that the file is no longer displayed.
 -    $edit = array($field_name . '[' . LANGUAGE_NOT_SPECIFIED . '][0][display]' => FALSE);
 -    $this->drupalPost('node/' . $nid . '/edit', $edit, t('Save and keep published'));
 +    $edit = array($field_name . '[0][display]' => FALSE);
 +    $this->drupalPostForm('node/' . $nid . '/edit', $edit, t('Save and keep published'));
  
 -    $this->assertNoRaw($default_output, t('Field is hidden when "display" option is unchecked.'));
 +    $this->assertNoRaw($default_output, 'Field is hidden when "display" option is unchecked.');
  
      // Add a description and make sure that it is displayed.
      $description = $this->randomName();
