mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-07 20:08:53 +00:00
[ticket/9492] Add unit tests for custom ranks and avatars
PHPBB3-9492
This commit is contained in:
parent
3122aeff26
commit
50542a389c
2 changed files with 270 additions and 0 deletions
121
tests/functions_user/fixtures/group_user_attributes.xml
Normal file
121
tests/functions_user/fixtures/group_user_attributes.xml
Normal file
|
@ -0,0 +1,121 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<dataset>
|
||||
<table name="phpbb_groups">
|
||||
<column>group_id</column>
|
||||
<column>group_avatar</column>
|
||||
<column>group_rank</column>
|
||||
<column>group_desc</column>
|
||||
<row>
|
||||
<value>1</value>
|
||||
<value>default</value>
|
||||
<value>1</value>
|
||||
<value></value>
|
||||
</row>
|
||||
<row>
|
||||
<value>2</value>
|
||||
<value></value>
|
||||
<value>0</value>
|
||||
<value></value>
|
||||
</row>
|
||||
<row>
|
||||
<value>3</value>
|
||||
<value>default2</value>
|
||||
<value>3</value>
|
||||
<value></value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="phpbb_users">
|
||||
<column>user_id</column>
|
||||
<column>group_id</column>
|
||||
<column>user_avatar</column>
|
||||
<column>user_rank</column>
|
||||
<column>username_clean</column>
|
||||
<column>user_permissions</column>
|
||||
<column>user_sig</column>
|
||||
<column>user_occ</column>
|
||||
<column>user_interests</column>
|
||||
<row>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
<value></value>
|
||||
<value>0</value>
|
||||
<value>barfoo</value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
</row>
|
||||
<row>
|
||||
<value>2</value>
|
||||
<value>1</value>
|
||||
<value>default</value>
|
||||
<value>1</value>
|
||||
<value>foobar</value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
</row>
|
||||
<row>
|
||||
<value>3</value>
|
||||
<value>1</value>
|
||||
<value>custom</value>
|
||||
<value>2</value>
|
||||
<value>bertie</value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
<value></value>
|
||||
</row>
|
||||
</table>
|
||||
<table name="phpbb_user_group">
|
||||
<column>user_id</column>
|
||||
<column>group_id</column>
|
||||
<column>user_pending</column>
|
||||
<row>
|
||||
<value>1</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>1</value>
|
||||
<value>2</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>1</value>
|
||||
<value>3</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>2</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>2</value>
|
||||
<value>2</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>2</value>
|
||||
<value>3</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>3</value>
|
||||
<value>1</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>3</value>
|
||||
<value>2</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
<row>
|
||||
<value>3</value>
|
||||
<value>3</value>
|
||||
<value>0</value>
|
||||
</row>
|
||||
</table>
|
||||
</dataset>
|
149
tests/functions_user/group_user_attributes_test.php
Normal file
149
tests/functions_user/group_user_attributes_test.php
Normal file
|
@ -0,0 +1,149 @@
|
|||
<?php
|
||||
/**
|
||||
*
|
||||
* @package testing
|
||||
* @copyright (c) 2008 phpBB Group
|
||||
* @license http://opensource.org/licenses/gpl-2.0.php GNU General Public License v2
|
||||
*
|
||||
*/
|
||||
|
||||
require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php';
|
||||
require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php';
|
||||
require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php';
|
||||
|
||||
class phpbb_functions_user_group_user_attributes_test extends phpbb_database_test_case
|
||||
{
|
||||
public function getDataSet()
|
||||
{
|
||||
return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/group_user_attributes.xml');
|
||||
}
|
||||
|
||||
public function group_user_attributes_data()
|
||||
{
|
||||
return array(
|
||||
array(
|
||||
'Setting new default group without settings for user with no settings - no change',
|
||||
1,
|
||||
2,
|
||||
array(
|
||||
'group_avatar' => '',
|
||||
'group_avatar_type' => 0,
|
||||
'group_avatar_height' => 0,
|
||||
'group_avatar_width' => 0,
|
||||
'group_rank' => 0,
|
||||
),
|
||||
array(
|
||||
'user_avatar' => '',
|
||||
'user_rank' => 0,
|
||||
),
|
||||
),
|
||||
array(
|
||||
'Setting new default group without settings for user with default settings - user settings overwritten',
|
||||
2,
|
||||
2,
|
||||
array(
|
||||
'group_avatar' => '',
|
||||
'group_avatar_type' => 0,
|
||||
'group_avatar_height' => 0,
|
||||
'group_avatar_width' => 0,
|
||||
'group_rank' => 0,
|
||||
),
|
||||
array(
|
||||
'user_avatar' => '',
|
||||
'user_rank' => 0,
|
||||
),
|
||||
),
|
||||
array(
|
||||
'Setting new default group without settings for user with custom settings - no change',
|
||||
3,
|
||||
2,
|
||||
array(
|
||||
'group_avatar' => '',
|
||||
'group_avatar_type' => 0,
|
||||
'group_avatar_height' => 0,
|
||||
'group_avatar_width' => 0,
|
||||
'group_rank' => 0,
|
||||
),
|
||||
array(
|
||||
'user_avatar' => 'custom',
|
||||
'user_rank' => 2,
|
||||
),
|
||||
),
|
||||
array(
|
||||
'Setting new default group with settings for user with no settings - user settings overwritten',
|
||||
1,
|
||||
3,
|
||||
array(
|
||||
'group_avatar' => 'default2',
|
||||
'group_avatar_type' => 1,
|
||||
'group_avatar_height' => 1,
|
||||
'group_avatar_width' => 1,
|
||||
'group_rank' => 3,
|
||||
),
|
||||
array(
|
||||
'user_avatar' => 'default2',
|
||||
'user_rank' => 3,
|
||||
),
|
||||
),
|
||||
array(
|
||||
'Setting new default group with settings for user with default settings - user settings overwritten',
|
||||
2,
|
||||
3,
|
||||
array(
|
||||
'group_avatar' => 'default2',
|
||||
'group_avatar_type' => 1,
|
||||
'group_avatar_height' => 1,
|
||||
'group_avatar_width' => 1,
|
||||
'group_rank' => 3,
|
||||
),
|
||||
array(
|
||||
'user_avatar' => 'default2',
|
||||
'user_rank' => 3,
|
||||
),
|
||||
),
|
||||
array(
|
||||
'Setting new default group with settings for user with custom settings - no change',
|
||||
3,
|
||||
3,
|
||||
array(
|
||||
'group_avatar' => 'default2',
|
||||
'group_avatar_type' => 1,
|
||||
'group_avatar_height' => 1,
|
||||
'group_avatar_width' => 1,
|
||||
'group_rank' => 3,
|
||||
),
|
||||
array(
|
||||
'user_avatar' => 'custom',
|
||||
'user_rank' => 2,
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider group_user_attributes_data
|
||||
*/
|
||||
public function test_group_user_attributes($description, $user_id, $group_id, $group_row, $expected)
|
||||
{
|
||||
global $auth, $cache, $db, $phpbb_dispatcher, $user;
|
||||
|
||||
$user->ip = '';
|
||||
$cache = new phpbb_mock_cache;
|
||||
$db = $this->new_dbal();
|
||||
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
|
||||
$auth = $this->getMock('phpbb_auth');
|
||||
$auth->expects($this->any())
|
||||
->method('acl_clear_prefetch');
|
||||
|
||||
group_user_attributes('default', $group_id, array($user_id), false, 'group_name', $group_row);
|
||||
|
||||
$sql = 'SELECT user_avatar, user_rank
|
||||
FROM ' . USERS_TABLE . '
|
||||
WHERE user_id = ' . $user_id;
|
||||
$result = $db->sql_query($sql);
|
||||
|
||||
$this->assertEquals(array($expected), $db->sql_fetchrowset($result));
|
||||
|
||||
$db->sql_freeresult($result);
|
||||
}
|
||||
}
|
Loading…
Add table
Reference in a new issue