Вход Регистрация
Файл: symfony-2.7/src/Symfony/Bundle/SecurityBundle/Tests/DataCollector/SecurityDataCollectorTest.php
Строк: 150
<?php

namespace SymfonyBundleSecurityBundleTestsDataCollector;

use 
SymfonyBundleSecurityBundleDataCollectorSecurityDataCollector;
use 
SymfonyComponentSecurityCoreAuthenticationTokenStorageTokenStorage;
use 
SymfonyComponentSecurityCoreAuthenticationTokenUsernamePasswordToken;
use 
SymfonyComponentSecurityCoreRoleRole;
use 
SymfonyComponentSecurityCoreRoleRoleHierarchy;

class 
SecurityDataCollectorTest extends PHPUnit_Framework_TestCase
{
    public function 
testCollectWhenSecurityIsDisabled()
    {
        
$collector = new SecurityDataCollector();
        
$collector->collect($this->getRequest(), $this->getResponse());

        
$this->assertSame('security'$collector->getName());
        
$this->assertFalse($collector->isEnabled());
        
$this->assertFalse($collector->isAuthenticated());
        
$this->assertNull($collector->getTokenClass());
        
$this->assertFalse($collector->supportsRoleHierarchy());
        
$this->assertCount(0$collector->getRoles());
        
$this->assertCount(0$collector->getInheritedRoles());
        
$this->assertEmpty($collector->getUser());
    }

    public function 
testCollectWhenAuthenticationTokenIsNull()
    {
        
$tokenStorage = new TokenStorage();
        
$collector = new SecurityDataCollector($tokenStorage$this->getRoleHierarchy());
        
$collector->collect($this->getRequest(), $this->getResponse());

        
$this->assertTrue($collector->isEnabled());
        
$this->assertFalse($collector->isAuthenticated());
        
$this->assertNull($collector->getTokenClass());
        
$this->assertTrue($collector->supportsRoleHierarchy());
        
$this->assertCount(0$collector->getRoles());
        
$this->assertCount(0$collector->getInheritedRoles());
        
$this->assertEmpty($collector->getUser());
    }

    public function 
testLegacyCollectWhenAuthenticationTokenIsNull()
    {
        
$this->iniSet('error_reporting', -& ~E_USER_DEPRECATED);

        
$tokenStorage $this->getMock('SymfonyComponentSecurityCoreSecurityContextInterface');
        
$collector = new SecurityDataCollector($tokenStorage$this->getRoleHierarchy());
        
$collector->collect($this->getRequest(), $this->getResponse());

        
$this->assertTrue($collector->isEnabled());
        
$this->assertFalse($collector->isAuthenticated());
        
$this->assertNull($collector->getTokenClass());
        
$this->assertTrue($collector->supportsRoleHierarchy());
        
$this->assertCount(0$collector->getRoles());
        
$this->assertCount(0$collector->getInheritedRoles());
        
$this->assertEmpty($collector->getUser());
    }

    
/** @dataProvider provideRoles */
    
public function testCollectAuthenticationTokenAndRoles(array $roles, array $normalizedRoles, array $inheritedRoles)
    {
        
$tokenStorage = new TokenStorage();
        
$tokenStorage->setToken(new UsernamePasswordToken('hhamon''P4$$w0rD''provider'$roles));

        
$collector = new SecurityDataCollector($tokenStorage$this->getRoleHierarchy());
        
$collector->collect($this->getRequest(), $this->getResponse());

        
$this->assertTrue($collector->isEnabled());
        
$this->assertTrue($collector->isAuthenticated());
        
$this->assertSame('SymfonyComponentSecurityCoreAuthenticationTokenUsernamePasswordToken'$collector->getTokenClass());
        
$this->assertTrue($collector->supportsRoleHierarchy());
        
$this->assertSame($normalizedRoles$collector->getRoles());
        
$this->assertSame($inheritedRoles$collector->getInheritedRoles());
        
$this->assertSame('hhamon'$collector->getUser());
    }

    public function 
provideRoles()
    {
        return array(
            
// Basic roles
            
array(
                array(
'ROLE_USER'),
                array(
'ROLE_USER'),
                array(),
            ),
            array(
                array(new 
Role('ROLE_USER')),
                array(
'ROLE_USER'),
                array(),
            ),
            
// Inherited roles
            
array(
                array(
'ROLE_ADMIN'),
                array(
'ROLE_ADMIN'),
                array(
'ROLE_USER''ROLE_ALLOWED_TO_SWITCH'),
            ),
            array(
                array(new 
Role('ROLE_ADMIN')),
                array(
'ROLE_ADMIN'),
                array(
'ROLE_USER''ROLE_ALLOWED_TO_SWITCH'),
            ),
        );
    }

    private function 
getRoleHierarchy()
    {
        return new 
RoleHierarchy(array(
            
'ROLE_ADMIN' => array('ROLE_USER''ROLE_ALLOWED_TO_SWITCH'),
        ));
    }

    private function 
getRequest()
    {
        return 
$this
            
->getMockBuilder('SymfonyComponentHttpFoundationRequest')
            ->
disableOriginalConstructor()
            ->
getMock();
    }

    private function 
getResponse()
    {
        return 
$this
            
->getMockBuilder('SymfonyComponentHttpFoundationResponse')
            ->
disableOriginalConstructor()
            ->
getMock();
    }
}
Онлайн: 1
Реклама