4 * This file is part of Twig.
8 * For the full copyright and license information, please view the LICENSE
9 * file that was distributed with this source code.
11 class Twig_Tests_TemplateWrapperTest extends PHPUnit_Framework_TestCase
13 public function testHasGetBlocks()
15 $twig = new Twig_Environment(new Twig_Loader_Array(array(
16 'index' => '{% block foo %}{% endblock %}',
17 'index_with_use' => '{% use "imported" %}{% block foo %}{% endblock %}',
18 'index_with_extends' => '{% extends "extended" %}{% block foo %}{% endblock %}',
19 'imported' => '{% block imported %}{% endblock %}',
20 'extended' => '{% block extended %}{% endblock %}',
23 $wrapper = new Twig_TemplateWrapper($twig, $twig->loadTemplate('index'));
24 $this->assertTrue($wrapper->hasBlock('foo'));
25 $this->assertFalse($wrapper->hasBlock('bar'));
26 $this->assertEquals(array('foo'), $wrapper->getBlockNames());
28 $wrapper = new Twig_TemplateWrapper($twig, $twig->loadTemplate('index_with_use'));
29 $this->assertTrue($wrapper->hasBlock('foo'));
30 $this->assertTrue($wrapper->hasBlock('imported'));
31 $this->assertEquals(array('imported', 'foo'), $wrapper->getBlockNames());
33 $wrapper = new Twig_TemplateWrapper($twig, $twig->loadTemplate('index_with_extends'));
34 $this->assertTrue($wrapper->hasBlock('foo'));
35 $this->assertTrue($wrapper->hasBlock('extended'));
36 $this->assertEquals(array('foo', 'extended'), $wrapper->getBlockNames());
39 public function testRenderBlock()
41 $twig = new Twig_Environment(new Twig_Loader_Array(array(
42 'index' => '{% block foo %}{{ foo }}{{ bar }}{% endblock %}',
44 $twig->addGlobal('bar', 'BAR');
46 $wrapper = new Twig_TemplateWrapper($twig, $twig->loadTemplate('index'));
47 $this->assertEquals('FOOBAR', $wrapper->renderBlock('foo', array('foo' => 'FOO')));
50 public function testDisplayBlock()
52 $twig = new Twig_Environment(new Twig_Loader_Array(array(
53 'index' => '{% block foo %}{{ foo }}{{ bar }}{% endblock %}',
55 $twig->addGlobal('bar', 'BAR');
57 $wrapper = new Twig_TemplateWrapper($twig, $twig->loadTemplate('index'));
60 $wrapper->displayBlock('foo', array('foo' => 'FOO'));
62 $this->assertEquals('FOOBAR', ob_get_clean());