This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Security/Http/Tests/AccessMapTest.php

53 lines
1.7 KiB
PHP
Raw Normal View History

<?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\Security\Http\Tests;
2017-02-08 07:24:27 +00:00
use PHPUnit\Framework\TestCase;
use Symfony\Component\Security\Http\AccessMap;
2017-02-08 07:24:27 +00:00
class AccessMapTest extends TestCase
{
public function testReturnsFirstMatchedPattern()
{
2016-12-19 09:02:29 +00:00
$request = $this->getMockBuilder('Symfony\Component\HttpFoundation\Request')->getMock();
$requestMatcher1 = $this->getRequestMatcher($request, false);
$requestMatcher2 = $this->getRequestMatcher($request, true);
$map = new AccessMap();
$map->add($requestMatcher1, array('ROLE_ADMIN'), 'http');
$map->add($requestMatcher2, array('ROLE_USER'), 'https');
$this->assertSame(array(array('ROLE_USER'), 'https'), $map->getPatterns($request));
}
public function testReturnsEmptyPatternIfNoneMatched()
{
2016-12-19 09:02:29 +00:00
$request = $this->getMockBuilder('Symfony\Component\HttpFoundation\Request')->getMock();
$requestMatcher = $this->getRequestMatcher($request, false);
$map = new AccessMap();
$map->add($requestMatcher, array('ROLE_USER'), 'https');
$this->assertSame(array(null, null), $map->getPatterns($request));
}
private function getRequestMatcher($request, $matches)
{
2016-12-19 09:02:29 +00:00
$requestMatcher = $this->getMockBuilder('Symfony\Component\HttpFoundation\RequestMatcherInterface')->getMock();
$requestMatcher->expects($this->once())
->method('matches')->with($request)
->will($this->returnValue($matches));
return $requestMatcher;
}
}