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
|
* @see \Symfony\Component\HttpFoundation\File\MimeType\MimeTypeGuesser
|
||||||
*/
|
*/
|
||||||
public static function registerWithSymfonyGuesser(ContainerInterface $container) {
|
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();
|
$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'));
|
$singleton->register($container->get('file.mime_type.guesser'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,14 +37,18 @@ class MimeTypeGuesserTest extends UnitTestCase {
|
||||||
$container = new ContainerBuilder();
|
$container = new ContainerBuilder();
|
||||||
$container->set('file.mime_type.guesser', new MimeTypeGuesser(new StreamWrapperManager()));
|
$container->set('file.mime_type.guesser', new MimeTypeGuesser(new StreamWrapperManager()));
|
||||||
MimeTypeGuesser::registerWithSymfonyGuesser($container);
|
MimeTypeGuesser::registerWithSymfonyGuesser($container);
|
||||||
|
$symfony_guesser = SymfonyMimeTypeGuesser::getInstance();
|
||||||
$guessers = $this->readAttribute($symfony_guesser, 'guessers');
|
$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]);
|
$this->assertInstanceOf('Drupal\Core\File\MimeType\MimeTypeGuesser', $guessers[0]);
|
||||||
$count = count($guessers);
|
$count = count($guessers);
|
||||||
|
|
||||||
$container = new ContainerBuilder();
|
$container = new ContainerBuilder();
|
||||||
$container->set('file.mime_type.guesser', new MimeTypeGuesser(new StreamWrapperManager()));
|
$container->set('file.mime_type.guesser', new MimeTypeGuesser(new StreamWrapperManager()));
|
||||||
MimeTypeGuesser::registerWithSymfonyGuesser($container);
|
MimeTypeGuesser::registerWithSymfonyGuesser($container);
|
||||||
|
$symfony_guesser = SymfonyMimeTypeGuesser::getInstance();
|
||||||
$guessers = $this->readAttribute($symfony_guesser, 'guessers');
|
$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]);
|
$this->assertInstanceOf('Drupal\Core\File\MimeType\MimeTypeGuesser', $guessers[0]);
|
||||||
$new_count = count($guessers);
|
$new_count = count($guessers);
|
||||||
$this->assertEquals($count, $new_count, 'The count of mime type guessers remains the same after container re-init.');
|
$this->assertEquals($count, $new_count, 'The count of mime type guessers remains the same after container re-init.');
|
||||||
|
|
Loading…
Reference in New Issue