Ejemplo n.º 1
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);
 }
Ejemplo n.º 2
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());
 }
Ejemplo n.º 3
0
    public function testTagClosingSignInAttribute()
    {
        $doc = new TemplateTag();
        $doc->setData('model', [new TestDataModel(), new TestDataModel()]);
        $expressionOne = 'model[0]->getFoo()';
        $expressionTwo = 'model[1]->getBar()';
        $expressionThree = 'model[0]->getBaz()->getBar()';
        $expressionFour = 'model[1]->getBaz()->getBaz()->getFoo()';
        $doc->setContent('<core:addtaglib
   class="APF\\core\\expression\\taglib\\ExpressionEvaluationTag"
   prefix="dyn"
   name="expr"
/>
<dyn:expr
   name="one"
   expression="' . $expressionOne . '"
/>

<dyn:expr name="two" expression="' . $expressionTwo . '">
   Bar Baz
</dyn:expr>

<dyn:expr
   name="three"
   expression="' . $expressionThree . '"/>

<dyn:expr name="four" expression="' . $expressionFour . '"/>');
        $doc->onParseTime();
        $expressionNodeOne = $doc->getChildNode('name', 'one', ExpressionEvaluationTag::class);
        $expressionNodeTwo = $doc->getChildNode('name', 'two', ExpressionEvaluationTag::class);
        $expressionNodeThree = $doc->getChildNode('name', 'three', ExpressionEvaluationTag::class);
        $expressionNodeFour = $doc->getChildNode('name', 'four', ExpressionEvaluationTag::class);
        $this->assertEquals($expressionOne, $expressionNodeOne->getAttribute('expression'));
        $this->assertEquals($expressionTwo, $expressionNodeTwo->getAttribute('expression'));
        $this->assertEquals($expressionThree, $expressionNodeThree->getAttribute('expression'));
        $this->assertEquals($expressionFour, $expressionNodeFour->getAttribute('expression'));
        $this->assertEquals('foo', $expressionNodeOne->transform());
        $this->assertEquals('bar', $expressionNodeTwo->transform());
        $this->assertEquals('bar', $expressionNodeThree->transform());
        $this->assertEquals('foo', $expressionNodeFour->transform());
    }
Ejemplo n.º 4
0
 /**
  * Checks, if a place holder exists within the given template.
  *
  * @param TemplateTag $template The instance of the template to check.
  * @param string $name The name of the place holder.
  *
  * @return bool True if yes, false otherwise.
  *
  * @author Christian Schäfer
  * @version
  * Version 0.1, 11.03.2007<br />
  * Version 0.2, 23.04.2009 (Corrected PHP4 style object access)<br />
  * Version 0.3, 02.07.2011 (Renaming to fit the APF naming convention)<br />
  * Version 0.4, 13.08.2014 (ID#231: Allow custom form tag while still using this method to obtain an instance)<br />
  */
 protected function templatePlaceHolderExists(TemplateTag &$template, $name)
 {
     try {
         $template->getChildNode('name', $name, PlaceHolder::class);
         return true;
     } catch (InvalidArgumentException $e) {
         return false;
     }
 }