public function testComponentSet()
 {
     $c = new Compound([new Part(new Tag('div'), 'container'), new Part(new DataView('[1]'), '1', 'container'), new Part(new DataView('[2]'), '2', 'container')]);
     $c->setComponent($c3 = new DataView('[3]'), '3', 'container');
     self::assertEquals('<div>[1][2][3]</div>', $c->render());
     // @todo preserve component position when replacing
     //        $c->setComponent($c2 = new DataView('[-2-]'), '2', 'container');
     //        self::assertEquals(
     //            '<div>[1][-2-][3]</div>',
     //            $c->render()
     //        );
     //        self::assertTrue($c2 === $c->getComponent('2'));
     self::assertTrue($c3 === $c->getComponent('3'));
     $c->removeComponent('1');
     $c->removeComponent('2');
     self::assertEquals('<div>[3]</div>', $c->render());
     $c->removeComponent('container');
     self::assertEquals('', $c->render());
 }
 /**
  * Renders component and returns output.
  *
  * @return string
  */
 public function render()
 {
     $this->prepare();
     return parent::render();
 }
예제 #3
0
 /**
  * Renders layout.
  *
  * @return string rendered layout
  */
 public function render()
 {
     $this->moveChildrenToMainSection();
     $this->getTemplate()->mergeData($this->getData())->mergeData(['layout' => $this]);
     return parent::render();
 }