public function testVoltEngine()
{
$this->specify("Volt engine doesn't work as expected", function () {
@unlink(PATH_DATA . 'views/layouts/test10.volt.php');
@unlink(PATH_DATA . 'views/test10/index.volt.php');
@unlink(PATH_DATA . 'views/test10/other.volt.php');
$di = new Di();
$view = new View();
$view->setDI($di);
$view->setViewsDir(PATH_DATA . 'views/');
$view->registerEngines(array('.volt' => 'Phalcon\\Mvc\\View\\Engine\\Volt'));
$view->setParamToView('song', 'Rock n roll');
$view->start();
$view->setRenderLevel(View::LEVEL_ACTION_VIEW);
$view->render('test10', 'index');
$view->finish();
expect($view->getContent())->equals('Hello Rock n roll!');
$view->setParamToView('some_eval', true);
$view->start();
$view->setRenderLevel(View::LEVEL_LAYOUT);
$view->render('test10', 'index');
$view->finish();
expect($view->getContent())->equals('Clearly, the song is: Hello Rock n roll!.' . PHP_EOL);
//Refreshing generated view
file_put_contents(PATH_DATA . 'views/test10/other.volt', '{{song}} {{song}}');
$view->setParamToView('song', 'Le Song');
$view->start();
$view->setRenderLevel(View::LEVEL_ACTION_VIEW);
$view->render('test10', 'other');
$view->finish();
expect($view->getContent())->equals('Le Song Le Song');
$view->start();
$view->setRenderLevel(View::LEVEL_LAYOUT);
$view->render('test10', 'other');
$view->finish();
expect($view->getContent())->equals('Clearly, the song is: Le Song Le Song.' . PHP_EOL);
//Change the view
file_put_contents(PATH_DATA . 'views/test10/other.volt', 'Two songs: {{song}} {{song}}');
$view->start();
$view->setRenderLevel(View::LEVEL_LAYOUT);
$view->render('test10', 'other');
$view->finish();
expect($view->getContent())->equals('Clearly, the song is: Two songs: Le Song Le Song.' . PHP_EOL);
});
}