You are here

class TranslatorListenerTest in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/http-kernel/Tests/EventListener/TranslatorListenerTest.php \Symfony\Component\HttpKernel\Tests\EventListener\TranslatorListenerTest

Hierarchy

  • class \Symfony\Component\HttpKernel\Tests\EventListener\TranslatorListenerTest extends \Symfony\Component\HttpKernel\Tests\EventListener\PHPUnit_Framework_TestCase

Expanded class hierarchy of TranslatorListenerTest

File

vendor/symfony/http-kernel/Tests/EventListener/TranslatorListenerTest.php, line 20

Namespace

Symfony\Component\HttpKernel\Tests\EventListener
View source
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 testDefaultLocaleIsUsedOnExceptionsInOnKernelRequest() {
    $this->translator
      ->expects($this
      ->at(0))
      ->method('setLocale')
      ->will($this
      ->throwException(new \InvalidArgumentException()));
    $this->translator
      ->expects($this
      ->at(1))
      ->method('setLocale')
      ->with($this
      ->equalTo('en'));
    $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);
  }
  public function testDefaultLocaleIsUsedOnExceptionsInOnKernelFinishRequest() {
    $this->translator
      ->expects($this
      ->at(0))
      ->method('setLocale')
      ->will($this
      ->throwException(new \InvalidArgumentException()));
    $this->translator
      ->expects($this
      ->at(1))
      ->method('setLocale')
      ->with($this
      ->equalTo('en'));
    $this
      ->setMasterRequest($this
      ->createRequest('fr'));
    $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));
  }

}

Members