<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/

require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.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'		=> '',
					'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'		=> '',
					'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'		=> '',
					'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'		=> 'avatar.driver.upload',
					'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'		=> 'avatar.driver.upload',
					'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'		=> 'avatar.driver.upload',
					'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, $phpbb_container, $phpbb_log, $phpbb_root_path, $phpEx;

		$user = new phpbb_mock_user;
		$user->ip = '';
		$cache = new phpbb_mock_cache;
		$db = $this->new_dbal();
		$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
		$auth = $this->createMock('\phpbb\auth\auth');
		$auth->expects($this->any())
			->method('acl_clear_prefetch');
		$cache_driver = new \phpbb\cache\driver\dummy();
		$phpbb_container = $this->createMock('Symfony\Component\DependencyInjection\ContainerInterface');
		$phpbb_container
			->expects($this->any())
			->method('get')
			->with('cache.driver')
			->will($this->returnValue($cache_driver));
		$phpbb_log = new \phpbb\log\log($db, $user, $auth, $phpbb_dispatcher, $phpbb_root_path, 'adm/', $phpEx, LOG_TABLE);

		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);
	}
}
ref='/web/www/patch/contact/index.php?id=6010eaaee9d51f96117bb03b0c10c1f95856317e'>patch</a>)</td></tr>
<tr><th>tree</th><td colspan='2' class='sha1'><a href='/web/www/tree/?id=6010eaaee9d51f96117bb03b0c10c1f95856317e'>28f99b7feec351724d26cf98ca0706d345df922e</a> /<a href='/web/www/tree/contact/index.php?id=6010eaaee9d51f96117bb03b0c10c1f95856317e'>contact/index.php</a></td></tr>
<tr><th>parent</th><td colspan='2' class='sha1'><a href='/web/www/commit/contact/index.php?id=080e9c7dfe33fa16a9bd06d724777d328efc23a6'>080e9c7dfe33fa16a9bd06d724777d328efc23a6</a> (<a href='/web/www/diff/contact/index.php?id=6010eaaee9d51f96117bb03b0c10c1f95856317e&amp;id2=080e9c7dfe33fa16a9bd06d724777d328efc23a6'>diff</a>)</td></tr><tr><th>download</th><td colspan='2' class='sha1'><a href='/web/www/snapshot/www-6010eaaee9d51f96117bb03b0c10c1f95856317e.tar'>www-6010eaaee9d51f96117bb03b0c10c1f95856317e.tar</a><br/><a href='/web/www/snapshot/www-6010eaaee9d51f96117bb03b0c10c1f95856317e.tar.gz'>www-6010eaaee9d51f96117bb03b0c10c1f95856317e.tar.gz</a><br/><a href='/web/www/snapshot/www-6010eaaee9d51f96117bb03b0c10c1f95856317e.tar.bz2'>www-6010eaaee9d51f96117bb03b0c10c1f95856317e.tar.bz2</a><br/><a href='/web/www/snapshot/www-6010eaaee9d51f96117bb03b0c10c1f95856317e.tar.xz'>www-6010eaaee9d51f96117bb03b0c10c1f95856317e.tar.xz</a><br/><a href='/web/www/snapshot/www-6010eaaee9d51f96117bb03b0c10c1f95856317e.zip'>www-6010eaaee9d51f96117bb03b0c10c1f95856317e.zip</a><br/></td></tr></table>
<div class='commit-subject'>Update Dutch translation from Tx</div><div class='commit-msg'></div><div class='diffstat-header'><a href='/web/www/diff/?id=6010eaaee9d51f96117bb03b0c10c1f95856317e'>Diffstat</a> (limited to 'contact/index.php')</div><table summary='diffstat' class='diffstat'></table><div class='diffstat-summary'>0 files changed, 0 insertions, 0 deletions</div><table summary='diff' class='diff'><tr><td></td></tr></table></div> <!-- class=content -->
<div class='footer'>generated by <a href='https://git.zx2c4.com/cgit/about/'>cgit v1.2.1</a> (<a href='https://git-scm.com/'>git 2.21.0</a>) at 2025-04-17 21:49:07 +0000</div>
</div> <!-- id=cgit -->
</body>
</html>