예제 #1
0
 public function testStandardRender()
 {
     $view = new View();
     $view->setBasePath(__DIR__ . '/../');
     $view->setViewsDir('unit-tests/views/');
     $this->assertEquals($view->getViewsDir(), 'unit-tests/views/');
     //Standard Render
     $view->start();
     $view->render('test2', 'index');
     $view->finish();
     $this->assertEquals($view->getContent(), '<html>here</html>' . PHP_EOL);
     $view->start();
     $view->render('test3', 'other');
     $view->finish();
     $this->assertEquals($view->getContent(), '<html>lolhere</html>' . PHP_EOL);
     //Variables
     $view->setParamToView('a_cool_var', 'le-this');
     $view->start();
     $view->render('test3', 'another');
     $view->finish();
     $this->assertEquals($view->getContent(), '<html>lol<p>le-this</p></html>' . PHP_EOL);
     //Templates
     $view->setTemplateAfter('test');
     $view->start();
     $view->render('test3', 'other');
     $view->finish();
     $this->assertEquals($view->getContent(), '<html>zuplolhere</html>' . PHP_EOL);
     $view->cleanTemplateAfter();
     //Render Levels
     $view->setRenderLevel(View::LEVEL_MAIN_LAYOUT);
     $view->start();
     $view->render('test3', 'other');
     $view->finish();
     $this->assertEquals($view->getContent(), '<html>lolhere</html>' . PHP_EOL);
     $view->setRenderLevel(View::LEVEL_LAYOUT);
     $view->start();
     $view->render('test3', 'other');
     $view->finish();
     $this->assertEquals($view->getContent(), 'lolhere');
     $view->setRenderLevel(View::LEVEL_ACTION_VIEW);
     $view->start();
     $view->render('test3', 'other');
     $view->finish();
     $this->assertEquals($view->getContent(), 'here');
     //Pick View
     $view->setRenderLevel(View::LEVEL_MAIN_LAYOUT);
     $view->start();
     $view->pick('test3/yup');
     $view->render('test3', 'other');
     $view->finish();
     $this->assertEquals($view->getContent(), '<html>lolyup</html>' . PHP_EOL);
     //No Render
     $view->setRenderLevel(View::LEVEL_NO_RENDER);
     $view->start();
     $view->pick('test3/yup');
     $view->render('test3', 'other');
     $view->finish();
     $this->assertEquals($view->getContent(), '');
 }
예제 #2
0
 public function testBasic()
 {
     $di = new Phalcon\DI\FactoryDefault();
     $di['view'] = function () {
         $view = new View();
         $view->setBasePath(__DIR__ . '/../')->setViewsDir('unit-tests/views/');
         return $view;
     };
     $viewmodel = new ViewModel();
     $viewmodel->label = 'phalcon';
     $viewmodel->setTemplate('model/model1');
     $this->assertEquals('phalcon', $viewmodel->label);
     $viewmodel1 = new ViewModel(array('label' => 'First child'), 'model/model2');
     $viewmodel2 = new Phalcon\Mvc\View\Model(['label' => 'Second child'], 'model/model2', 'child2');
     $viewmodel->addChild($viewmodel1, 'child1');
     $viewmodel->addChild($viewmodel2);
     $content = $viewmodel->render();
     $this->assertEquals($content, '<ul>phalcon<li>First child</li><li>Second child</li></ul>');
     $viewmodel3 = new Phalcon\Mvc\View\Model(['label' => 'append'], 'model/model2', 'child1');
     $viewmodel->appendChild($viewmodel3);
     $content = $viewmodel->render();
     var_dump($viewmodel->child1);
     $this->assertEquals($content, '<ul>phalcon<li>First child</li><li>append</li><li>Second child</li></ul>');
 }
예제 #3
0
 public function testPartials()
 {
     $view = new Phalcon\Mvc\View();
     $view->setBasePath(__DIR__ . '/../');
     $view->setViewsDir('unit-tests/views/');
     $this->assertEquals($view->getViewsDir(), 'unit-tests/views/');
     $view->setParamToView('cool_var', 'le-this');
     $view->start();
     $view->render('test5', 'index');
     $view->finish();
     $this->assertEquals($view->getContent(), '<html>Hey, this is a partial, also le-this</html>' . PHP_EOL);
     $view->start();
     $view->render('test9', 'index');
     $view->finish();
     $this->assertEquals($view->getContent(), '<html>Hey, this is a partial, also le-this<br />Hey, this is a second partial, also le-this</html>' . PHP_EOL);
 }
예제 #4
0
 public function testIssue2140()
 {
     $view = new View();
     $view->setBasePath(__DIR__ . '/../');
     $view->setViewsDir('unit-tests/views/');
     $html = $view->partial('test2/index', NULL, FALSE);
     $this->assertEquals($html, 'here');
 }
예제 #5
0
 public function testIssue907()
 {
     $view = new View();
     $view->setBasePath(__DIR__ . '/../');
     $view->setViewsDir('unit-tests/views/');
     $listener = new \ViewAfterRenderListener();
     $eventsManager = new \Phalcon\Events\Manager();
     $eventsManager->attach('view', $listener);
     $view->setEventsManager($eventsManager);
     $view->start();
     $view->render('test3', 'other');
     $view->finish();
     $this->assertEquals($view->getContent(), '<html>lolhere</html>' . PHP_EOL);
     $this->assertEquals('1,3,5', $listener->getLevels());
     $listener->reset();
     //Templates
     $view->setTemplateAfter('test');
     $view->start();
     $view->render('test3', 'other');
     $view->finish();
     $this->assertEquals($view->getContent(), '<html>zuplolhere</html>' . PHP_EOL);
     $this->assertEquals('1,3,4,5', $listener->getLevels());
     $listener->reset();
     $view->cleanTemplateAfter();
     //Render Levels
     $view->setRenderLevel(View::LEVEL_MAIN_LAYOUT);
     $view->start();
     $view->render('test3', 'other');
     $view->finish();
     $this->assertEquals($view->getContent(), '<html>lolhere</html>' . PHP_EOL);
     $this->assertEquals('1,3,5', $listener->getLevels());
     $listener->reset();
     $view->setRenderLevel(View::LEVEL_LAYOUT);
     $view->start();
     $view->render('test3', 'other');
     $view->finish();
     $this->assertEquals($view->getContent(), 'lolhere');
     $this->assertEquals('1,3', $listener->getLevels());
     $listener->reset();
     $view->setRenderLevel(View::LEVEL_ACTION_VIEW);
     $view->start();
     $view->render('test3', 'other');
     $view->finish();
     $this->assertEquals($view->getContent(), 'here');
     $this->assertEquals('1', $listener->getLevels());
     $listener->reset();
 }