From 17cbfc8cf1a22b088324661bfc42ee1189b42c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jean-Fran=C3=A7ois=20Simon?= Date: Wed, 31 Jul 2013 11:17:13 +0200 Subject: [PATCH] [WebProfilerBundle] made toolbar listener instantiation conditional --- .../WebProfilerExtension.php | 15 +++++---------- .../WebProfilerExtensionTest.php | 18 ++++++++++++------ 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/Symfony/Bundle/WebProfilerBundle/DependencyInjection/WebProfilerExtension.php b/src/Symfony/Bundle/WebProfilerBundle/DependencyInjection/WebProfilerExtension.php index e4b4cb72a078d..d98042dcf5162 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/DependencyInjection/WebProfilerExtension.php +++ b/src/Symfony/Bundle/WebProfilerBundle/DependencyInjection/WebProfilerExtension.php @@ -44,18 +44,13 @@ public function load(array $configs, ContainerBuilder $container) $loader = new XmlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader->load('profiler.xml'); - $loader->load('toolbar.xml'); - - $container->setParameter('web_profiler.debug_toolbar.intercept_redirects', $config['intercept_redirects']); + $container->setParameter('web_profiler.debug_toolbar.position', $config['position']); - if (!$config['toolbar']) { - $mode = WebDebugToolbarListener::DISABLED; - } else { - $mode = WebDebugToolbarListener::ENABLED; + if ($config['toolbar'] || $config['intercept_redirects']) { + $loader->load('toolbar.xml'); + $container->setParameter('web_profiler.debug_toolbar.intercept_redirects', $config['intercept_redirects']); + $container->setParameter('web_profiler.debug_toolbar.mode', $config['toolbar'] ? WebDebugToolbarListener::ENABLED : WebDebugToolbarListener::DISABLED); } - - $container->setParameter('web_profiler.debug_toolbar.mode', $mode); - $container->setParameter('web_profiler.debug_toolbar.position', $config['position']); } /** diff --git a/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php b/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php index f9dd1eacd91c8..f114e74671f33 100644 --- a/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php +++ b/src/Symfony/Bundle/WebProfilerBundle/Tests/DependencyInjection/WebProfilerExtensionTest.php @@ -86,7 +86,7 @@ public function testDefaultConfig($debug) $extension = new WebProfilerExtension(); $extension->load(array(array()), $this->container); - $this->assertFalse($this->container->get('web_profiler.debug_toolbar')->isEnabled()); + $this->assertFalse($this->container->has('web_profiler.debug_toolbar')); $this->assertSaneContainer($this->getDumpedContainer()); } @@ -94,12 +94,16 @@ public function testDefaultConfig($debug) /** * @dataProvider getDebugModes */ - public function testToolbarConfig($enabled) + public function testToolbarConfig($toolbarEnabled, $interceptRedirects, $listenerInjected, $listenerEnabled) { $extension = new WebProfilerExtension(); - $extension->load(array(array('toolbar' => $enabled)), $this->container); + $extension->load(array(array('toolbar' => $toolbarEnabled, 'intercept_redirects' => $interceptRedirects)), $this->container); - $this->assertSame($enabled, $this->container->get('web_profiler.debug_toolbar')->isEnabled()); + $this->assertSame($listenerInjected, $this->container->has('web_profiler.debug_toolbar')); + + if ($listenerInjected) { + $this->assertSame($listenerEnabled, $this->container->get('web_profiler.debug_toolbar')->isEnabled()); + } $this->assertSaneContainer($this->getDumpedContainer()); } @@ -107,8 +111,10 @@ public function testToolbarConfig($enabled) public function getDebugModes() { return array( - array(true), - array(false), + array(false, false, false, false), + array(true, false, true, true), + array(false, true, true, false), + array(true, true, true, true), ); }