Skip to content

Commit

Permalink
[Security] Add tests for the firewall map
Browse files Browse the repository at this point in the history
  • Loading branch information
Herzult committed Jun 25, 2011
1 parent aa6ae33 commit 81afd77
Showing 1 changed file with 108 additions and 0 deletions.
108 changes: 108 additions & 0 deletions tests/Symfony/Tests/Component/Security/Http/FirewallMapTest.php
@@ -0,0 +1,108 @@
<?php

namespace Symfony\Tests\Component\Security\Http;

use Symfony\Component\Security\Http\FirewallMap;
use Symfony\Component\HttpFoundation\Request;

class FirewallMapTest extends \PHPUnit_Framework_TestCase
{
public function testGetListeners()
{
$map = new FirewallMap();

$request = new Request();

$notMatchingMatcher = $this->getMock('Symfony\Component\HttpFoundation\RequestMatcher');
$notMatchingMatcher
->expects($this->once())
->method('matches')
->with($this->equalTo($request))
->will($this->returnValue(false))
;

$map->add($notMatchingMatcher, array($this->getMock('Symfony\Component\Security\Http\Firewall\ListenerInterface')));

$matchingMatcher = $this->getMock('Symfony\Component\HttpFoundation\RequestMatcher');
$matchingMatcher
->expects($this->once())
->method('matches')
->with($this->equalTo($request))
->will($this->returnValue(true))
;
$theListener = $this->getMock('Symfony\Component\Security\Http\Firewall\ListenerInterface');
$theException = $this->getMock('Symfony\Component\Security\Http\Firewall\ExceptionListener', array(), array(), '', false);

$map->add($matchingMatcher, array($theListener), $theException);

$tooLateMatcher = $this->getMock('Symfony\Component\HttpFoundation\RequestMatcher');
$tooLateMatcher
->expects($this->never())
->method('matches')
;

$map->add($tooLateMatcher, array($this->getMock('Symfony\Component\Security\Http\Firewall\ListenerInterface')));

list($listeners, $exception) = $map->getListeners($request);

$this->assertEquals(array($theListener), $listeners);
$this->assertEquals($theException, $exception);
}

public function testGetListenersWithAnEntryHavingNoRequestMatcher()
{
$map = new FirewallMap();

$request = new Request();

$notMatchingMatcher = $this->getMock('Symfony\Component\HttpFoundation\RequestMatcher');
$notMatchingMatcher
->expects($this->once())
->method('matches')
->with($this->equalTo($request))
->will($this->returnValue(false))
;

$map->add($notMatchingMatcher, array($this->getMock('Symfony\Component\Security\Http\Firewall\ListenerInterface')));

$theListener = $this->getMock('Symfony\Component\Security\Http\Firewall\ListenerInterface');
$theException = $this->getMock('Symfony\Component\Security\Http\Firewall\ExceptionListener', array(), array(), '', false);

$map->add(null, array($theListener), $theException);

$tooLateMatcher = $this->getMock('Symfony\Component\HttpFoundation\RequestMatcher');
$tooLateMatcher
->expects($this->never())
->method('matches')
;

$map->add($tooLateMatcher, array($this->getMock('Symfony\Component\Security\Http\Firewall\ListenerInterface')));

list($listeners, $exception) = $map->getListeners($request);

$this->assertEquals(array($theListener), $listeners);
$this->assertEquals($theException, $exception);
}

public function testGetListenersWithNoMatchingEntry()
{
$map = new FirewallMap();

$request = new Request();

$notMatchingMatcher = $this->getMock('Symfony\Component\HttpFoundation\RequestMatcher');
$notMatchingMatcher
->expects($this->once())
->method('matches')
->with($this->equalTo($request))
->will($this->returnValue(false))
;

$map->add($notMatchingMatcher, array($this->getMock('Symfony\Component\Security\Http\Firewall\ListenerInterface')));

list($listeners, $exception) = $map->getListeners($request);

$this->assertEquals(array(), $listeners);
$this->assertNull($exception);
}
}

0 comments on commit 81afd77

Please sign in to comment.