[ticket/11620] Added a session key reset test

PHPBB3-11620
This commit is contained in:
asperous 2013-07-12 07:15:46 -07:00 committed by Andy Chase
parent f7da773c06
commit f5a09858d0

View file

@ -1,4 +1,4 @@
<?php _<?php
/** /**
* *
* @package testing * @package testing
@ -11,6 +11,9 @@ require_once dirname(__FILE__) . '/../test_framework/phpbb_session_test_case.php
class phpbb_session_login_keys_test extends phpbb_session_test_case class phpbb_session_login_keys_test extends phpbb_session_test_case
{ {
protected $user_id = 4;
protected $key_id = 4;
public function getDataSet() public function getDataSet()
{ {
return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/sessions_key.xml'); return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/sessions_key.xml');
@ -18,11 +21,31 @@ class phpbb_session_login_keys_test extends phpbb_session_test_case
public function test_set_key_manually() public function test_set_key_manually()
{ {
// With AutoLogin setup
$this->session_factory->merge_config_data(array('allow_autologin' => true)); $this->session_factory->merge_config_data(array('allow_autologin' => true));
$session = $this->session_factory->get_session($this->db); $session = $this->session_factory->get_session($this->db);
$session->cookie_data['u'] = 4; // Using a user_id and key that is already in the database
$session->cookie_data['k'] = 4; $session->cookie_data['u'] = $this->user_id;
$session->session_create(4, false, 4); $session->cookie_data['k'] = $this->key_id;
$this->assertEquals(4, $session->data['user_id']); // Try to access session
$session->session_create($this->user_id, false, $this->user_id);
$this->assertEquals($this->user_id, $session->data['user_id'], "session should automatically login");
}
public function test_reset_keys()
{
// With AutoLogin setup
$this->session_factory->merge_config_data(array('allow_autologin' => true));
$session = $this->session_factory->get_session($this->db);
// Reset of the keys for this user
$session->reset_login_keys($this->user_id);
// Using a user_id and key that was in the database (before reset)
$session->cookie_data['u'] = $this->user_id;
$session->cookie_data['k'] = $this->key_id;
// Try to access session
$session->session_create($this->user_id, false, $this->user_id);
$this->assertNotEquals($this->user_id, $session->data['user_id'], "session should be cleared");
} }
} }