diff --git a/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php b/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php index cac7a66158988446062f1819fd1babf8438bdd79..ae750502c4bd65bf373a3ce92ac8f41ee9bcb659 100644 --- a/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php +++ b/core/lib/Drupal/Core/File/MimeType/MimeTypeGuesser.php @@ -118,21 +118,9 @@ protected function sortGuessers() { * @see \Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser */ public static function registerWithSymfonyGuesser(ContainerInterface $container) { + // Reset state, so we do not store more and more services during test runs. + SymfonyMimeTypeGuesser::reset(); $singleton = SymfonyMimeTypeGuesser::getInstance(); - - // @todo Remove once Symfony adds a reset() method. - $property = new \ReflectionProperty(get_class($singleton), 'guessers'); - $property->setAccessible(TRUE); - - if (isset($singleton->_beforeDrupalRegistration)) { - // Reset state, else we store more and more services during test runs. - $property->setValue($singleton, $singleton->_beforeDrupalRegistration); - } else { - // Store original state before we register our services. - $singleton->_beforeDrupalRegistration = $property->getValue($singleton); - } - - //$singleton->reset(); $singleton->register($container->get('file.mime_type.guesser')); } diff --git a/core/tests/Drupal/Tests/Core/File/MimeTypeGuesserTest.php b/core/tests/Drupal/Tests/Core/File/MimeTypeGuesserTest.php index 9a712a637510e3b3a51911596ed06bd3bf5a5ad1..6e3f0e830fc604fd6509bd4edd36da8b22db844b 100644 --- a/core/tests/Drupal/Tests/Core/File/MimeTypeGuesserTest.php +++ b/core/tests/Drupal/Tests/Core/File/MimeTypeGuesserTest.php @@ -37,14 +37,18 @@ public function testSymfonyGuesserRegistration() { $container = new ContainerBuilder(); $container->set('file.mime_type.guesser', new MimeTypeGuesser(new StreamWrapperManager())); MimeTypeGuesser::registerWithSymfonyGuesser($container); + $symfony_guesser = SymfonyMimeTypeGuesser::getInstance(); $guessers = $this->readAttribute($symfony_guesser, 'guessers'); + $this->assertSame($container->get('file.mime_type.guesser'), $guessers[0]); $this->assertInstanceOf('Drupal\Core\File\MimeType\MimeTypeGuesser', $guessers[0]); $count = count($guessers); $container = new ContainerBuilder(); $container->set('file.mime_type.guesser', new MimeTypeGuesser(new StreamWrapperManager())); MimeTypeGuesser::registerWithSymfonyGuesser($container); + $symfony_guesser = SymfonyMimeTypeGuesser::getInstance(); $guessers = $this->readAttribute($symfony_guesser, 'guessers'); + $this->assertSame($container->get('file.mime_type.guesser'), $guessers[0]); $this->assertInstanceOf('Drupal\Core\File\MimeType\MimeTypeGuesser', $guessers[0]); $new_count = count($guessers); $this->assertEquals($count, $new_count, 'The count of mime type guessers remains the same after container re-init.');