public function testGetCurrentRenderLevel()
{
$this->specify('The View listener does not fetch current render level correctly', function () {
$view = new View();
$listener = new AfterRenderListener();
$eventsManager = new Manager();
$eventsManager->attach('view', $listener);
$view->setViewsDir(PATH_DATA . 'views' . DIRECTORY_SEPARATOR);
$view->setEventsManager($eventsManager);
$view->start();
$view->render('test3', 'other');
$view->finish();
expect($view->getContent())->equals("<html>lolhere</html>\n");
expect($listener->getLevels())->equals('1,3,5');
$listener->reset();
$view->setTemplateAfter('test');
$view->start();
$view->render('test3', 'other');
$view->finish();
expect($view->getContent())->equals("<html>zuplolhere</html>\n");
expect($listener->getLevels())->equals('1,3,4,5');
$listener->reset();
$view->cleanTemplateAfter();
$view->setRenderLevel(View::LEVEL_MAIN_LAYOUT);
$view->start();
$view->render('test3', 'other');
$view->finish();
expect($view->getContent())->equals("<html>lolhere</html>\n");
expect($listener->getLevels())->equals('1,3,5');
$listener->reset();
$view->setRenderLevel(View::LEVEL_LAYOUT);
$view->start();
$view->render('test3', 'other');
$view->finish();
expect($view->getContent())->equals('lolhere');
expect($listener->getLevels())->equals('1,3');
$listener->reset();
$view->setRenderLevel(View::LEVEL_ACTION_VIEW);
$view->start();
$view->render('test3', 'other');
$view->finish();
expect($view->getContent())->equals('here');
expect($listener->getLevels())->equals('1');
$listener->reset();
});
}