| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191 | 
							- <?php
 - 
 - /*
 -  * This file is part of the Assetic package, an OpenSky project.
 -  *
 -  * (c) 2010-2011 OpenSky Project Inc
 -  *
 -  * For the full copyright and license information, please view the LICENSE
 -  * file that was distributed with this source code.
 -  */
 - 
 - namespace Assetic\Test\Extension\Twig;
 - 
 - use Assetic\Factory\AssetFactory;
 - use Assetic\Extension\Twig\AsseticExtension;
 - 
 - class AsseticExtensionTest extends \PHPUnit_Framework_TestCase
 - {
 -     private $am;
 -     private $fm;
 -     private $factory;
 -     private $twig;
 - 
 -     protected function setUp()
 -     {
 -         if (!class_exists('Twig_Environment')) {
 -             $this->markTestSkipped('Twig is not installed.');
 -         }
 - 
 -         $this->am = $this->getMock('Assetic\\AssetManager');
 -         $this->fm = $this->getMock('Assetic\\FilterManager');
 - 
 -         $this->factory = new AssetFactory(__DIR__.'/templates');
 -         $this->factory->setAssetManager($this->am);
 -         $this->factory->setFilterManager($this->fm);
 - 
 -         $this->twig = new \Twig_Environment();
 -         $this->twig->setLoader(new \Twig_Loader_Filesystem(__DIR__.'/templates'));
 -         $this->twig->addExtension(new AsseticExtension($this->factory));
 -     }
 - 
 -     public function testReference()
 -     {
 -         $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
 -         $this->am->expects($this->any())
 -             ->method('get')
 -             ->with('foo')
 -             ->will($this->returnValue($asset));
 - 
 -         $xml = $this->renderXml('reference.twig');
 -         $this->assertEquals(1, count($xml->asset));
 -         $this->assertStringStartsWith('css/', (string) $xml->asset['url']);
 -     }
 - 
 -     public function testGlob()
 -     {
 -         $xml = $this->renderXml('glob.twig');
 -         $this->assertEquals(1, count($xml->asset));
 -         $this->assertStringStartsWith('css/', (string) $xml->asset['url']);
 -     }
 - 
 -     public function testAbsolutePath()
 -     {
 -         $xml = $this->renderXml('absolute_path.twig');
 -         $this->assertEquals(1, count($xml->asset));
 -         $this->assertStringStartsWith('css/', (string) $xml->asset['url']);
 -     }
 - 
 -     public function testFilters()
 -     {
 -         $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
 - 
 -         $this->fm->expects($this->at(0))
 -             ->method('get')
 -             ->with('foo')
 -             ->will($this->returnValue($filter));
 -         $this->fm->expects($this->at(1))
 -             ->method('get')
 -             ->with('bar')
 -             ->will($this->returnValue($filter));
 - 
 -         $xml = $this->renderXml('filters.twig');
 -         $this->assertEquals(1, count($xml->asset));
 -         $this->assertStringStartsWith('css/', (string) $xml->asset['url']);
 -     }
 - 
 -     public function testOptionalFilter()
 -     {
 -         $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
 - 
 -         $this->fm->expects($this->once())
 -             ->method('get')
 -             ->with('foo')
 -             ->will($this->returnValue($filter));
 - 
 -         $xml = $this->renderXml('optional_filter.twig');
 -         $this->assertEquals(1, count($xml->asset));
 -         $this->assertStringStartsWith('css/', (string) $xml->asset['url']);
 -     }
 - 
 -     public function testOutputPattern()
 -     {
 -         $xml = $this->renderXml('output_pattern.twig');
 -         $this->assertEquals(1, count($xml->asset));
 -         $this->assertStringStartsWith('css/packed/', (string) $xml->asset['url']);
 -         $this->assertStringEndsWith('.css', (string) $xml->asset['url']);
 -     }
 - 
 -     public function testOutput()
 -     {
 -         $xml = $this->renderXml('output_url.twig');
 -         $this->assertEquals(1, count($xml->asset));
 -         $this->assertEquals('explicit_url.css', (string) $xml->asset['url']);
 -     }
 - 
 -     public function testMixture()
 -     {
 -         $asset = $this->getMock('Assetic\\Asset\\AssetInterface');
 -         $this->am->expects($this->any())
 -             ->method('get')
 -             ->with('foo')
 -             ->will($this->returnValue($asset));
 - 
 -         $xml = $this->renderXml('mixture.twig');
 -         $this->assertEquals(1, count($xml->asset));
 -         $this->assertEquals('packed/mixture', (string) $xml->asset['url']);
 -     }
 - 
 -     public function testDebug()
 -     {
 -         $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
 - 
 -         $this->fm->expects($this->once())
 -             ->method('get')
 -             ->with('bar')
 -             ->will($this->returnValue($filter));
 - 
 -         $xml = $this->renderXml('debug.twig');
 -         $this->assertEquals(2, count($xml->asset));
 -         $this->assertStringStartsWith('css/packed_', (string) $xml->asset[0]['url']);
 -         $this->assertStringEndsWith('.css', (string) $xml->asset[0]['url']);
 -     }
 - 
 -     public function testCombine()
 -     {
 -         $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
 - 
 -         $this->fm->expects($this->once())
 -             ->method('get')
 -             ->with('bar')
 -             ->will($this->returnValue($filter));
 - 
 -         $xml = $this->renderXml('combine.twig');
 -         $this->assertEquals(1, count($xml->asset));
 -         $this->assertEquals('css/packed.css', (string) $xml->asset[0]['url']);
 -     }
 - 
 -     public function testImage()
 -     {
 -         $xml = $this->renderXml('image.twig');
 -         $this->assertEquals(1, count($xml->image));
 -         $this->assertStringEndsWith('.png', (string) $xml->image[0]['url']);
 -     }
 - 
 -     public function testFilterFunction()
 -     {
 -         $filter = $this->getMock('Assetic\\Filter\\FilterInterface');
 - 
 -         $this->fm->expects($this->once())
 -             ->method('get')
 -             ->with('some_filter')
 -             ->will($this->returnValue($filter));
 - 
 -         $this->twig->addExtension(new AsseticExtension($this->factory, array(
 -             'some_func' => array(
 -                 'filter' => 'some_filter',
 -                 'options' => array('output' => 'css/*.css'),
 -             ),
 -         )));
 - 
 -         $xml = $this->renderXml('function.twig');
 -         $this->assertEquals(1, count($xml->asset));
 -         $this->assertStringEndsWith('.css', (string) $xml->asset[0]['url']);
 -     }
 - 
 -     private function renderXml($name, $context = array())
 -     {
 -         return new \SimpleXMLElement($this->twig->loadTemplate($name)->render($context));
 -     }
 - }
 
 
  |