/**
* @dataProvider session_begin_attempts
*/
public function test_session_begin_valid_session($session_id, $user_id, $user_agent, $ip, $expected_sessions, $expected_cookies, $message)
{
$db = $this->new_dbal();
$session_factory = new phpbb_session_testable_factory();
$session_factory->set_cookies(array('_sid' => $session_id, '_u' => $user_id));
$session_factory->merge_config_data(array('session_length' => time()));
$session_factory->merge_server_data(array('HTTP_USER_AGENT' => $user_agent, 'REMOTE_ADDR' => $ip));
$session = $session_factory->get_session($db);
$session->page = array('page' => 'page', 'forum' => 0);
$session->session_begin();
$sql = 'SELECT session_id, session_user_id
FROM phpbb_sessions
ORDER BY session_user_id';
$expected_sessions = $this->replace_session($expected_sessions, $session->session_id);
$expected_cookies = $this->replace_session($expected_cookies, $session->session_id);
$this->assertSqlResultEquals($expected_sessions, $sql, $message);
$session->check_cookies($this, $expected_cookies);
$session_factory->check($this);
}