You are here

class TestSessionListenerTest in Zircon Profile 8.0

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

SessionListenerTest.

Tests SessionListener.

@author Bulat Shakirzyanov <mallluhuct@gmail.com>

Hierarchy

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

Expanded class hierarchy of TestSessionListenerTest

File

vendor/symfony/http-kernel/Tests/EventListener/TestSessionListenerTest.php, line 27

Namespace

Symfony\Component\HttpKernel\Tests\EventListener
View source
class TestSessionListenerTest extends \PHPUnit_Framework_TestCase {

  /**
   * @var TestSessionListener
   */
  private $listener;

  /**
   * @var SessionInterface
   */
  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();

    // set return value for getName()
    $mock
      ->expects($this
      ->any())
      ->method('getName')
      ->will($this
      ->returnValue('MOCKSESSID'));
    return $mock;
  }

}

Members