Ejemplo n.º 1
0
 public function testGlobalsGetPassedToTemplate()
 {
     $engine = new ProjectTemplateEngine(new TemplateNameParser(), $this->loader);
     $engine->addGlobal('global', 'global variable');
     $this->loader->setTemplate('global.php', '<?php echo $global; ?>');
     $this->assertEquals($engine->render('global.php'), 'global variable');
     $this->assertEquals($engine->render('global.php', array('global' => 'overwritten')), 'overwritten');
 }
Ejemplo n.º 2
0
 public function testExtendRender()
 {
     $engine = new ProjectTemplateEngine(self::$loader, array(), array(new SlotsHelper()));
     try {
         $engine->render('name');
         $this->fail('->render() throws an InvalidArgumentException if the template does not exist');
     } catch (\Exception $e) {
         $this->assertInstanceOf('\\InvalidArgumentException', $e, '->render() throws an InvalidArgumentException if the template does not exist');
         $this->assertEquals('The template "name" does not exist (renderer: php).', $e->getMessage(), '->render() throws an InvalidArgumentException if the template does not exist');
     }
     try {
         self::$loader->setTemplate('name.foo', 'foo');
         $engine->render('foo:name');
         $this->fail('->render() throws an InvalidArgumentException if no renderer is registered for the given renderer');
     } catch (\Exception $e) {
         $this->assertInstanceOf('\\InvalidArgumentException', $e, '->render() throws an InvalidArgumentException if no renderer is registered for the given renderer');
         $this->assertEquals('The template "foo:name" does not exist (renderer: name).', $e->getMessage(), '->render() throws an InvalidArgumentException if no renderer is registered for the given renderer');
     }
     $engine = new ProjectTemplateEngine(self::$loader, array(), array(new SlotsHelper()));
     $engine->set(new \SimpleHelper('bar'));
     self::$loader->setTemplate('foo.php', '<?php $view->extend("layout"); echo $view[\'foo\'].$foo ?>');
     self::$loader->setTemplate('layout.php', '-<?php echo $view[\'slots\']->get("_content") ?>-');
     $this->assertEquals('-barfoo-', $engine->render('foo', array('foo' => 'foo')), '->render() uses the decorator to decorate the template');
     $engine = new ProjectTemplateEngine(self::$loader, array(), array(new SlotsHelper()));
     $engine->set(new \SimpleHelper('bar'));
     self::$loader->setTemplate('bar.php', 'bar');
     self::$loader->setTemplate('foo.php', '<?php $view->extend("layout"); echo $foo ?>');
     self::$loader->setTemplate('layout.php', '<?php echo $view->render("bar") ?>-<?php echo $view[\'slots\']->get("_content") ?>-');
     $this->assertEquals('bar-foo-', $engine->render('foo', array('foo' => 'foo', 'bar' => 'bar')), '->render() supports render() calls in templates');
 }