EsiListenerTest.php

Namespace

Symfony\Component\HttpKernel\Tests\EventListener

File

drupal/core/vendor/symfony/http-kernel/Symfony/Component/HttpKernel/Tests/EventListener/EsiListenerTest.php
View source
<?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\HttpKernel\HttpCache\Esi;
use Symfony\Component\HttpKernel\EventListener\EsiListener;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\EventDispatcher\EventDispatcher;
class EsiListenerTest extends \PHPUnit_Framework_TestCase {
  protected function setUp() {
    if (!class_exists('Symfony\\Component\\EventDispatcher\\EventDispatcher')) {
      $this
        ->markTestSkipped('The "EventDispatcher" component is not available');
    }
  }
  public function testFilterDoesNothingForSubRequests() {
    $dispatcher = new EventDispatcher();
    $kernel = $this
      ->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
    $response = new Response('foo <esi:include src="" />');
    $listener = new EsiListener(new Esi());
    $dispatcher
      ->addListener(KernelEvents::RESPONSE, array(
      $listener,
      'onKernelResponse',
    ));
    $event = new FilterResponseEvent($kernel, new Request(), HttpKernelInterface::SUB_REQUEST, $response);
    $dispatcher
      ->dispatch(KernelEvents::RESPONSE, $event);
    $this
      ->assertEquals('', $event
      ->getResponse()->headers
      ->get('Surrogate-Control'));
  }
  public function testFilterWhenThereIsSomeEsiIncludes() {
    $dispatcher = new EventDispatcher();
    $kernel = $this
      ->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
    $response = new Response('foo <esi:include src="" />');
    $listener = new EsiListener(new Esi());
    $dispatcher
      ->addListener(KernelEvents::RESPONSE, array(
      $listener,
      'onKernelResponse',
    ));
    $event = new FilterResponseEvent($kernel, new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
    $dispatcher
      ->dispatch(KernelEvents::RESPONSE, $event);
    $this
      ->assertEquals('content="ESI/1.0"', $event
      ->getResponse()->headers
      ->get('Surrogate-Control'));
  }
  public function testFilterWhenThereIsNoEsiIncludes() {
    $dispatcher = new EventDispatcher();
    $kernel = $this
      ->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
    $response = new Response('foo');
    $listener = new EsiListener(new Esi());
    $dispatcher
      ->addListener(KernelEvents::RESPONSE, array(
      $listener,
      'onKernelResponse',
    ));
    $event = new FilterResponseEvent($kernel, new Request(), HttpKernelInterface::MASTER_REQUEST, $response);
    $dispatcher
      ->dispatch(KernelEvents::RESPONSE, $event);
    $this
      ->assertEquals('', $event
      ->getResponse()->headers
      ->get('Surrogate-Control'));
  }

}

Classes

Namesort descending Description
EsiListenerTest