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()); }
/** * 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); }
/** * 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()); }
/** * 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()); }