From 2bc8c5f79698d61170d5750f8fd81e8ca598f19d Mon Sep 17 00:00:00 2001 From: Kris Wallsmith Date: Fri, 1 Apr 2011 09:37:18 -0700 Subject: [PATCH] [AsseticBundle] moved some parameter defaults to Configuration --- .../DependencyInjection/AsseticExtension.php | 2 - .../Compiler/CheckYuiFilterPass.php | 4 +- .../DependencyInjection/Configuration.php | 8 +-- .../Resources/config/assetic.xml | 8 +-- .../Resources/config/filters/closure.xml | 1 - .../filters/{jepgtran.xml => jpegtran.xml} | 0 .../Resources/config/filters/yui_css.xml | 2 +- .../Resources/config/filters/yui_js.xml | 2 +- .../AsseticExtensionTest.php | 59 ++++++++++--------- 9 files changed, 39 insertions(+), 47 deletions(-) rename src/Symfony/Bundle/AsseticBundle/Resources/config/filters/{jepgtran.xml => jpegtran.xml} (100%) diff --git a/src/Symfony/Bundle/AsseticBundle/DependencyInjection/AsseticExtension.php b/src/Symfony/Bundle/AsseticBundle/DependencyInjection/AsseticExtension.php index 67ba1acf2784..07e9822e5a3c 100644 --- a/src/Symfony/Bundle/AsseticBundle/DependencyInjection/AsseticExtension.php +++ b/src/Symfony/Bundle/AsseticBundle/DependencyInjection/AsseticExtension.php @@ -48,11 +48,9 @@ public function load(array $configs, ContainerBuilder $container) $container->setParameter('assetic.read_from', $config['read_from']); $container->setParameter('assetic.write_to', $config['write_to']); - $container->setParameter('assetic.closure.jar', $config['closure']); $container->setParameter('assetic.java.bin', $config['java']); $container->setParameter('assetic.node.bin', $config['node']); $container->setParameter('assetic.sass.bin', $config['sass']); - $container->setParameter('assetic.yui.jar', $config['yui']); // register filters foreach ($config['filters'] as $name => $filter) { diff --git a/src/Symfony/Bundle/AsseticBundle/DependencyInjection/Compiler/CheckYuiFilterPass.php b/src/Symfony/Bundle/AsseticBundle/DependencyInjection/Compiler/CheckYuiFilterPass.php index 9e4588bde107..a46a02ee3eaa 100644 --- a/src/Symfony/Bundle/AsseticBundle/DependencyInjection/Compiler/CheckYuiFilterPass.php +++ b/src/Symfony/Bundle/AsseticBundle/DependencyInjection/Compiler/CheckYuiFilterPass.php @@ -25,12 +25,12 @@ public function process(ContainerBuilder $container) { if ($container->hasDefinition('assetic.filter.yui_css') && !$container->getParameterBag()->resolveValue($container->getParameter('assetic.filter.yui_css.jar'))) { - throw new \RuntimeException('The Assetic "yui_css" configuration requires a "jar" value.'); + throw new \RuntimeException('The "assetic.filters.yui_css" configuration requires a "jar" value.'); } if ($container->hasDefinition('assetic.filter.yui_js') && !$container->getParameterBag()->resolveValue($container->getParameter('assetic.filter.yui_js.jar'))) { - throw new \RuntimeException('The Assetic "yui_js" configuration requires a "jar" value.'); + throw new \RuntimeException('The "assetic.filters.yui_js" configuration requires a "jar" value.'); } } } diff --git a/src/Symfony/Bundle/AsseticBundle/DependencyInjection/Configuration.php b/src/Symfony/Bundle/AsseticBundle/DependencyInjection/Configuration.php index e6de05ee39a5..1fe2e49af1df 100644 --- a/src/Symfony/Bundle/AsseticBundle/DependencyInjection/Configuration.php +++ b/src/Symfony/Bundle/AsseticBundle/DependencyInjection/Configuration.php @@ -42,11 +42,9 @@ public function getConfigTree($debug, array $bundles) ->booleanNode('use_controller')->defaultValue($debug)->end() ->scalarNode('read_from')->defaultValue('%kernel.root_dir%/../web')->end() ->scalarNode('write_to')->defaultValue('%assetic.read_from%')->end() - ->scalarNode('closure')->defaultNull()->end() - ->scalarNode('java')->defaultNull()->end() - ->scalarNode('node')->defaultNull()->end() - ->scalarNode('sass')->defaultNull()->end() - ->scalarNode('yui')->defaultNull()->end() + ->scalarNode('java')->defaultValue('/usr/bin/java')->end() + ->scalarNode('node')->defaultValue('/usr/bin/node')->end() + ->scalarNode('sass')->defaultValue('/usr/bin/sass')->end() ->end() // bundles diff --git a/src/Symfony/Bundle/AsseticBundle/Resources/config/assetic.xml b/src/Symfony/Bundle/AsseticBundle/Resources/config/assetic.xml index d2819989dacd..e1df93122fe4 100644 --- a/src/Symfony/Bundle/AsseticBundle/Resources/config/assetic.xml +++ b/src/Symfony/Bundle/AsseticBundle/Resources/config/assetic.xml @@ -13,13 +13,7 @@ Symfony\Bundle\AsseticBundle\Factory\Resource\DirectoryResource Symfony\Bundle\AsseticBundle\FilterManager - - /usr/bin/java - /usr/bin/node - /usr/bin/sass - - %kernel.cache_dir%/assetic @@ -40,9 +34,11 @@ %assetic.debug% + %assetic.cache_dir%/config + diff --git a/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/closure.xml b/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/closure.xml index 5012fb121560..918377a77f83 100644 --- a/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/closure.xml +++ b/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/closure.xml @@ -8,7 +8,6 @@ Assetic\Filter\GoogleClosure\CompilerApiFilter Assetic\Filter\GoogleClosure\CompilerJarFilter %assetic.java.bin% - %assetic.closure.jar% diff --git a/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/jepgtran.xml b/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/jpegtran.xml similarity index 100% rename from src/Symfony/Bundle/AsseticBundle/Resources/config/filters/jepgtran.xml rename to src/Symfony/Bundle/AsseticBundle/Resources/config/filters/jpegtran.xml diff --git a/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/yui_css.xml b/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/yui_css.xml index c857b2a2634c..4e99df0686eb 100644 --- a/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/yui_css.xml +++ b/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/yui_css.xml @@ -7,7 +7,7 @@ Assetic\Filter\Yui\CssCompressorFilter %assetic.java.bin% - %assetic.yui.jar% + diff --git a/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/yui_js.xml b/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/yui_js.xml index 3d8fcdadcdd8..9c19adafb65e 100644 --- a/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/yui_js.xml +++ b/src/Symfony/Bundle/AsseticBundle/Resources/config/filters/yui_js.xml @@ -7,7 +7,7 @@ Assetic\Filter\Yui\JsCompressorFilter %assetic.java.bin% - %assetic.yui.jar% + diff --git a/src/Symfony/Bundle/AsseticBundle/Tests/DependencyInjection/AsseticExtensionTest.php b/src/Symfony/Bundle/AsseticBundle/Tests/DependencyInjection/AsseticExtensionTest.php index 6ee53069c19e..c2c265d315b8 100644 --- a/src/Symfony/Bundle/AsseticBundle/Tests/DependencyInjection/AsseticExtensionTest.php +++ b/src/Symfony/Bundle/AsseticBundle/Tests/DependencyInjection/AsseticExtensionTest.php @@ -18,7 +18,6 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Dumper\PhpDumper; use Symfony\Component\DependencyInjection\Scope; -use Symfony\Component\Finder\Finder; use Symfony\Component\HttpFoundation\Request; class AsseticExtensionTest extends \PHPUnit_Framework_TestCase @@ -87,28 +86,33 @@ public function getDebugModes() /** * @dataProvider getFilterNames */ - public function testFilterConfigs($filter) + public function testFilterConfigs($name, $config = array()) { - $config = array('filters' => array($filter => array())); - $extension = new AsseticExtension(); - $extension->load(array($config), $this->container); + $extension->load(array(array('filters' => array($name => $config))), $this->container); $this->assertSaneContainer($this->getDumpedContainer()); } public function getFilterNames() { - $data = array(); - - $finder = new Finder(); - $finder->files()->name('*.xml')->in(__DIR__.'/../../Resources/config/filters'); - - foreach ($finder as $file) { - $data[] = array($file->getBasename('.xml')); - } - - return $data; + return array( + array('closure', array('jar' => '/path/to/closure.jar')), + array('coffee'), + array('cssrewrite'), + array('jpegtran'), + array('jpegoptim'), + array('less'), + array('lessphp'), + array('optipng'), + array('pngout'), + array('sass'), + array('scss'), + array('sprockets'), + array('stylus'), + array('yui_css', array('jar' => '/path/to/yuicompressor.jar')), + array('yui_js', array('jar' => '/path/to/yuicompressor.jar')), + ); } /** @@ -145,19 +149,18 @@ public function testClosureCompilerPass($jar, $expected) { $this->container->addCompilerPass(new CheckClosureFilterPass()); - $config = array( - 'closure' => $jar, + $extension = new AsseticExtension(); + $extension->load(array(array( 'filters' => array( - 'closure' => array(), + 'closure' => array('jar' => $jar), ), - ); - - $extension = new AsseticExtension(); - $extension->load(array($config), $this->container); + )), $this->container); - $this->assertSaneContainer($this->getDumpedContainer()); + $container = $this->getDumpedContainer(); + $this->assertSaneContainer($container); $this->assertTrue($this->container->getDefinition($expected)->hasTag('assetic.filter')); + $this->assertNotEmpty($container->getParameter('assetic.filter.closure.java')); } public function getClosureJarAndExpected() @@ -170,18 +173,16 @@ public function getClosureJarAndExpected() public function testInvalidYuiConfig() { - $this->setExpectedException('RuntimeException'); + $this->setExpectedException('RuntimeException', 'assetic.filters.yui_js'); $this->container->addCompilerPass(new CheckYuiFilterPass()); - $config = array( + $extension = new AsseticExtension(); + $extension->load(array(array( 'filters' => array( 'yui_js' => array(), ), - ); - - $extension = new AsseticExtension(); - $extension->load(array($config), $this->container); + )), $this->container); $this->getDumpedContainer(); }