Browse Source

[AsseticBundle] fixed closure .jar configuration

Kris Wallsmith 14 years ago
parent
commit
e62031a54e

+ 7 - 5
src/Symfony/Bundle/AsseticBundle/Resources/config/google_closure_compiler.xml

@@ -4,9 +4,11 @@
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.symfony-project.org/schema/dic/services http://www.symfony-project.org/schema/dic/services/services-1.0.xsd">
 
-    <service id="assetic.filter.google_closure_compiler" class="%assetic.filter.google_closure_compiler_jar.class%">
-        <tag name="assetic.filter" alias="closure" />
-        <argument>%assetic.google_closure_compiler_jar%</argument>
-        <argument>%assetic.java_bin%</argument>
-    </service>
+    <services>
+        <service id="assetic.filter.google_closure_compiler" class="%assetic.filter.google_closure_compiler_jar.class%">
+            <tag name="assetic.filter" alias="closure" />
+            <argument>%assetic.google_closure_compiler_jar%</argument>
+            <argument>%assetic.java_bin%</argument>
+        </service>
+    </services>
 </container>

+ 26 - 15
src/Symfony/Bundle/AsseticBundle/Tests/DependencyInjection/AsseticExtensionTest.php

@@ -12,6 +12,7 @@
 namespace Symfony\Bundle\AsseticBundle\Tests\DependencyInjection;
 
 use Symfony\Bundle\AsseticBundle\DependencyInjection\AsseticExtension;
+use Symfony\Component\DependencyInjection\Container;
 use Symfony\Component\DependencyInjection\ContainerBuilder;
 use Symfony\Component\DependencyInjection\Dumper\PhpDumper;
 use Symfony\Component\DependencyInjection\Scope;
@@ -22,6 +23,20 @@ class AsseticExtensionTest extends \PHPUnit_Framework_TestCase
     private $kernel;
     private $container;
 
+    static public 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()
     {
         if (!class_exists('Assetic\\AssetManager')) {
@@ -56,11 +71,7 @@ class AsseticExtensionTest extends \PHPUnit_Framework_TestCase
         $this->assertFalse($this->container->has('assetic.filter.yui_css'), '->load() does not load the yui_css filter when a yui value is not provided');
         $this->assertFalse($this->container->has('assetic.filter.yui_js'), '->load() does not load the yui_js filter when a yui value is not provided');
 
-        // sanity check
-        $container = $this->getDumpedContainer();
-        foreach ($container->getServiceIds() as $id) {
-            $container->get($id);
-        }
+        $this->assertSaneContainer($this->getDumpedContainer());
     }
 
     public function getDebugModes()
@@ -79,11 +90,7 @@ class AsseticExtensionTest extends \PHPUnit_Framework_TestCase
         $this->assertTrue($this->container->has('assetic.filter.yui_css'), '->load() loads the yui_css filter when a yui value is provided');
         $this->assertTrue($this->container->has('assetic.filter.yui_js'), '->load() loads the yui_js filter when a yui value is provided');
 
-        // sanity check
-        $container = $this->getDumpedContainer();
-        foreach ($container->getServiceIds() as $id) {
-            $container->get($id);
-        }
+        $this->assertSaneContainer($this->getDumpedContainer());
     }
 
     /**
@@ -121,11 +128,7 @@ class AsseticExtensionTest extends \PHPUnit_Framework_TestCase
             $this->assertFalse($this->container->has($id), '"'.$id.'" is not registered when use_controller is '.$bool);
         }
 
-        // sanity check
-        $container = $this->getDumpedContainer();
-        foreach ($container->getServiceIds() as $id) {
-            $container->get($id);
-        }
+        $this->assertSaneContainer($this->getDumpedContainer());
     }
 
     public function getUseControllerKeys()
@@ -136,6 +139,14 @@ class AsseticExtensionTest extends \PHPUnit_Framework_TestCase
         );
     }
 
+    public function testClosure()
+    {
+        $extension = new AsseticExtension();
+        $extension->load(array(array('closure' => '/path/to/closure.jar')), $this->container);
+
+        $this->assertSaneContainer($this->getDumpedContainer());
+    }
+
     private function getDumpedContainer()
     {
         static $i = 0;