diff options
author | Andy Chase <asperous2@gmail.com> | 2013-07-05 13:10:27 -0700 |
---|---|---|
committer | Andy Chase <asperous2@gmail.com> | 2013-07-05 14:10:02 -0700 |
commit | 521d35dd6eaf7a6cd8be1ebd8591e4b2b21fd99f (patch) | |
tree | f244215b7d570fc7f58ff92648ffb06b54caa7ce | |
parent | 7ef95ce8ac8d189c65c3c3b27f0da9d1ac46877c (diff) | |
download | forums-521d35dd6eaf7a6cd8be1ebd8591e4b2b21fd99f.tar forums-521d35dd6eaf7a6cd8be1ebd8591e4b2b21fd99f.tar.gz forums-521d35dd6eaf7a6cd8be1ebd8591e4b2b21fd99f.tar.bz2 forums-521d35dd6eaf7a6cd8be1ebd8591e4b2b21fd99f.tar.xz forums-521d35dd6eaf7a6cd8be1ebd8591e4b2b21fd99f.zip |
[ticket/11620] Add create_test with test for bot detection
Added a test for the creation of a session with a simple test
for detecting whether a bot is present.
PHPBB3-11620
-rw-r--r-- | tests/session/create_test.php | 86 | ||||
-rw-r--r-- | tests/session/testable_facade.php | 26 |
2 files changed, 102 insertions, 10 deletions
diff --git a/tests/session/create_test.php b/tests/session/create_test.php new file mode 100644 index 0000000000..773b833cf8 --- /dev/null +++ b/tests/session/create_test.php @@ -0,0 +1,86 @@ +<?php +/** + * + * @package testing + * @copyright (c) 2013 phpBB Group + * @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 + * + */ + +require_once dirname(__FILE__) . '/testable_facade.php'; + +class phpbb_session_create_test extends phpbb_database_test_case +{ + public $session_factory; + public $db; + public $session_facade; + + public function getDataSet() + { + return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/sessions_full.xml'); + } + + public function setUp() + { + $this->session_factory = new phpbb_session_testable_factory; + $this->db = $this->new_dbal(); + $this->session_facade = + new phpbb_session_testable_facade($this->db, $this->session_factory); + } + + static function bot($bot_agent, $user_id, $bot_ip) + { + return array(array( + 'bot_agent' => $bot_agent, + 'user_id' => $user_id, + 'bot_ip' => $bot_ip + )); + } + + static function create_inputs() { + return array( + array( + false, + false, + false, + false, + array(), + 'user agent', + '127.0.0.1', + self::bot('user agent', 13, '127.0.0.1'), + '', + function ($test, $output) { + $test->assertEquals($output->data['is_bot'], true, "should be a bot"); + } + ) + ); + } + + /** @dataProvider create_inputs */ + function test_session_create ( + $user_id = false, + $set_admin = false, + $persist_login = false, + $viewonline = true, + array $config_overrides = array(), + $user_agent = "", + $ip_address = "", + array $bot_overrides = array(), + $uri_sid = "", + $test_function + ) + { + $output = $this->session_facade->session_create( + $user_id, + $set_admin, + $persist_login, + $viewonline, + $config_overrides, + $user_agent, + $ip_address, + $bot_overrides, + $uri_sid + ); + $test_function($this, $output); + } +} diff --git a/tests/session/testable_facade.php b/tests/session/testable_facade.php index 886c9b328a..33175a293b 100644 --- a/tests/session/testable_facade.php +++ b/tests/session/testable_facade.php @@ -85,21 +85,27 @@ class phpbb_session_testable_facade $set_admin = false, $persist_login = false, $viewonline = true, - $config_overrides = array(), - $request_overrides = array(), - $bot_overrides = array(), + array $config_overrides = array(), + $user_agent, + $ip_address, + array $bot_overrides = array(), $uri_sid = "" ) { - $session = $this->session_factory->get_session($this->db); - global $config, $request, $cache; - $request->merge(phpbb_request_interface::SERVER, $request_overrides); - $config = array_merge($config, $config_overrides); + $this->session_factory->merge_config_data($config_overrides); // Bots - $cache->merge_cache_data(array('_bots' => $bot_overrides)); + $this->session_factory->merge_cache_data(array('_bots' => $bot_overrides)); + global $request; + $session = $this->session_factory->get_session($this->db); + $session->browser = $user_agent; + $session->ip = $ip_address; // Uri sid - $_GET['sid'] = $uri_sid; - return $session->session_create($user_id, $set_admin, $persist_login, $viewonline); + if ($uri_sid) + { + $_GET['sid'] = $uri_sid; + } + $session->session_create($user_id, $set_admin, $persist_login, $viewonline); + return $session; } function validate_referer( |