public function testConditionalPlaceHolders()
 {
     $template = new TemplateTag();
     $template->setContent('<cond:placeholder name="foo">${content}</cond:placeholder>|' . '<cond:placeholder name="bar">${content}</cond:placeholder>');
     $template->onParseTime();
     $template->onAfterAppend();
     $template->setPlaceHolders(['foo' => '1', 'bar' => '2']);
     $this->assertEquals('1|2', $template->transformTemplate());
     $template->clear();
     $this->assertEquals('|', $template->transformTemplate());
 }
예제 #2
0
 /**
  * Test DOM node relocation including static content and transformation.
  */
 public function testComplexUseCse()
 {
     $tag = new TemplateTag();
     $tag->setContent('<core:appendnode includestatic="true" namespace="' . __NAMESPACE__ . '\\templates" template="include_complex" />');
     $tag->onParseTime();
     $tag->onAfterAppend();
     $expected = 'static text';
     // fill template with place holder
     /* @var $template TemplateTag */
     $template = $tag->getChildNode('name', 'test', Template::class);
     $template->setPlaceHolder('test', $expected);
     $template->transformOnPlace();
     $tag->setPlaceHolder('test', $expected);
     $actual = $tag->transformTemplate();
     // 6 = 4 static + 1 template place holder + 1 place holder
     $this->assertTrue(substr_count($actual, $expected) === 6);
 }
예제 #3
0
 /**
  * Complex use case within a template. Checks whether place holder in place holder works.
  */
 public function testLanguageLabel4()
 {
     $node = new TemplateTag();
     $node->setContent('<h2><html:getstring id="foo" ' . 'namespace="' . self::TEST_VENDOR . '" ' . 'config="' . self::CONFIG_FILE_NAME . '"' . ' entry="complex" /></h2>');
     $node->onParseTime();
     $node->onAfterAppend();
     $node->getChildNode('id', 'foo', LanguageLabelTag::class)->setPlaceHolder('place-holder', 'test');
     $this->assertEquals('<h2>This is a test!</h2>', $node->transformTemplate());
 }
예제 #4
0
 /**
  * Happy case for template expressions.
  */
 public function testExtractExpressionTags1()
 {
     $doc = new TemplateTag();
     $doc->setContent('${placeHolder}|${dataAttribute[0]}');
     $doc->onParseTime();
     $doc->onAfterAppend();
     $doc->setPlaceHolder('placeHolder', 'foo');
     $doc->setData('dataAttribute', ['bar']);
     $this->assertEquals('foo|bar', $doc->transformTemplate());
 }