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

use 
PHPUnitFrameworkTestCase;
use 
SymfonyComponentHttpFoundationSessionSession;
use 
SymfonyComponentHttpFoundationSessionFlashFlashBag;
use 
SymfonyComponentHttpFoundationSessionAttributeAttributeBag;
use 
SymfonyComponentHttpFoundationSessionStorageMockArraySessionStorage;

/**
 * SessionTest.
 *
 * @author Fabien Potencier <fabien@symfony.com>
 * @author Robert Schönthal <seroscho@googlemail.com>
 * @author Drak <drak@zikula.org>
 */
class SessionTest extends TestCase
{
    
/**
     * @var SymfonyComponentHttpFoundationSessionStorageSessionStorageInterface
     */
    
protected $storage;

    
/**
     * @var SymfonyComponentHttpFoundationSessionSessionInterface
     */
    
protected $session;

    protected function 
setUp()
    {
        
$this->storage = new MockArraySessionStorage();
        
$this->session = new Session($this->storage, new AttributeBag(), new FlashBag());
    }

    protected function 
tearDown()
    {
        
$this->storage = null;
        
$this->session = null;
    }

    public function 
testStart()
    {
        
$this->assertEquals('', $this->session->getId());
        
$this->assertTrue($this->session->start());
        
$this->assertNotEquals('', $this->session->getId());
    }

    public function 
testIsStarted()
    {
        
$this->assertFalse($this->session->isStarted());
        
$this->session->start();
        
$this->assertTrue($this->session->isStarted());
    }

    public function 
testSetId()
    {
        
$this->assertEquals('', $this->session->getId());
        
$this->session->setId('0123456789abcdef');
        
$this->session->start();
        
$this->assertEquals('0123456789abcdef', $this->session->getId());
    }

    public function 
testSetName()
    {
        
$this->assertEquals('MOCKSESSID', $this->session->getName());
        
$this->session->setName('session.test.com');
        
$this->session->start();
        
$this->assertEquals('session.test.com', $this->session->getName());
    }

    public function 
testGet()
    {
        
// tests defaults
        
$this->assertNull($this->session->get('foo'));
        
$this->assertEquals(1, $this->session->get('foo', 1));
    }

    
/**
     * @dataProvider setProvider
     */
    
public function testSet($key, $value)
    {
        
$this->session->set($key, $value);
        
$this->assertEquals($value, $this->session->get($key));
    }

    
/**
     * @dataProvider setProvider
     */
    
public function testHas($key, $value)
    {
        
$this->session->set($key, $value);
        
$this->assertTrue($this->session->has($key));
        
$this->assertFalse($this->session->has($key.'non_value'));
    }

    public function 
testReplace()
    {
        
$this->session->replace(array('happiness' => 'be good', 'symfony' => 'awesome'));
        
$this->assertEquals(array('happiness' => 'be good', 'symfony' => 'awesome'), $this->session->all());
        
$this->session->replace(array());
        
$this->assertEquals(array(), $this->session->all());
    }

    
/**
     * @dataProvider setProvider
     */
    
public function testAll($key, $value, $result)
    {
        
$this->session->set($key, $value);
        
$this->assertEquals($result, $this->session->all());
    }

    
/**
     * @dataProvider setProvider
     */
    
public function testClear($key, $value)
    {
        
$this->session->set('hi', 'fabien');
        
$this->session->set($key, $value);
        
$this->session->clear();
        
$this->assertEquals(array(), $this->session->all());
    }

    public function 
setProvider()
    {
        return array(
            array(
'foo', 'bar', array('foo' => 'bar')),
            array(
'foo.bar', 'too much beer', array('foo.bar' => 'too much beer')),
            array(
'great', 'symfony is great', array('great' => 'symfony is great')),
        );
    }

    
/**
     * @dataProvider setProvider
     */
    
public function testRemove($key, $value)
    {
        
$this->session->set('hi.world', 'have a nice day');
        
$this->session->set($key, $value);
        
$this->session->remove($key);
        
$this->assertEquals(array('hi.world' => 'have a nice day'), $this->session->all());
    }

    public function 
testInvalidate()
    {
        
$this->session->set('invalidate', 123);
        
$this->session->invalidate();
        
$this->assertEquals(array(), $this->session->all());
    }

    public function 
testMigrate()
    {
        
$this->session->set('migrate', 321);
        
$this->session->migrate();
        
$this->assertEquals(321, $this->session->get('migrate'));
    }

    public function 
testMigrateDestroy()
    {
        
$this->session->set('migrate', 333);
        
$this->session->migrate(true);
        
$this->assertEquals(333, $this->session->get('migrate'));
    }

    public function 
testSave()
    {
        
$this->session->start();
        
$this->session->save();

        
$this->assertFalse($this->session->isStarted());
    }

    public function 
testGetId()
    {
        
$this->assertEquals('', $this->session->getId());
        
$this->session->start();
        
$this->assertNotEquals('', $this->session->getId());
    }

    public function 
testGetFlashBag()
    {
        
$this->assertInstanceOf('Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface', $this->session->getFlashBag());
    }

    public function 
testGetIterator()
    {
        
$attributes = array('hello' => 'world', 'symfony' => 'rocks');
        foreach (
$attributes as $key => $val) {
            
$this->session->set($key, $val);
        }

        
$i = 0;
        foreach (
$this->session as $key => $val) {
            
$this->assertEquals($attributes[$key], $val);
            ++
$i;
        }

        
$this->assertEquals(count($attributes), $i);
    }

    public function 
testGetCount()
    {
        
$this->session->set('hello', 'world');
        
$this->session->set('symfony', 'rocks');

        
$this->assertCount(2, $this->session);
    }

    public function 
testGetMeta()
    {
        
$this->assertInstanceOf('SymfonyComponentHttpFoundationSessionStorageMetadataBag', $this->session->getMetadataBag());
    }
}
Онлайн: 3
Реклама