Issue #2526412 by neclimdul, hussainweb, Fabianx: Remove Singleton hack in registerWithSymfonyGuesser
parent
6f78b08dea
commit
2873e81736
|
@ -118,21 +118,9 @@ class MimeTypeGuesser implements MimeTypeGuesserInterface {
|
|||
* @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'));
|
||||
}
|
||||
|
||||
|
|
|
@ -37,14 +37,18 @@ class MimeTypeGuesserTest extends UnitTestCase {
|
|||
$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.');
|
||||
|
|
Loading…
Reference in New Issue