diff --git a/core/core.services.yml b/core/core.services.yml
index 10d512169036b0f368cc508ad5f5b405e6b1672d..c4c75937bcb7f481b87c51ea840a62071ebadfc8 100644
--- a/core/core.services.yml
+++ b/core/core.services.yml
@@ -1168,7 +1168,6 @@ services:
     alias: plugin.manager.element_info
   file.mime_type.guesser:
     class: Drupal\Core\File\MimeType\MimeTypeGuesser
-    arguments: ['@stream_wrapper_manager']
     tags:
       - { name: service_collector, tag: mime_type_guesser, call: addGuesser }
   file.mime_type.guesser.extension:
@@ -1176,14 +1175,6 @@ services:
     arguments: ['@module_handler']
     tags:
       - { name: mime_type_guesser }
-  file.mime_type.guesser.fileinfo:
-    class: Symfony\Component\HttpFoundation\File\MimeType\FileinfoMimeTypeGuesser
-    tags:
-      - { name: mime_type_guesser, priority: 64 }
-  file.mime_type.guesser.filebinary:
-    class: Symfony\Component\HttpFoundation\File\MimeType\FileBinaryMimeTypeGuesser
-    tags:
-      - { name: mime_type_guesser, priority: 32 }
   renderer:
     class: Drupal\Core\Render\Renderer
     arguments: ['@controller_resolver', '@theme.manager', '@plugin.manager.element_info', '@request_stack', '@cache_factory', '@cache_contexts']
diff --git a/core/includes/file.inc b/core/includes/file.inc
index 066f0bd2acbbf8cb2067aad1dd2a41788d33e46c..d47fbc44f054c1930a4ae6311c39b155c1bc9a6e 100644
--- a/core/includes/file.inc
+++ b/core/includes/file.inc
@@ -1150,6 +1150,32 @@ function file_upload_max_size() {
   return $max_size;
 }
 
+/**
+ * Determines an Internet Media Type or MIME type from a filename.
+ *
+ * @param $uri
+ *   A string containing the URI, path, or filename.
+ * @param $mapping
+ *   An optional map of extensions to their mimetypes, in the form:
+ *    - 'mimetypes': a list of mimetypes, keyed by an identifier,
+ *    - 'extensions': the mapping itself, an associative array in which the key
+ *      is the extension (lowercase) and the value is the mimetype identifier.
+ *
+ * @return
+ *   The internet media type registered for the extension or
+ *   application/octet-stream for unknown extensions.
+ *
+ * @deprecated in Drupal 8.x-dev, will be removed before Drupal 8.0. Calls are
+ *   passed on to a new file.mime_type.guesser service, and the $mapping
+ *   parameter is ignored. Use
+ *   \Drupal::service('file.mime_type.guesser')->guess($uri).
+ *
+ * @see \Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser::guess()
+ */
+function file_get_mimetype($uri, $mapping = NULL) {
+  return \Drupal::service('file.mime_type.guesser')->guess($uri);
+}
+
 /**
  * Sets the permissions on a file or directory.
  *
diff --git a/core/lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php b/core/lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php
index dda1c4e9312bfb00beb8338d995190c431ced3e9..53712cae10085d35dcf4f0adc87a422040886f13 100644
--- a/core/lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php
+++ b/core/lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php
@@ -16,12 +16,12 @@
 class ExtensionMimeTypeGuesser implements MimeTypeGuesserInterface {
 
   /**
-   * MIME extension mappings.
+   * Default MIME extension mapping.
    *
    * @var array
    *   Array of mimetypes correlated to the extensions that relate to them.
    */
