aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorOleg Pudeyev <oleg@bsdpower.com>2012-12-06 23:43:22 -0500
committerOleg Pudeyev <oleg@bsdpower.com>2012-12-06 23:45:17 -0500
commitfb5c4440e598f2a775a52299a06e903d3cee5398 (patch)
tree8e6bf97b9221f4f61c7c6dea3f5ce2aac31c202a /tests
parent1285bdff00ecf928783698b86205888a2bd8bee7 (diff)
downloadforums-fb5c4440e598f2a775a52299a06e903d3cee5398.tar
forums-fb5c4440e598f2a775a52299a06e903d3cee5398.tar.gz
forums-fb5c4440e598f2a775a52299a06e903d3cee5398.tar.bz2
forums-fb5c4440e598f2a775a52299a06e903d3cee5398.tar.xz
forums-fb5c4440e598f2a775a52299a06e903d3cee5398.zip
[ticket/10972] Tweak user addition.
Always add users, do not keep track of which users have been added. The tests should know whether users they want exist or not. Use more unique user names in tests for robustness. Added some more assertions here and there. PHPBB3-10972
Diffstat (limited to 'tests')
-rw-r--r--tests/functional/auth_test.php12
-rw-r--r--tests/test_framework/phpbb_functional_test_case.php57
2 files changed, 40 insertions, 29 deletions
diff --git a/tests/functional/auth_test.php b/tests/functional/auth_test.php
index e67118d8f9..3e218ebd77 100644
--- a/tests/functional/auth_test.php
+++ b/tests/functional/auth_test.php
@@ -18,16 +18,18 @@ 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('user');
- $this->login('user');
+ $this->create_user('anothertestuser');
+ $this->login('anothertestuser');
$crawler = $this->request('GET', 'index.php');
- $this->assertContains('user', $crawler->filter('.icon-logout')->text());
- $this->delete_user('user');
+ $this->assert_response_success();
+ $this->assertContains('anothertestuser', $crawler->filter('.icon-logout')->text());
+ $this->delete_user('anothertestuser');
}
/**
@@ -40,10 +42,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/test_framework/phpbb_functional_test_case.php b/tests/test_framework/phpbb_functional_test_case.php
index 3b6232d091..b17b2dcd5f 100644
--- a/tests/test_framework/phpbb_functional_test_case.php
+++ b/tests/test_framework/phpbb_functional_test_case.php
@@ -32,11 +32,6 @@ class phpbb_functional_test_case extends phpbb_test_case
*/
protected $lang = array();
- /**
- * @var array
- */
- protected $created_users = array();
-
static protected $config = array();
static protected $already_installed = false;
@@ -225,14 +220,10 @@ class phpbb_functional_test_case extends phpbb_test_case
* requires create_user.
*
* @param string $username Also doubles up as the user's password
+ * @return int ID of created user
*/
protected function create_user($username)
{
- if (isset($this->created_users[$username]))
- {
- return;
- }
-
// Required by unique_id
global $config;
@@ -243,17 +234,36 @@ class phpbb_functional_test_case extends phpbb_test_case
$config['rand_seed'] = '';
$config['rand_seed_last_update'] = time() + 600;
-
+
+ // Required by user_add
+ global $db, $cache;
$db = $this->get_db();
- $query = "
- INSERT INTO " . self::$config['table_prefix'] . "users
- (user_type, group_id, username, username_clean, user_regdate, user_password, user_email, user_lang, user_style, user_rank, user_colour, user_posts, user_permissions, user_ip, user_birthday, user_lastpage, user_last_confirm_key, user_post_sortby_type, user_post_sortby_dir, user_topic_sortby_type, user_topic_sortby_dir, user_avatar, user_sig, user_sig_bbcode_uid, user_from, user_icq, user_aim, user_yim, user_msnm, user_jabber, user_website, user_occ, user_interests, user_actkey, user_newpasswd)
- VALUES
- (0, 2, 'user', 'user', 0, '" . phpbb_hash($username) . "', 'nobody@example.com', 'en', 1, 0, '', 1, '', '', '', '', '', 't', 'a', 't', 'd', '', '', '', '', '', '', '', '', '', '', '', '', '', '')
- ";
+ if (!function_exists('phpbb_mock_null_cache'))
+ {
+ require_once(__DIR__ . '/../mock/null_cache.php');
+ }
+ $cache = new phpbb_mock_null_cache;
- $db->sql_query($query);
- $this->created_users[$username] = 1;
+ 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');
+ }
+
+ $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);
}
/**
@@ -263,11 +273,6 @@ class phpbb_functional_test_case extends phpbb_test_case
*/
protected function delete_user($username)
{
- if (isset($this->created_users[$username]))
- {
- unset($this->created_users[$username]);
- }
-
$db = $this->get_db();
$query = "DELETE FROM " . self::$config['table_prefix'] . "users WHERE username = '" . $db->sql_escape($username) . "'";
$db->sql_query($query);
@@ -281,7 +286,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' => $username, 'password' => $username));
+ $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();