TestSessionListenerTest.php in Zircon Profile 8.0        
                          
                  
                        
  
  
  
  
File
  vendor/symfony/http-kernel/Tests/EventListener/TestSessionListenerTest.php
  
    View source  
  <?php
namespace Symfony\Component\HttpKernel\Tests\EventListener;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpKernel\HttpKernelInterface;
use Symfony\Component\HttpKernel\Event\FilterResponseEvent;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
class TestSessionListenerTest extends \PHPUnit_Framework_TestCase {
  
  private $listener;
  
  private $session;
  protected function setUp() {
    $this->listener = $this
      ->getMockForAbstractClass('Symfony\\Component\\HttpKernel\\EventListener\\TestSessionListener');
    $this->session = $this
      ->getSession();
  }
  public function testShouldSaveMasterRequestSession() {
    $this
      ->sessionHasBeenStarted();
    $this
      ->sessionMustBeSaved();
    $this
      ->filterResponse(new Request());
  }
  public function testShouldNotSaveSubRequestSession() {
    $this
      ->sessionMustNotBeSaved();
    $this
      ->filterResponse(new Request(), HttpKernelInterface::SUB_REQUEST);
  }
  public function testDoesNotDeleteCookieIfUsingSessionLifetime() {
    $this
      ->sessionHasBeenStarted();
    $params = session_get_cookie_params();
    session_set_cookie_params(0, $params['path'], $params['domain'], $params['secure'], $params['httponly']);
    $response = $this
      ->filterResponse(new Request(), HttpKernelInterface::MASTER_REQUEST);
    $cookies = $response->headers
      ->getCookies();
    $this
      ->assertEquals(0, reset($cookies)
      ->getExpiresTime());
  }
  public function testUnstartedSessionIsNotSave() {
    $this
      ->sessionHasNotBeenStarted();
    $this
      ->sessionMustNotBeSaved();
    $this
      ->filterResponse(new Request());
  }
  private function filterResponse(Request $request, $type = HttpKernelInterface::MASTER_REQUEST) {
    $request
      ->setSession($this->session);
    $response = new Response();
    $kernel = $this
      ->getMock('Symfony\\Component\\HttpKernel\\HttpKernelInterface');
    $event = new FilterResponseEvent($kernel, $request, $type, $response);
    $this->listener
      ->onKernelResponse($event);
    $this
      ->assertSame($response, $event
      ->getResponse());
    return $response;
  }
  private function sessionMustNotBeSaved() {
    $this->session
      ->expects($this
      ->never())
      ->method('save');
  }
  private function sessionMustBeSaved() {
    $this->session
      ->expects($this
      ->once())
      ->method('save');
  }
  private function sessionHasBeenStarted() {
    $this->session
      ->expects($this
      ->once())
      ->method('isStarted')
      ->will($this
      ->returnValue(true));
  }
  private function sessionHasNotBeenStarted() {
    $this->session
      ->expects($this
      ->once())
      ->method('isStarted')
      ->will($this
      ->returnValue(false));
  }
  private function getSession() {
    $mock = $this
      ->getMockBuilder('Symfony\\Component\\HttpFoundation\\Session\\Session')
      ->disableOriginalConstructor()
      ->getMock();
    
    $mock
      ->expects($this
      ->any())
      ->method('getName')
      ->will($this
      ->returnValue('MOCKSESSID'));
    return $mock;
  }
}