-  protected $mapping = array(
+  protected $defaultMapping = array(
     'mimetypes' => array(
       0 => 'application/andrew-inset',
       1 => 'application/atom',
@@ -864,10 +864,41 @@ class ExtensionMimeTypeGuesser implements MimeTypeGuesserInterface {
     ),
   );
 
+  /**
+   * The MIME types mapping array after going through the module handler.
+   *
+   * @var array
+   */
+  protected $mapping;
+
+  /**
+   * The module handler.
+   *
+   * @var \Drupal\Core\Extension\ModuleHandlerInterface
+   */
+  protected $moduleHandler;
+
+  /**
+   * Constructs a new ExtensionMimeTypeGuesser.
+   *
+   * @param \Drupal\Core\Extension\ModuleHandlerInterface $module_handler
+   *   The module handler.
+   */
+  public function __construct(ModuleHandlerInterface $module_handler) {
+    $this->moduleHandler = $module_handler;
+  }
+
   /**
    * {@inheritdoc}
    */
   public function guess($path) {
+    if ($this->mapping === NULL) {
+      $mapping = $this->defaultMapping;
+      // Allow modules to alter the default mapping.
+      $this->moduleHandler->alter('file_mimetype_mapping', $mapping);
+      $this->mapping = $mapping;
+    }
+
     $extension = '';
     $file_parts = explode('.', drupal_basename($path));
 
@@ -889,4 +920,14 @@ public function guess($path) {
     return 'application/octet-stream';
   }
 
+  /**
+   * Sets the mimetypes/extension mapping to use when guessing mimetype.
+   *
+   * @param array|null $mapping
+   *   Passing a NULL mapping will cause guess() to use self::$defaultMapping.
+   */
+  public function setMapping(array $mapping = NULL) {
+    $this->mapping = $mapping;
+  }
+
 }
diff --git a/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php b/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php
index ee3bc7defe1e6b7061aed33a6c4edacaa07ae448..20544638a090e335e9ebab9b0d0c6a48af5d79ea 100644
--- a/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php
+++ b/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php
@@ -7,7 +7,6 @@
 
 namespace Drupal\Core\File\MimeType;
 
-use Drupal\Core\StreamWrapper\StreamWrapperManager;
 use Symfony\Component\DependencyInjection\ContainerInterface;
 use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser as SymfonyMimeTypeGuesser;
 use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface;
@@ -17,13 +16,6 @@
  */
 class MimeTypeGuesser implements MimeTypeGuesserInterface {
 
-  /**
-   * The stream wrapper manager.
-   *
-   * @var \Drupal\Core\StreamWrapper\StreamWrapperManager
-   */
-  protected $streamWrapperManager;
-
   /**
    * An array of arrays of registered guessers keyed by priority.
    *
@@ -43,21 +35,11 @@ class MimeTypeGuesser implements MimeTypeGuesserInterface {
    */
   protected $sortedGuessers = NULL;
 
-  /**
-   * Constructs the mime type guesser service.
-   *
-   * @param \Drupal\Core\StreamWrapper\StreamWrapperManager $stream_wrapper_manager
-   *   The stream wrapper manager.
-   */
-  public function __construct(StreamWrapperManager $stream_wrapper_manager) {
-    $this->streamWrapperManager = $stream_wrapper_manager;
-  }
-
   /**
    * {@inheritdoc}
    */
   public function guess($path) {
-    if ($wrapper = $this->streamWrapperManager->getViaUri($path)) {
+    if ($wrapper = file_stream_wrapper_get_instance_by_uri($path)) {
       // Get the real path from the stream wrapper.
       $path = $wrapper->realpath();
     }
@@ -86,15 +68,9 @@ public function guess($path) {
    * @return $this
    */
   public function addGuesser(MimeTypeGuesserInterface $guesser, $priority = 0) {
-    // Only add guessers which are supported.
-    // @see \Symfony\Component\HttpFoundation\File\MimeType\FileinfoMimeTypeGuesser
-    // @see \Symfony\Component\HttpFoundation\File\MimeType\FileBinaryMimeTypeGuesser
-    $supported = method_exists($guesser, 'isSupported') ? $guesser->isSupported() : TRUE;
-    if ($supported) {
-      $this->guessers[$priority][] = $guesser;
-      // Mark sorted guessers for rebuild.
-      $this->sortedGuessers = NULL;
-    }
+    $this->guessers[$priority][] = $guesser;
+    // Mark sorted guessers for rebuild.
+    $this->sortedGuessers = NULL;
     return $this;
   }
 
diff --git a/core/modules/file/file.module b/core/modules/file/file.module
index e572585ddf9516e96a911631cb8ac79b0284a53b..654530165cf340fc246736360864737153198b62 100644
--- a/core/modules/file/file.module
+++ b/core/modules/file/file.module
@@ -756,7 +756,7 @@ function file_save_upload($form_field_name, $validators = array(), $destination
       'uri' => $file_info->getRealPath(),
       'filesize' => $file_info->getSize(),
     );
-    $values['filemime'] = \Drupal::service('file.mime_type.guesser')->guess($values['uri']);
+    $values['filemime'] = file_get_mimetype($values['filename']);
     $file = entity_create('file', $values);
 
     $extensions = '';
diff --git a/core/modules/file/src/Entity/File.php b/core/modules/file/src/Entity/File.php
index 2dbbf31aa9260750a29b5372906287cc847eab3a..7cf5058b237ae42382bcf044f49a91d63c4d5d88 100644
--- a/core/modules/file/src/Entity/File.php
+++ b/core/modules/file/src/Entity/File.php
@@ -185,7 +185,7 @@ public static function preCreate(EntityStorageInterface $storage, array &$values
 
     // Automatically detect filemime if not set.
     if (!isset($values['filemime']) && isset($values['uri'])) {
-      $values['filemime'] = \Drupal::service('file.mime_type.guesser')->guess($values['uri']);
+      $values['filemime'] = file_get_mimetype($values['uri']);
     }
   }
 
diff --git a/core/modules/file/src/Tests/FileManagedUnitTestBase.php b/core/modules/file/src/Tests/FileManagedUnitTestBase.php
index d822aeaa60795dbb6e9f4a92cee482fd86dc9b3c..00448c515f6d734aa98fdbb556498dd6017a9201 100644
--- a/core/modules/file/src/Tests/FileManagedUnitTestBase.php
+++ b/core/modules/file/src/Tests/FileManagedUnitTestBase.php
@@ -151,8 +151,7 @@ function assertSameFile(FileInterface $file1, FileInterface $file2) {
    *
    * @param $filepath
    *   Optional string specifying the file path. If none is provided then a
-   *   randomly named file with the extension .txt will be created in the site's
-   *   files directory.
+   *   randomly named file will be created in the site's files directory.
    * @param $contents
    *   Optional contents to save into the file. If a NULL value is provided an
    *   arbitrary string will be used.
@@ -183,8 +182,7 @@ function createFile($filepath = NULL, $contents = NULL, $scheme = NULL) {
    *
    * @param string $filepath
    *   Optional string specifying the file path. If none is provided then a
-   *   randomly named file with the extension .txt will be created in the site's
-   *   files directory.
+   *   randomly named file will be created in the site's files directory.
    * @param string $contents
    *   Optional contents to save into the file. If a NULL value is provided an
    *   arbitrary string will be used.
@@ -204,7 +202,7 @@ function createUri($filepath = NULL, $contents = NULL, $scheme = NULL) {
     if (!isset($scheme)) {
       $scheme = file_default_scheme();
     }
-    $filepath = $scheme . '://' . $filepath . '.txt';
+    $filepath = $scheme . '://' . $filepath;
 
     if (!isset($contents)) {
       $contents = "file_put_contents() doesn't seem to appreciate empty strings so let's put in some data.";
diff --git a/core/modules/file/src/Tests/SaveDataTest.php b/core/modules/file/src/Tests/SaveDataTest.php
index bf1255fe38ffff65cba17050008d67e9393b26f3..8368e0b33ce1497896d1a2e4591eee3f3ae73f04 100644
--- a/core/modules/file/src/Tests/SaveDataTest.php
+++ b/core/modules/file/src/Tests/SaveDataTest.php
@@ -25,7 +25,7 @@ function testWithoutFilename() {
     $this->assertEqual(file_default_scheme(), file_uri_scheme($result->getFileUri()), "File was placed in Drupal's files directory.");
     $this->assertEqual($result->getFilename(), drupal_basename($result->getFileUri()), "Filename was set to the file's basename.");
     $this->assertEqual($contents, file_get_contents($result->getFileUri()), 'Contents of the file are correct.');
-    $this->assertEqual($result->getMimeType(), 'text/plain', 'A MIME type was set.');
+    $this->assertEqual($result->getMimeType(), 'application/octet-stream', 'A MIME type was set.');
     $this->assertTrue($result->isPermanent(), "The file's status was set to permanent.");
 
     // Check that the correct hooks were called.
@@ -74,7 +74,7 @@ function testExistingRename() {
     $this->assertEqual('public', file_uri_scheme($result->getFileUri()), "File was placed in Drupal's files directory.");
     $this->assertEqual($result->getFilename(), $existing->getFilename(), 'Filename was set to the basename of the source, rather than that of the renamed file.');
     $this->assertEqual($contents, file_get_contents($result->getFileUri()), 'Contents of the file are correct.');
-    $this->assertEqual($result->getMimeType(), 'text/plain', 'A MIME type was set.');
+    $this->assertEqual($result->getMimeType(), 'application/octet-stream', 'A MIME type was set.');
     $this->assertTrue($result->isPermanent(), "The file's status was set to permanent.");
 
     // Check that the correct hooks were called.
@@ -102,7 +102,7 @@ function testExistingReplace() {
     $this->assertEqual('public', file_uri_scheme($result->getFileUri()), "File was placed in Drupal's files directory.");
     $this->assertEqual($result->getFilename(), $existing->getFilename(), 'Filename was set to the basename of the existing file, rather than preserving the original name.');
     $this->assertEqual($contents, file_get_contents($result->getFileUri()), 'Contents of the file are correct.');
-    $this->assertEqual($result->getMimeType(), 'text/plain', 'A MIME type was set.');
+    $this->assertEqual($result->getMimeType(), 'application/octet-stream', 'A MIME type was set.');
     $this->assertTrue($result->isPermanent(), "The file's status was set to permanent.");
 
     // Check that the correct hooks were called.
diff --git a/core/modules/file/tests/file_test/file_test.module b/core/modules/file/tests/file_test/file_test.module
index 8c12c563cbb38175d0aa14c14d6b20b7eb3a3ff3..6ee2ecc32170fccdce9c72c0de05012d02377567 100644
--- a/core/modules/file/tests/file_test/file_test.module
+++ b/core/modules/file/tests/file_test/file_test.module
@@ -283,6 +283,21 @@ function file_test_file_url_alter(&$uri) {
   }
 }
 
+/**
+ * Implements hook_file_mimetype_mapping_alter().
+ */
+function file_test_file_mimetype_mapping_alter(&$mapping) {
+  // Add new mappings.
+  $mapping['mimetypes']['file_test_mimetype_1'] = 'madeup/file_test_1';
+  $mapping['mimetypes']['file_test_mimetype_2'] = 'madeup/file_test_2';
+  $mapping['mimetypes']['file_test_mimetype_3'] = 'madeup/doc';
+  $mapping['extensions']['file_test_1'] = 'file_test_mimetype_1';
+  $mapping['extensions']['file_test_2'] = 'file_test_mimetype_2';
+  $mapping['extensions']['file_test_3'] = 'file_test_mimetype_2';
+  // Override existing mapping.
+  $mapping['extensions']['doc'] = 'file_test_mimetype_3';
+}
+
 /**
  * Helper validator that returns the $errors parameter.
  */
diff --git a/core/modules/system/file.api.php b/core/modules/system/file.api.php
index 21b62b3f78ba9a62022e24dba175aaed603bcf90..a4fd8e4c6106d905173e03c6f39257db31527877 100644
--- a/core/modules/system/file.api.php
+++ b/core/modules/system/file.api.php
@@ -99,6 +99,30 @@ function hook_file_url_alter(&$uri) {
   }
 }
 
+/**
+ * Alter MIME type mappings used to determine MIME type from a file extension.
+ *
+ * Invoked by \Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser::guess(). It
+ * is used to allow modules to add to or modify the default mapping from
+ * \Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser::$defaultMapping.
+ *
+ * @param $mapping
+ *   An array of mimetypes correlated to the extensions that relate to them.
+ *   The array has 'mimetypes' and 'extensions' elements, each of which is an
+ *   array.
+ *
+ * @see \Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser::guess()
+ * @see \Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser::$defaultMapping
+ */
+function hook_file_mimetype_mapping_alter(&$mapping) {
+  // Add new MIME type 'drupal/info'.
+  $mapping['mimetypes']['example_info'] = 'drupal/info';
+  // Add new extension '.info.yml' and map it to the 'drupal/info' MIME type.
+  $mapping['extensions']['info'] = 'example_info';
+  // Override existing extension mapping for '.ogg' files.
+  $mapping['extensions']['ogg'] = 189;
+}
+
 /**
  * Alter archiver information declared by other modules.
  *
diff --git a/core/modules/system/src/Form/ThemeSettingsForm.php b/core/modules/system/src/Form/ThemeSettingsForm.php
index 1e40d85848cee6decfaa7e0ffd2db2cb0a7ff5d9..79cf30505d40682c499c143b09efbe745dd10148 100644
--- a/core/modules/system/src/Form/ThemeSettingsForm.php
+++ b/core/modules/system/src/Form/ThemeSettingsForm.php
@@ -12,7 +12,6 @@
 use Drupal\Core\Render\Element;
 use Drupal\Core\StreamWrapper\PublicStream;
 use Symfony\Component\DependencyInjection\ContainerInterface;
-use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface;
 use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
 use Drupal\Core\Cache\Cache;
 use Drupal\Core\Config\ConfigFactoryInterface;
@@ -45,13 +44,6 @@ class ThemeSettingsForm extends ConfigFormBase {
    */
   protected $editableConfig = [];
 
-  /**
-   * The mime type guesser.
-   *
-   * @var \Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface
-   */
-  protected $mimeTypeGuesser;
-
   /**
    * Constructs a ThemeSettingsForm object.
    *
@@ -61,15 +53,12 @@ class ThemeSettingsForm extends ConfigFormBase {
    *   The module handler instance to use.
    * @param \Drupal\Core\Extension\ThemeHandlerInterface $theme_handler
    * The theme handler.
-   * @param \Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface $mime_type_guesser
-   *   The mime type guesser.
    */
-  public function __construct(ConfigFactoryInterface $config_factory, ModuleHandlerInterface $module_handler, ThemeHandlerInterface $theme_handler, MimeTypeGuesserInterface $mime_type_guesser) {
+  public function __construct(ConfigFactoryInterface $config_factory, ModuleHandlerInterface $module_handler, ThemeHandlerInterface $theme_handler) {
     parent::__construct($config_factory);
 
     $this->moduleHandler = $module_handler;
     $this->themeHandler = $theme_handler;
-    $this->mimeTypeGuesser = $mime_type_guesser;
   }
 
   /**
@@ -79,8 +68,7 @@ public static function create(ContainerInterface $container) {
     return new static(
       $container->get('config.factory'),
       $container->get('module_handler'),
-      $container->get('theme_handler'),
-      $container->get('file.mime_type.guesser')
+      $container->get('theme_handler')
     );
   }
 
@@ -458,7 +446,7 @@ public function submitForm(array &$form, FormStateInterface $form_state) {
       }
 
       if (empty($values['default_favicon']) && !empty($values['favicon_path'])) {
-        $values['favicon_mimetype'] = $this->mimeTypeGuesser->guess($values['favicon_path']);
+        $values['favicon_mimetype'] = file_get_mimetype($values['favicon_path']);
       }
     }
 
diff --git a/core/modules/system/src/Tests/File/MimeTypeTest.php b/core/modules/system/src/Tests/File/MimeTypeTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..f09b60dd845fa325086e72d9b17cca0cdbe871df
--- /dev/null
+++ b/core/modules/system/src/Tests/File/MimeTypeTest.php
@@ -0,0 +1,94 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\system\Tests\File\MimeTypeTest.
+ */
+
+namespace Drupal\system\Tests\File;
+
+/**
+ * Tests filename mimetype detection.
+ *
+ * @group File
+ */
+class MimeTypeTest extends FileTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('file_test');
+
+  /**
+   * Test mapping of mimetypes from filenames.
+   */
+  public function testFileMimeTypeDetection() {
+    $prefix = 'public://';
+
+    $test_case = array(
+      'test.jar' => 'application/java-archive',
+      'test.jpeg' => 'image/jpeg',
+      'test.JPEG' => 'image/jpeg',
+      'test.jpg' => 'image/jpeg',
+      'test.jar.jpg' => 'image/jpeg',
+      'test.jpg.jar' => 'application/java-archive',
+      'test.pcf.Z' => 'application/x-font',
+      'pcf.z' => 'application/octet-stream',
+      'jar' => 'application/octet-stream',
+      'some.junk' => 'application/octet-stream',
+      'foo.file_test_1' => 'madeup/file_test_1',
+      'foo.file_test_2' => 'madeup/file_test_2',
+      'foo.doc' => 'madeup/doc',
+      'test.ogg' => 'audio/ogg',
+    );
+
+    $guesser = $this->container->get('file.mime_type.guesser');
+    // Test using default mappings.
+    foreach ($test_case as $input => $expected) {
+      // Test stream [URI].
+      $output = $guesser->guess($prefix . $input);
+      $this->assertIdentical($output, $expected, format_string('Mimetype for %input is %output (expected: %expected).', array('%input' => $input, '%output' => $output, '%expected' => $expected)));
+
+      // Test normal path equivalent
+      $output = $guesser->guess($input);
+      $this->assertIdentical($output, $expected, format_string('Mimetype (using default mappings) for %input is %output (expected: %expected).', array('%input' => $input, '%output' => $output, '%expected' => $expected)));
+    }
+
+    // Now test the extension gusser by passing in a custom mapping.
+    $mapping = array(
+      'mimetypes' => array(
+        0 => 'application/java-archive',
+        1 => 'image/jpeg',
+      ),
+      'extensions' => array(
+         'jar' => 0,
+         'jpg' => 1,
+      )
+    );
+
+    $test_case = array(
+      'test.jar' => 'application/java-archive',
+      'test.jpeg' => 'application/octet-stream',
+      'test.jpg' => 'image/jpeg',
+      'test.jar.jpg' => 'image/jpeg',
+      'test.jpg.jar' => 'application/java-archive',
+      'test.pcf.z' => 'application/octet-stream',
+      'pcf.z' => 'application/octet-stream',
+      'jar' => 'application/octet-stream',
+      'some.junk' => 'application/octet-stream',
+      'foo.file_test_1' => 'application/octet-stream',
+      'foo.file_test_2' => 'application/octet-stream',
+      'foo.doc' => 'application/octet-stream',
+      'test.ogg' => 'application/octet-stream',
+    );
+    $extension_guesser = $this->container->get('file.mime_type.guesser.extension');
+    $extension_guesser->setMapping($mapping);
+
+    foreach ($test_case as $input => $expected) {
+      $output = $extension_guesser->guess($input);
+      $this->assertIdentical($output, $expected, format_string('Mimetype (using passed-in mappings) for %input is %output (expected: %expected).', array('%input' => $input, '%output' => $output, '%expected' => $expected)));
+    }
+  }
+}
diff --git a/core/tests/Drupal/Tests/Core/File/ExtensionMimeTypeGuesserTest.php b/core/tests/Drupal/Tests/Core/File/ExtensionMimeTypeGuesserTest.php
deleted file mode 100644
index b1160de29664a3098f576dc3eb4c131333beadce..0000000000000000000000000000000000000000
--- a/core/tests/Drupal/Tests/Core/File/ExtensionMimeTypeGuesserTest.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-/**
- * @file
- * Contains \Drupal\Tests\Core\File\ExtensionMimeTypeGuesserTest.
- */
-
-namespace Drupal\Tests\Core\File {
-
-use Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser;
-use Drupal\Tests\UnitTestCase;
-
-/**
- * @coversDefaultClass \Drupal\Core\File\MimeType\ExtensionMimeTypeGuesser
- * @group File
- */
-class ExtensionMimeTypeGuesserTest extends UnitTestCase {
-
-  /**
-   * @covers ::guess
-   * @dataProvider guesserDataProvider
-   */
-  public function testGuesser($path, $mime_type) {
-    $guesser = new ExtensionMimeTypeGuesser();
-    $this->assertEquals($mime_type, $guesser->guess($path));
-  }
-
-  /**
-   * Provides data for  ExtensionMimeTypeGuesserTest::testGuesser().
-   */
-  public function guesserDataProvider() {
-    return [
-      ['test.jar', 'application/java-archive'],
-      ['test.jpeg', 'image/jpeg'],
-      ['test.JPEG', 'image/jpeg'],
-      ['test.jpg', 'image/jpeg'],
-      ['test.jar.jpg', 'image/jpeg'],
-      ['test.jpg.jar', 'application/java-archive'],
-      ['test.pcf.Z', 'application/x-font'],
-      ['pcf.z', 'application/octet-stream'],
-      ['jar', 'application/octet-stream'],
-      ['some.junk', 'application/octet-stream'],
-      ['foo.file_test_1', 'application/octet-stream'],
-      ['foo.file_test_2', 'application/octet-stream'],
-      ['foo.doc', 'application/msword'],
-      ['test.ogg', 'audio/ogg'],
-    ];
-  }
-
-}
-
-}
-namespace {
-  if (!function_exists('drupal_basename')) {
-    function drupal_basename($uri, $suffix = NULL) {
-      return basename($uri, $suffix);
-    }
-  }
-}
diff --git a/core/tests/Drupal/Tests/Core/File/MimeTypeGuesserTest.php b/core/tests/Drupal/Tests/Core/File/MimeTypeGuesserTest.php
index 87729bd59d86bf26f8342b4aa14240d3b69f7f6d..a1bf9c2327cbaab93fe2fc6fcc591d6db3db4c65 100644
--- a/core/tests/Drupal/Tests/Core/File/MimeTypeGuesserTest.php
+++ b/core/tests/Drupal/Tests/Core/File/MimeTypeGuesserTest.php
@@ -14,39 +14,10 @@
 
 /**
  * @coversDefaultClass \Drupal\Core\File\MimeType\MimeTypeGuesser
- * @group File
+ * @group DrupalKernel
  */
 class MimeTypeGuesserTest extends UnitTestCase {
 
-  /**
-   * @covers ::guess
-   * @covers ::addGuesser
-   * @covers ::sortGuessers
-   */
-  public function testGuess() {
-    $stream_wrapper_manager = $this->getMockBuilder('Drupal\Core\StreamWrapper\StreamWrapperManager')
-      ->disableOriginalConstructor()
-      ->getMock();
-    $stream_wrapper_manager->expects($this->any())
-      ->method('getViaUri')
-      ->willReturn(NULL);
-    $mime_guesser_service = new MimeTypeGuesser($stream_wrapper_manager);
-    $guesser_1 = $this->getMock('Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface');
-    $guesser_1->expects($this->once())
-      ->method('guess')
-      ->with('file.txt')
-      ->willReturn('text/plain');
-    $mime_guesser_service->addGuesser($guesser_1);
-    $this->assertEquals('text/plain', $mime_guesser_service->guess('file.txt'));
-    $guesser_2 = $this->getMock('Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesserInterface');
-    $guesser_2->expects($this->once())
-      ->method('guess')
-      ->with('file.txt')
-      ->willReturn('text/x-diff');
-    $mime_guesser_service->addGuesser($guesser_2, 10);
-    $this->assertEquals('text/x-diff', $mime_guesser_service->guess('file.txt'));
-  }
-
   /**
    * @covers ::registerWithSymfonyGuesser
    *
@@ -62,11 +33,8 @@ public function testSymfonyGuesserRegistration() {
     if (count($guessers)) {
       $this->assertNotInstanceOf('Drupal\Core\File\MimeType\MimeTypeGuesser', $guessers[0]);
     }
-    $stream_wrapper_manager = $this->getMockBuilder('Drupal\Core\StreamWrapper\StreamWrapperManager')
-      ->disableOriginalConstructor()
-      ->getMock();
     $container = new ContainerBuilder();
-    $container->set('file.mime_type.guesser', new MimeTypeGuesser($stream_wrapper_manager));
+    $container->set('file.mime_type.guesser', new MimeTypeGuesser());
     MimeTypeGuesser::registerWithSymfonyGuesser($container);
     $guessers = $this->readAttribute($symfony_guesser, 'guessers');
     $this->assertInstanceOf('Drupal\Core\File\MimeType\MimeTypeGuesser', $guessers[0]);