class ResponseListenerTest

Hierarchy

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

Expanded class hierarchy of ResponseListenerTest

File

drupal/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/ResponseListenerTest.php, line 22

Namespace

Symfony\Component\HttpKernel\Tests\EventListener
View source
class ResponseListenerTest extends \PHPUnit_Framework_TestCase {
  private $dispatcher;
  private $kernel;
  protected function setUp() {
    if (!class_exists('Symfony\\Component\\EventDispatcher\\EventDispatcher')) {
      $this
        ->markTestSkipped('The "EventDispatcher" component is not available');
    }
    $this->dispatcher = new EventDispatcher();
    $listener = new ResponseListener('UTF-8');
    $this->dispatcher
      ->addListener(KernelEvents::RESPONSE, array(
      $listener,
      'onKernelResponse',
    ));
    $this->kernel = $this
      ->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
  }
  protected function tearDown() {
    $this->dispatcher = null;
    $this->kernel = null;
  }
  public function testFilterDoesNothingForSubRequests() {
    $response = new Response('foo');
    $event = new FilterResponseEvent($this->kernel, new Request(), HttpKernelInterface::SUB_REQUEST, $response);
    $this->dispatcher
      ->dispatch(KernelEvents::RESPONSE, $event);
    $this
      ->assertEquals('', $event
      ->getResponse()->headers
      ->get('content-type'));
  }
  public function testFilterSetsNonDefaultCharsetIfNotOverridden() {
    $listener = new ResponseListener('ISO-8859-15');
    $this->dispatcher
      ->addListener(KernelEvents::RESPONSE, array(
      $listener,
      'onKernelResponse',
    ), 1);
    $response = new Response('foo');
    $event = new FilterResponseEvent($this->kernel, Request::create('/'), HttpKernelInterface::MASTER_REQUEST, $response);
    $this->dispatcher
      ->dispatch(KernelEvents::RESPONSE, $event);
    $this
      ->assertEquals('ISO-8859-15', $response
      ->getCharset());
  }
  public function testFilterDoesNothingIfCharsetIsOverridden() {
    $listener = new ResponseListener('ISO-8859-15');
    $this->dispatcher
      ->addListener(KernelEvents::RESPONSE, array(
      $listener,
      'onKernelResponse',
    ), 1);
    $response = new Response('foo');
    $response
      ->setCharset('ISO-8859-1');
    $event = new FilterResponseEvent($this->kernel, Request::create('/'), HttpKernelInterface::MASTER_REQUEST, $response);
    $this->dispatcher
      ->dispatch(KernelEvents::RESPONSE, $event);
    $this
      ->assertEquals('ISO-8859-1', $response
      ->getCharset());
  }
  public function testFiltersSetsNonDefaultCharsetIfNotOverriddenOnNonTextContentType() {
    $listener = new ResponseListener('ISO-8859-15');
    $this->dispatcher
      ->addListener(KernelEvents::RESPONSE, array(
      $listener,
      'onKernelResponse',
    ), 1);
    $response = new Response('foo');
    $request = Request::create('/');
    $request
      ->setRequestFormat('application/json');
    $event = new FilterResponseEvent($this->kernel, $request, HttpKernelInterface::MASTER_REQUEST, $response);
    $this->dispatcher
      ->dispatch(KernelEvents::RESPONSE, $event);
    $this
      ->assertEquals('ISO-8859-15', $response
      ->getCharset());
  }

}

Members