Вход Регистрация
Файл: monst/Xsolla/Symfony/Component/HttpFoundation/Tests/Session/Storage/PhpBridgeSessionStorageTest.php
Строк: 79
<?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 SymfonyComponentHttpFoundationTestsSessionStorage;

use 
PHPUnitFrameworkTestCase;
use 
SymfonyComponentHttpFoundationSessionStoragePhpBridgeSessionStorage;
use 
SymfonyComponentHttpFoundationSessionAttributeAttributeBag;

/**
 * Test class for PhpSessionStorage.
 *
 * @author Drak <drak@zikula.org>
 *
 * These tests require separate processes.
 *
 * @runTestsInSeparateProcesses
 * @preserveGlobalState disabled
 */
class PhpBridgeSessionStorageTest extends TestCase
{
    private 
$savePath;

    protected function 
setUp()
    {
        
$this->iniSet('session.save_handler''files');
        
$this->iniSet('session.save_path'$this->savePath sys_get_temp_dir().'/sf2test');
        if (!
is_dir($this->savePath)) {
            
mkdir($this->savePath);
        }
    }

    protected function 
tearDown()
    {
        
session_write_close();
        
array_map('unlink'glob($this->savePath.'/*'));
        if (
is_dir($this->savePath)) {
            
rmdir($this->savePath);
        }

        
$this->savePath null;
    }

    
/**
     * @return PhpBridgeSessionStorage
     */
    
protected function getStorage()
    {
        
$storage = new PhpBridgeSessionStorage();
        
$storage->registerBag(new AttributeBag());

        return 
$storage;
    }

    public function 
testPhpSession()
    {
        
$storage $this->getStorage();

        
$this->assertFalse($storage->getSaveHandler()->isActive());
        
$this->assertFalse($storage->isStarted());

        
session_start();
        
$this->assertTrue(isset($_SESSION));
        
// in PHP 5.4 we can reliably detect a session started
        
$this->assertTrue($storage->getSaveHandler()->isActive());
        
// PHP session might have started, but the storage driver has not, so false is correct here
        
$this->assertFalse($storage->isStarted());

        
$key $storage->getMetadataBag()->getStorageKey();
        
$this->assertFalse(isset($_SESSION[$key]));
        
$storage->start();
        
$this->assertTrue(isset($_SESSION[$key]));
    }

    public function 
testClear()
    {
        
$storage $this->getStorage();
        
session_start();
        
$_SESSION['drak'] = 'loves symfony';
        
$storage->getBag('attributes')->set('symfony''greatness');
        
$key $storage->getBag('attributes')->getStorageKey();
        
$this->assertEquals($_SESSION[$key], array('symfony' => 'greatness'));
        
$this->assertEquals($_SESSION['drak'], 'loves symfony');
        
$storage->clear();
        
$this->assertEquals($_SESSION[$key], array());
        
$this->assertEquals($_SESSION['drak'], 'loves symfony');
    }
}
Онлайн: 4
Реклама