123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Bundle\WebProfilerBundle\Tests\DependencyInjection;
- use Symfony\Bundle\WebProfilerBundle\Tests\TestCase;
- use Symfony\Bundle\WebProfilerBundle\DependencyInjection\WebProfilerExtension;
- use Symfony\Component\DependencyInjection\Container;
- use Symfony\Component\DependencyInjection\ContainerBuilder;
- use Symfony\Component\DependencyInjection\Definition;
- use Symfony\Component\DependencyInjection\Reference;
- use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
- use Symfony\Component\DependencyInjection\Scope;
- class WebProfilerExtensionTest extends TestCase
- {
- private $kernel;
- /**
- * @var Symfony\Component\DependencyInjection\Container $container
- */
- private $container;
- public static function assertSaneContainer(Container $container, $message = '')
- {
- $errors = array();
- foreach ($container->getServiceIds() as $id) {
- try {
- $container->get($id);
- } catch (\Exception $e) {
- $errors[$id] = $e->getMessage();
- }
- }
- self::assertEquals(array(), $errors, $message);
- }
- protected function setUp()
- {
- parent::setUp();
- $this->kernel = $this->getMock('Symfony\\Component\\HttpKernel\\KernelInterface');
- $this->container = new ContainerBuilder();
- $this->container->addScope(new Scope('request'));
- $this->container->register('request', 'Symfony\\Component\\HttpFoundation\\Request')->setScope('request');
- $this->container->register('router', $this->getMockClass('Symfony\\Component\\Routing\\RouterInterface'));
- $this->container->register('templating.helper.assets', $this->getMockClass('Symfony\\Component\\Templating\\Helper\\AssetsHelper'));
- $this->container->register('templating.helper.router', $this->getMockClass('Symfony\\Bundle\\FrameworkBundle\\Templating\\Helper\\RouterHelper'))
- ->addArgument(new Reference('router'));
- $this->container->register('twig', 'Twig_Environment');
- $this->container->setParameter('kernel.bundles', array());
- $this->container->setParameter('kernel.cache_dir', __DIR__);
- $this->container->setParameter('kernel.debug', false);
- $this->container->setParameter('kernel.root_dir', __DIR__);
- $this->container->setParameter('profiler.class', array('Symfony\\Component\\HttpKernel\\Profiler\\Profiler'));
- $this->container->register('profiler', $this->getMockClass('Symfony\\Component\\HttpKernel\\Profiler\\Profiler'))
- ->addArgument(new Definition($this->getMockClass('Symfony\\Component\\HttpKernel\\Profiler\\ProfilerStorageInterface')));
- $this->container->setParameter('data_collector.templates', array());
- $this->container->set('kernel', $this->kernel);
- }
- protected function tearDown()
- {
- parent::tearDown();
- $this->container = null;
- $this->kernel = null;
- }
- /**
- * @dataProvider getDebugModes
- */
- public function testDefaultConfig($debug)
- {
- $this->container->setParameter('kernel.debug', $debug);
- $extension = new WebProfilerExtension();
- $extension->load(array(array()), $this->container);
- $this->assertFalse($this->container->get('web_profiler.debug_toolbar')->isEnabled());
- $this->assertSaneContainer($this->getDumpedContainer());
- }
- /**
- * @dataProvider getDebugModes
- */
- public function testToolbarConfig($enabled)
- {
- $extension = new WebProfilerExtension();
- $extension->load(array(array('toolbar' => $enabled)), $this->container);
- $this->assertSame($enabled, $this->container->get('web_profiler.debug_toolbar')->isEnabled());
- $this->assertSaneContainer($this->getDumpedContainer());
- }
- public function getDebugModes()
- {
- return array(
- array(true),
- array(false),
- );
- }
- private function getDumpedContainer()
- {
- static $i = 0;
- $class = 'WebProfilerExtensionTestContainer'.$i++;
- $this->container->compile();
- $dumper = new PhpDumper($this->container);
- eval('?>'.$dumper->dump(array('class' => $class)));
- $container = new $class();
- $container->enterScope('request');
- $container->set('kernel', $this->kernel);
- return $container;
- }
- }
|