You are here

SurrogateListenerTest.php in Zircon Profile 8

File

vendor/symfony/http-kernel/Tests/EventListener/SurrogateListenerTest.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\SurrogateListener;
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 SurrogateListenerTest extends \PHPUnit_Framework_TestCase {
  public function testFilterDoesNothingForSubRequests() {
    $dispatcher = new EventDispatcher();
    $kernel = $this
      ->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
    $response = new Response('foo <esi:include src="" />');
    $listener = new SurrogateListener(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 SurrogateListener(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 SurrogateListener(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