Anton Grebnev
13 years ago
1 changed files with 166 additions and 0 deletions
@ -0,0 +1,166 @@ |
|||||
|
<?php |
||||
|
|
||||
|
/* |
||||
|
* @copyright NetMonsters <team@netmonsters.ru> |
||||
|
* @link http://netmonsters.ru |
||||
|
* @package Majestic |
||||
|
* @subpackage UnitTests |
||||
|
* @since 2011-10-25 |
||||
|
* |
||||
|
* Unit tests for Session class |
||||
|
* @TODO: Session::destroy() - uncheck started flag after destroy |
||||
|
*/ |
||||
|
|
||||
|
require_once dirname(__FILE__) . '/../../session/Session.php'; |
||||
|
|
||||
|
class SessionTest extends PHPUnit_Framework_TestCase |
||||
|
{ |
||||
|
|
||||
|
private $started = null; |
||||
|
|
||||
|
protected function setUp() |
||||
|
{ |
||||
|
$class = new ReflectionClass('Session'); |
||||
|
$this->started = $class->getProperty('started'); |
||||
|
$this->started->setAccessible(true); |
||||
|
Session::start(); |
||||
|
Session::destroy(); |
||||
|
$this->started->setValue(null, false); |
||||
|
} |
||||
|
|
||||
|
public function testStart() |
||||
|
{ |
||||
|
Session::start(); |
||||
|
$this->assertAttributeEquals(true, 'started', 'Session'); |
||||
|
} |
||||
|
|
||||
|
public function testSetGet() |
||||
|
{ |
||||
|
Session::set('one', 1); |
||||
|
Session::set('two', 'three'); |
||||
|
Session::set(array('first' => '1st', 'second' => '2nd')); |
||||
|
$this->assertEquals('1st', Session::get('first')); |
||||
|
$this->assertEquals('three', Session::get('two')); |
||||
|
$this->assertNotEquals('three', Session::get('thr')); |
||||
|
} |
||||
|
|
||||
|
public function testNullKey() |
||||
|
{ |
||||
|
$this->assertNull(Session::get()); |
||||
|
Session::start(); |
||||
|
$this->assertEmpty(Session::get()); |
||||
|
} |
||||
|
|
||||
|
public function testReturnDefaultValue() |
||||
|
{ |
||||
|
Session::start(); |
||||
|
$this->assertEquals(1, Session::get('key', 1)); |
||||
|
} |
||||
|
|
||||
|
public function testDestroyedGet() |
||||
|
{ |
||||
|
$this->assertFalse($this->started->getValue()); |
||||
|
$_COOKIE[session_name()] = session_name(); |
||||
|
$this->assertEquals(1, Session::get('key', 1)); |
||||
|
} |
||||
|
|
||||
|
public function testDel() |
||||
|
{ |
||||
|
Session::set('one', 1); |
||||
|
Session::set('two', 'three'); |
||||
|
$this->assertEquals('three', Session::get('two')); |
||||
|
Session::del('two'); |
||||
|
$this->assertNull(Session::get('two')); |
||||
|
} |
||||
|
|
||||
|
public function testDestroyedDel() |
||||
|
{ |
||||
|
Session::del('two'); |
||||
|
$this->assertNull(Session::get('two')); |
||||
|
$this->assertFalse($this->started->getValue()); |
||||
|
$_COOKIE[session_name()] = session_name(); |
||||
|
Session::del('two'); |
||||
|
$this->assertNull(Session::get('two')); |
||||
|
} |
||||
|
|
||||
|
public function testRegenerateId() |
||||
|
{ |
||||
|
$this->assertEmpty(session_id()); |
||||
|
Session::start(); |
||||
|
$ssid = Session::getId(); |
||||
|
$this->assertNotEmpty($ssid); |
||||
|
Session::regenerateId(); |
||||
|
$new_ssid = Session::getId(); |
||||
|
$this->assertNotEmpty($new_ssid); |
||||
|
$this->assertNotEquals($new_ssid, $ssid); |
||||
|
} |
||||
|
|
||||
|
public function testRememberUntil() |
||||
|
{ |
||||
|
Session::start(); |
||||
|
$ssid = Session::getId(); |
||||
|
$params = session_get_cookie_params(); |
||||
|
Session::rememberUntil(400); |
||||
|
$new_ssid = Session::getId(); |
||||
|
$new_params = session_get_cookie_params(); |
||||
|
$this->assertNotEquals($ssid, $new_ssid); |
||||
|
$this->assertNotEquals($params, $new_params); |
||||
|
$this->assertEquals(400, $new_params['lifetime']); |
||||
|
Session::rememberUntil(); |
||||
|
$new_params = session_get_cookie_params(); |
||||
|
$this->assertEquals(0, $new_params['lifetime']); |
||||
|
} |
||||
|
|
||||
|
public function testForget() |
||||
|
{ |
||||
|
Session::start(); |
||||
|
$ssid = Session::getId(); |
||||
|
Session::forget(); |
||||
|
$new_ssid = Session::getId(); |
||||
|
$new_params = session_get_cookie_params(); |
||||
|
$this->assertNotEquals($ssid, $new_ssid); |
||||
|
$this->assertEquals(0, $new_params['lifetime']); |
||||
|
} |
||||
|
|
||||
|
public function testRemember() |
||||
|
{ |
||||
|
Session::start(); |
||||
|
$ssid = Session::getId(); |
||||
|
Session::remember(); |
||||
|
$new_params = session_get_cookie_params(); |
||||
|
$this->assertEquals(1209600, $new_params['lifetime']); |
||||
|
|
||||
|
Session::remember(-30); |
||||
|
$new_params = session_get_cookie_params(); |
||||
|
$this->assertEquals(1209600, $new_params['lifetime']); |
||||
|
|
||||
|
Session::remember(530); |
||||
|
$new_params = session_get_cookie_params(); |
||||
|
$this->assertEquals(530, $new_params['lifetime']); |
||||
|
} |
||||
|
|
||||
|
public function testExpireSessionCookie() |
||||
|
{ |
||||
|
Session::start(); |
||||
|
$params = session_get_cookie_params(); |
||||
|
$_COOKIE[session_name()] = true; |
||||
|
Session::expireSessionCookie(); |
||||
|
$this->assertNotNull($_COOKIE); |
||||
|
} |
||||
|
|
||||
|
public function testSetSessionHandler() |
||||
|
{ |
||||
|
Session::setSessionHandler('Handler'); |
||||
|
$this->assertTrue(TRUE); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
class Handler |
||||
|
{ |
||||
|
public function open(){} |
||||
|
public function close(){} |
||||
|
public function read(){} |
||||
|
public function write(){} |
||||
|
public function destroy(){} |
||||
|
public function gc(){} |
||||
|
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue