/**
* {@inheritdoc}
*/
public function setUp()
{
parent::setUp();
if (!in_array($this->type, array('form', 'filter'))) {
throw new \Exception('Please override $this->type in your test class specifying template to use (either form or filter)');
}
$rendererEngine = new TwigRendererEngine(array($this->type . '_admin_fields.html.twig'));
$csrfManagerClass = interface_exists('Symfony\\Component\\Security\\Csrf\\CsrfTokenManagerInterface') ? 'Symfony\\Component\\Security\\Csrf\\CsrfTokenManagerInterface' : 'Symfony\\Component\\Form\\Extension\\Csrf\\CsrfProvider\\CsrfProviderInterface';
$renderer = new TwigRenderer($rendererEngine, $this->getMock($csrfManagerClass));
$this->extension = new FormExtension($renderer);
$twigPaths = array(__DIR__ . '/../../../Resources/views/Form');
//this is ugly workaround for different build strategies and, possibly,
//different TwigBridge installation directories
if (is_dir(__DIR__ . '/../../../vendor/symfony/twig-bridge/Resources/views/Form')) {
$twigPaths[] = __DIR__ . '/../../../vendor/symfony/twig-bridge/Resources/views/Form';
} elseif (is_dir(__DIR__ . '/../../../vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form')) {
$twigPaths[] = __DIR__ . '/../../../vendor/symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form';
} else {
$twigPaths[] = __DIR__ . '/../../../../../symfony/symfony/src/Symfony/Bridge/Twig/Resources/views/Form';
}
$loader = new StubFilesystemLoader($twigPaths);
$this->environment = new \Twig_Environment($loader, array('strict_variables' => true));
$this->environment->addGlobal('sonata_admin', $this->getSonataAdmin());
$this->environment->addExtension(new TranslationExtension(new StubTranslator()));
$this->environment->addExtension($this->extension);
$this->extension->initRuntime($this->environment);
}