diff options
| author | Oleg Pudeyev <oleg@bsdpower.com> | 2012-12-10 06:09:59 -0500 |
|---|---|---|
| committer | Oleg Pudeyev <oleg@bsdpower.com> | 2012-12-10 06:25:51 -0500 |
| commit | eaa0319867783868a761c9ede5398d52351c38d5 (patch) | |
| tree | a4adb4751b9699da20b87313d37c59a5c342d7be /tests | |
| parent | 3fe381eed561e724700b21789e28ea3efb1f7ef9 (diff) | |
| parent | 3c542b852a99f62337c8cf1c6d3e6551c4e3dca1 (diff) | |
| download | forums-eaa0319867783868a761c9ede5398d52351c38d5.tar forums-eaa0319867783868a761c9ede5398d52351c38d5.tar.gz forums-eaa0319867783868a761c9ede5398d52351c38d5.tar.bz2 forums-eaa0319867783868a761c9ede5398d52351c38d5.tar.xz forums-eaa0319867783868a761c9ede5398d52351c38d5.zip | |
Merge PR #1125 branch 'develop-olympus' into develop
* develop-olympus:
[ticket/10972] Drop user deletion.
[ticket/10972] Tweak user addition.
[ticket/10972] Add destroy method to mock cache.
[ticket/10972] Add mock null cache.
[ticket/10972] Backport get_db from develop.
[ticket/10972] Added explicit checks for creating duplicate users.
[ticket/10972] Moved tests into appropriate places and added comments
[ticket/10972] Added methods for creating and deleting basic users
Conflicts:
tests/mock/cache.php
tests/test_framework/phpbb_functional_test_case.php
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/functional/auth_test.php | 12 | ||||
| -rw-r--r-- | tests/mock/null_cache.php | 47 | ||||
| -rw-r--r-- | tests/test_framework/phpbb_functional_test_case.php | 60 |
3 files changed, 117 insertions, 2 deletions
diff --git a/tests/functional/auth_test.php b/tests/functional/auth_test.php index e955dcb4df..662b1bd38b 100644 --- a/tests/functional/auth_test.php +++ b/tests/functional/auth_test.php @@ -18,9 +18,19 @@ class phpbb_functional_auth_test extends phpbb_functional_test_case // check for logout link $crawler = $this->request('GET', 'index.php'); + $this->assert_response_success(); $this->assertContains($this->lang('LOGOUT_USER', 'admin'), $crawler->filter('.navbar')->text()); } + public function test_login_other() + { + $this->create_user('anothertestuser'); + $this->login('anothertestuser'); + $crawler = $this->request('GET', 'index.php'); + $this->assert_response_success(); + $this->assertContains('anothertestuser', $crawler->filter('.icon-logout')->text()); + } + /** * @depends test_login */ @@ -31,10 +41,12 @@ class phpbb_functional_auth_test extends phpbb_functional_test_case // logout $crawler = $this->request('GET', 'ucp.php?sid=' . $this->sid . '&mode=logout'); + $this->assert_response_success(); $this->assertContains($this->lang('LOGOUT_REDIRECT'), $crawler->filter('#message')->text()); // look for a register link, which should be visible only when logged out $crawler = $this->request('GET', 'index.php'); + $this->assert_response_success(); $this->assertContains($this->lang('REGISTER'), $crawler->filter('.navbar')->text()); } } diff --git a/tests/mock/null_cache.php b/tests/mock/null_cache.php new file mode 100644 index 0000000000..7bd33b441b --- /dev/null +++ b/tests/mock/null_cache.php @@ -0,0 +1,47 @@ +<?php +/** +* +* @package testing +* @copyright (c) 2012 phpBB Group +* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2 +* +*/ + +class phpbb_mock_null_cache +{ + public function __construct() + { + } + + public function get($var_name) + { + return false; + } + + public function put($var_name, $var, $ttl = 0) + { + } + + public function destroy($var_name, $table = '') + { + } + + public function obtain_bots() + { + return array(); + } + + public function obtain_word_list() + { + return array(); + } + + public function set_bots($bots) + { + } + + public function sql_exists($query_id) + { + return false; + } +} diff --git a/tests/test_framework/phpbb_functional_test_case.php b/tests/test_framework/phpbb_functional_test_case.php index 16e1ccaff9..6536ad8807 100644 --- a/tests/test_framework/phpbb_functional_test_case.php +++ b/tests/test_framework/phpbb_functional_test_case.php @@ -231,7 +231,61 @@ class phpbb_functional_test_case extends phpbb_test_case $db_conn_mgr->recreate_db(); } - protected function login() + /** + * Creates a new user with limited permissions + * + * @param string $username Also doubles up as the user's password + * @return int ID of created user + */ + protected function create_user($username) + { + // Required by unique_id + global $config; + + if (!is_array($config)) + { + $config = array(); + } + + $config['rand_seed'] = ''; + $config['rand_seed_last_update'] = time() + 600; + + // Required by user_add + global $db, $cache, $config, $phpbb_dispatcher; + $db = $this->get_db(); + if (!function_exists('phpbb_mock_null_cache')) + { + require_once(__DIR__ . '/../mock/null_cache.php'); + } + $cache = new phpbb_mock_null_cache; + + if (!function_exists('utf_clean_string')) + { + require_once(__DIR__ . '/../../phpBB/includes/utf/utf_tools.php'); + } + if (!function_exists('user_add')) + { + require_once(__DIR__ . '/../../phpBB/includes/functions_user.php'); + } + $config = new phpbb_config(array()); + set_config(null, null, null, $config); + set_config_count(null, null, null, $config); + $phpbb_dispatcher = new phpbb_mock_event_dispatcher(); + + $user_row = array( + 'username' => $username, + 'group_id' => 2, + 'user_email' => 'nobody@example.com', + 'user_type' => 0, + 'user_lang' => 'en', + 'user_timezone' => 0, + 'user_dateformat' => '', + 'user_password' => phpbb_hash($username), + ); + return user_add($user_row); + } + + protected function login($username = 'admin') { $this->add_lang('ucp'); @@ -239,7 +293,9 @@ class phpbb_functional_test_case extends phpbb_test_case $this->assertContains($this->lang('LOGIN_EXPLAIN_UCP'), $crawler->filter('html')->text()); $form = $crawler->selectButton($this->lang('LOGIN'))->form(); - $login = $this->client->submit($form, array('username' => 'admin', 'password' => 'admin')); + $crawler = $this->client->submit($form, array('username' => $username, 'password' => $username)); + $this->assert_response_success(); + $this->assertContains($this->lang('LOGIN_REDIRECT'), $crawler->filter('html')->text()); $cookies = $this->cookieJar->all(); |
