tests for the TranslatorListener
This commit is contained in:
parent
9b2195c17b
commit
26b619b337
@ -11,11 +11,12 @@
|
||||
|
||||
namespace Symfony\Component\HttpKernel\EventListener;
|
||||
|
||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
|
||||
use Symfony\Component\HttpKernel\Event\FinishRequestEvent;
|
||||
use Symfony\Component\HttpKernel\KernelEvents;
|
||||
use Symfony\Component\HttpFoundation\RequestStack;
|
||||
use Symfony\Component\Translator\TranslatorInterface;
|
||||
use Symfony\Component\Translation\TranslatorInterface;
|
||||
|
||||
/**
|
||||
* Synchronizes the locale between the request and the translator.
|
||||
|
@ -0,0 +1,86 @@
|
||||
<?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\Component\HttpKernel\Tests\EventListener;
|
||||
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpKernel\Event\FinishRequestEvent;
|
||||
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
|
||||
use Symfony\Component\HttpKernel\EventListener\TranslatorListener;
|
||||
use Symfony\Component\HttpKernel\HttpKernelInterface;
|
||||
|
||||
class TranslatorListenerTest extends \PHPUnit_Framework_TestCase
|
||||
{
|
||||
private $listener;
|
||||
private $translator;
|
||||
private $requestStack;
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
$this->translator = $this->getMock('Symfony\Component\Translation\TranslatorInterface');
|
||||
$this->requestStack = $this->getMock('Symfony\Component\HttpFoundation\RequestStack');
|
||||
$this->listener = new TranslatorListener($this->translator, $this->requestStack);
|
||||
}
|
||||
|
||||
public function testLocaleIsSetInOnKernelRequest()
|
||||
{
|
||||
$this->translator
|
||||
->expects($this->once())
|
||||
->method('setLocale')
|
||||
->with($this->equalTo('fr'));
|
||||
|
||||
$event = new GetResponseEvent($this->createHttpKernel(), $this->createRequest('fr'), HttpKernelInterface::MASTER_REQUEST);
|
||||
$this->listener->onKernelRequest($event);
|
||||
}
|
||||
|
||||
public function testLocaleIsSetInOnKernelFinishRequestWhenParentRequestExists()
|
||||
{
|
||||
$this->translator
|
||||
->expects($this->once())
|
||||
->method('setLocale')
|
||||
->with($this->equalTo('fr'));
|
||||
|
||||
$this->setMasterRequest($this->createRequest('fr'));
|
||||
$event = new FinishRequestEvent($this->createHttpKernel(), $this->createRequest('de'), HttpKernelInterface::SUB_REQUEST);
|
||||
$this->listener->onKernelFinishRequest($event);
|
||||
}
|
||||
|
||||
public function testLocaleIsNotSetInOnKernelFinishRequestWhenParentRequestDoesNotExist()
|
||||
{
|
||||
$this->translator
|
||||
->expects($this->never())
|
||||
->method('setLocale');
|
||||
|
||||
$event = new FinishRequestEvent($this->createHttpKernel(), $this->createRequest('de'), HttpKernelInterface::SUB_REQUEST);
|
||||
$this->listener->onKernelFinishRequest($event);
|
||||
}
|
||||
|
||||
private function createHttpKernel()
|
||||
{
|
||||
return $this->getMock('Symfony\Component\HttpKernel\HttpKernelInterface');
|
||||
}
|
||||
|
||||
private function createRequest($locale)
|
||||
{
|
||||
$request = new Request();
|
||||
$request->setLocale($locale);
|
||||
|
||||
return $request;
|
||||
}
|
||||
|
||||
private function setMasterRequest($request)
|
||||
{
|
||||
$this->requestStack
|
||||
->expects($this->any())
|
||||
->method('getParentRequest')
|
||||
->will($this->returnValue($request));
|
||||
}
|
||||
}
|
@ -28,6 +28,7 @@
|
||||
"symfony/config": "~2.0",
|
||||
"symfony/console": "~2.2",
|
||||
"symfony/dependency-injection": "~2.0",
|
||||
"symfony/event-dispatcher": "~2.3",
|
||||
"symfony/expression-language": "~2.4",
|
||||
"symfony/finder": "~2.0",
|
||||
"symfony/process": "~2.0",
|
||||
|
Reference in New Issue
Block a user