Skip to content

Commit

Permalink
[FrameworkBundle] Added a missing test for TimedPhpEngine.
Browse files Browse the repository at this point in the history
  • Loading branch information
jakzal committed Apr 17, 2013
1 parent 5a158ea commit 2170dcb
Showing 1 changed file with 120 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
<?php

/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/

namespace Symfony\Bundle\FrameworkBundle\Tests\Templating;

use Symfony\Bundle\FrameworkBundle\Templating\TimedPhpEngine;
use Symfony\Component\DependencyInjection\Container;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\HttpFoundation\Session\Storage\MockArraySessionStorage;
use Symfony\Component\Templating\TemplateNameParser;
use Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables;
use Symfony\Bundle\FrameworkBundle\Tests\TestCase;

class TimedPhpEngineTest extends TestCase
{
public function testThatRenderLogsTime()
{
$container = $this->getContainer();
$templateNameParser = $this->getTemplateNameParser();
$globalVariables = $this->getGlobalVariables();
$loader = $this->getLoader($this->getStorage());

$stopwatch = $this->getStopwatch();
$stopwatchEvent = $this->getStopwatchEvent();

$stopwatch->expects($this->once())
->method('start')
->with('template.php (index.php)', 'template')
->will($this->returnValue($stopwatchEvent));

$stopwatchEvent->expects($this->once())->method('stop');

$engine = new TimedPhpEngine($templateNameParser, $container, $loader, $stopwatch, $globalVariables);
$engine->render('index.php');
}

/**
* @return \Symfony\Component\DependencyInjection\Container
*/
private function getContainer()
{
return $this->getMock('Symfony\Component\DependencyInjection\Container');
}

/**
* @return \Symfony\Component\Templating\TemplateNameParserInterface
*/
private function getTemplateNameParser()
{
$templateReference = $this->getMock('Symfony\Component\Templating\TemplateReferenceInterface');
$templateNameParser = $this->getMock('Symfony\Component\Templating\TemplateNameParserInterface');
$templateNameParser->expects($this->any())
->method('parse')
->will($this->returnValue($templateReference));

return $templateNameParser;
}

/**
* @return \Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables
*/
private function getGlobalVariables()
{
return $this->getMockBuilder('Symfony\Bundle\FrameworkBundle\Templating\GlobalVariables')
->disableOriginalConstructor()
->getMock();
}

/**
* @return \Symfony\Component\Templating\Storage\StringStorage
*/
private function getStorage()
{
return $this->getMockBuilder('Symfony\Component\Templating\Storage\StringStorage')
->disableOriginalConstructor()
->getMockForAbstractClass();
}

/**
* @param \Symfony\Component\Templating\Storage\StringStorage $storage
*
* @return \Symfony\Component\Templating\Loader\Loader
*/
private function getLoader($storage)
{
$loader = $this->getMockForAbstractClass('Symfony\Component\Templating\Loader\Loader');
$loader->expects($this->once())
->method('load')
->will($this->returnValue($storage));

return $loader;
}

/**
* @return \Symfony\Component\Stopwatch\StopwatchEvent
*/
private function getStopwatchEvent()
{
return $this->getMockBuilder('Symfony\Component\Stopwatch\StopwatchEvent')
->disableOriginalConstructor()
->getMock();
}

/**
* @return \Symfony\Component\Stopwatch\Stopwatch
*/
private function getStopwatch()
{
return $this->getMock('Symfony\Component\Stopwatch\Stopwatch');
}
}

0 comments on commit 2170dcb

Please sign in to comment.