diff options
author | Maat <maat-pub@mageia.biz> | 2020-05-08 18:29:30 +0200 |
---|---|---|
committer | Maat <maat-pub@mageia.biz> | 2020-05-08 21:36:04 +0200 |
commit | 36bc1870f21fac04736a1049c1d5b8e127d729f4 (patch) | |
tree | 9d102331eeaf1ef3cd23e656320d7c08e65757ed /tests/functions_user | |
parent | 8875d385d0579b451dac4d9bda465172b4f69ee0 (diff) | |
parent | 149375253685b3a38996f63015a74b7a0f53aa14 (diff) | |
download | forums-36bc1870f21fac04736a1049c1d5b8e127d729f4.tar forums-36bc1870f21fac04736a1049c1d5b8e127d729f4.tar.gz forums-36bc1870f21fac04736a1049c1d5b8e127d729f4.tar.bz2 forums-36bc1870f21fac04736a1049c1d5b8e127d729f4.tar.xz forums-36bc1870f21fac04736a1049c1d5b8e127d729f4.zip |
Merge remote-tracking branch 'upstream/prep-release-3.1.11'
Diffstat (limited to 'tests/functions_user')
-rw-r--r-- | tests/functions_user/delete_user_test.php | 80 | ||||
-rw-r--r-- | tests/functions_user/fixtures/delete_user.xml | 32 | ||||
-rw-r--r-- | tests/functions_user/fixtures/group_user_attributes.xml | 113 | ||||
-rw-r--r-- | tests/functions_user/group_user_attributes_test.php | 162 |
4 files changed, 347 insertions, 40 deletions
diff --git a/tests/functions_user/delete_user_test.php b/tests/functions_user/delete_user_test.php index 9a7805a819..7db69e332c 100644 --- a/tests/functions_user/delete_user_test.php +++ b/tests/functions_user/delete_user_test.php @@ -10,30 +10,44 @@ 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'; -require_once dirname(__FILE__) . '/../mock/null_cache.php'; class phpbb_functions_user_delete_user_test extends phpbb_database_test_case { - /** @var \dbal */ + /** @var \phpbb\db\driver\driver_interface */ protected $db; public function getDataSet() { - return $this->createXMLDataSet(dirname(__FILE__).'/fixtures/delete_user.xml'); + return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/delete_user.xml'); } protected function setUp() { parent::setUp(); - global $cache, $config, $db; + global $cache, $config, $db, $phpbb_dispatcher, $phpbb_container; $db = $this->db = $this->new_dbal(); - $config = array( + $config = new \phpbb\config\config(array( 'load_online_time' => 5, - 'search_type' => 'fulltext_mysql', - ); + 'search_type' => '\phpbb\search\fulltext_mysql', + )); + set_config(false, false, false, $config); + set_config_count(false, false, false, $config); $cache = new phpbb_mock_null_cache(); + $phpbb_dispatcher = new phpbb_mock_event_dispatcher(); + $phpbb_container = new phpbb_mock_container_builder(); + $phpbb_container->set('notification_manager', new phpbb_mock_notification_manager()); + $phpbb_container->set( + 'auth.provider.db', + new phpbb_mock_auth_provider() + ); + $provider_collection = new \phpbb\auth\provider_collection($phpbb_container, $config); + $provider_collection->add('auth.provider.db'); + $phpbb_container->set( + 'auth.provider_collection', + $provider_collection + ); } public function first_last_post_data() @@ -102,18 +116,18 @@ class phpbb_functions_user_delete_user_test extends phpbb_database_test_case ), ), array( - 'retain', 'Bertie', + 'retain', true, array( - array('post_id' => 1, 'poster_id' => ANONYMOUS, 'post_username' => 'Bertie'), + array('post_id' => 1, 'poster_id' => ANONYMOUS, 'post_username' => 'Foobar'), array('post_id' => 2, 'poster_id' => ANONYMOUS, 'post_username' => 'Other'), - array('post_id' => 3, 'poster_id' => ANONYMOUS, 'post_username' => 'Bertie'), + array('post_id' => 3, 'poster_id' => ANONYMOUS, 'post_username' => 'Foobar'), array('post_id' => 4, 'poster_id' => ANONYMOUS, 'post_username' => 'Other'), ), array( array( 'topic_id' => 1, - 'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Bertie', 'topic_first_poster_colour' => '', - 'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Bertie', 'topic_last_poster_colour' => '', + 'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Foobar', 'topic_first_poster_colour' => '', + 'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Foobar', 'topic_last_poster_colour' => '', ), array( 'topic_id' => 2, @@ -122,8 +136,8 @@ class phpbb_functions_user_delete_user_test extends phpbb_database_test_case ), array( 'topic_id' => 3, - 'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Bertie', 'topic_first_poster_colour' => '', - 'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Bertie', 'topic_last_poster_colour' => '', + 'topic_poster' => ANONYMOUS, 'topic_first_poster_name' => 'Foobar', 'topic_first_poster_colour' => '', + 'topic_last_poster_id' => ANONYMOUS, 'topic_last_poster_name' => 'Foobar', 'topic_last_poster_colour' => '', ), array( 'topic_id' => 4, @@ -132,14 +146,14 @@ class phpbb_functions_user_delete_user_test extends phpbb_database_test_case ), ), array( - array('forum_id' => 1, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Bertie', 'forum_last_poster_colour' => ''), + array('forum_id' => 1, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Foobar', 'forum_last_poster_colour' => ''), array('forum_id' => 2, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Other', 'forum_last_poster_colour' => ''), - array('forum_id' => 3, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Bertie', 'forum_last_poster_colour' => ''), + array('forum_id' => 3, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Foobar', 'forum_last_poster_colour' => ''), array('forum_id' => 4, 'forum_last_poster_id' => ANONYMOUS, 'forum_last_poster_name' => 'Other', 'forum_last_poster_colour' => ''), ), ), array( - 'remove', 'Bertie', + 'remove', true, array( array('post_id' => 2, 'poster_id' => ANONYMOUS, 'post_username' => 'Other'), array('post_id' => 4, 'poster_id' => ANONYMOUS, 'post_username' => 'Other'), @@ -169,9 +183,9 @@ class phpbb_functions_user_delete_user_test extends phpbb_database_test_case /** * @dataProvider first_last_post_data */ - public function test_first_last_post_info($mode, $post_username, $expected_posts, $expected_topics, $expected_forums) + public function test_first_last_post_info($mode, $retain_username, $expected_posts, $expected_topics, $expected_forums) { - $this->assertFalse(user_delete($mode, 2, $post_username)); + $this->assertFalse(user_delete($mode, 2, $retain_username)); $sql = 'SELECT post_id, poster_id, post_username FROM ' . POSTS_TABLE . ' @@ -201,20 +215,20 @@ class phpbb_functions_user_delete_user_test extends phpbb_database_test_case array( 'retain', array( - array('post_id' => 1, 'post_reported' => 1, 'post_edit_user' => 1), - array('post_id' => 2, 'post_reported' => 1, 'post_edit_user' => 1), - array('post_id' => 3, 'post_reported' => 0, 'post_edit_user' => 1), - array('post_id' => 4, 'post_reported' => 0, 'post_edit_user' => 1), + array('post_id' => 1, 'post_reported' => 1, 'post_edit_user' => 1, 'post_delete_user' => 1), + array('post_id' => 2, 'post_reported' => 1, 'post_edit_user' => 1, 'post_delete_user' => 1), + array('post_id' => 3, 'post_reported' => 0, 'post_edit_user' => 1, 'post_delete_user' => 1), + array('post_id' => 4, 'post_reported' => 0, 'post_edit_user' => 1, 'post_delete_user' => 1), ), array( array('report_id' => 1, 'post_id' => 1, 'user_id' => 1), array('report_id' => 3, 'post_id' => 2, 'user_id' => 1), ), array( - array('topic_id' => 1, 'topic_reported' => 1), - array('topic_id' => 2, 'topic_reported' => 1), - array('topic_id' => 3, 'topic_reported' => 0), - array('topic_id' => 4, 'topic_reported' => 0), + array('topic_id' => 1, 'topic_reported' => 1, 'topic_delete_user' => 1), + array('topic_id' => 2, 'topic_reported' => 1, 'topic_delete_user' => 1), + array('topic_id' => 3, 'topic_reported' => 0, 'topic_delete_user' => 1), + array('topic_id' => 4, 'topic_reported' => 0, 'topic_delete_user' => 1), ), array( array('attach_id' => 1, 'post_msg_id' => 1, 'poster_id' => 1), @@ -225,15 +239,15 @@ class phpbb_functions_user_delete_user_test extends phpbb_database_test_case array( 'remove', array( - array('post_id' => 2, 'post_reported' => 1, 'post_edit_user' => 1), - array('post_id' => 4, 'post_reported' => 0, 'post_edit_user' => 1), + array('post_id' => 2, 'post_reported' => 1, 'post_edit_user' => 1, 'post_delete_user' => 1), + array('post_id' => 4, 'post_reported' => 0, 'post_edit_user' => 1, 'post_delete_user' => 1), ), array( array('report_id' => 3, 'post_id' => 2, 'user_id' => 1), ), array( - array('topic_id' => 2, 'topic_reported' => 1), - array('topic_id' => 4, 'topic_reported' => 0), + array('topic_id' => 2, 'topic_reported' => 1, 'topic_delete_user' => 1), + array('topic_id' => 4, 'topic_reported' => 0, 'topic_delete_user' => 1), ), array( array('attach_id' => 2, 'post_msg_id' => 2, 'poster_id' => 1), @@ -250,7 +264,7 @@ class phpbb_functions_user_delete_user_test extends phpbb_database_test_case { $this->assertFalse(user_delete($mode, 2)); - $sql = 'SELECT post_id, post_reported, post_edit_user + $sql = 'SELECT post_id, post_reported, post_edit_user, post_delete_user FROM ' . POSTS_TABLE . ' ORDER BY post_id ASC'; $result = $this->db->sql_query($sql); @@ -264,7 +278,7 @@ class phpbb_functions_user_delete_user_test extends phpbb_database_test_case $this->assertEquals($expected_reports, $this->db->sql_fetchrowset($result), 'Report table content is mismatching after deleting a user.'); $this->db->sql_freeresult($result); - $sql = 'SELECT topic_id, topic_reported + $sql = 'SELECT topic_id, topic_reported, topic_delete_user FROM ' . TOPICS_TABLE . ' ORDER BY topic_id ASC'; $result = $this->db->sql_query($sql); diff --git a/tests/functions_user/fixtures/delete_user.xml b/tests/functions_user/fixtures/delete_user.xml index 07591389d2..56014b35d1 100644 --- a/tests/functions_user/fixtures/delete_user.xml +++ b/tests/functions_user/fixtures/delete_user.xml @@ -148,10 +148,11 @@ <column>post_id</column> <column>poster_id</column> <column>post_edit_user</column> + <column>post_delete_user</column> <column>post_username</column> <column>topic_id</column> <column>forum_id</column> - <column>post_approved</column> + <column>post_visibility</column> <column>post_time</column> <column>post_text</column> <column>post_reported</column> @@ -159,6 +160,7 @@ <value>1</value> <value>2</value> <value>2</value> + <value>2</value> <value></value> <value>1</value> <value>1</value> @@ -171,6 +173,7 @@ <value>2</value> <value>1</value> <value>1</value> + <value>1</value> <value>Other</value> <value>2</value> <value>2</value> @@ -183,6 +186,7 @@ <value>3</value> <value>2</value> <value>2</value> + <value>2</value> <value></value> <value>3</value> <value>3</value> @@ -195,6 +199,7 @@ <value>4</value> <value>1</value> <value>1</value> + <value>1</value> <value>Other</value> <value>4</value> <value>4</value> @@ -258,29 +263,34 @@ <column>post_id</column> <column>user_id</column> <column>report_text</column> + <column>reported_post_text</column> <row> <value>1</value> <value>1</value> <value>1</value> <value>Post Removed?</value> + <value></value> </row> <row> <value>2</value> <value>3</value> <value>2</value> <value>Post Removed?</value> + <value></value> </row> <row> <value>3</value> <value>2</value> <value>1</value> <value>Keep</value> + <value></value> </row> <row> <value>4</value> <value>4</value> <value>2</value> <value>Remove Report</value> + <value></value> </row> </table> <table name="phpbb_sessions"> @@ -303,6 +313,7 @@ <column>forum_id</column> <column>topic_reported</column> <column>topic_poster</column> + <column>topic_delete_user</column> <column>topic_first_poster_name</column> <column>topic_first_poster_colour</column> <column>topic_last_poster_id</column> @@ -313,6 +324,7 @@ <value>1</value> <value>1</value> <value>2</value> + <value>2</value> <value></value> <value>00AA00</value> <value>2</value> @@ -324,6 +336,7 @@ <value>2</value> <value>1</value> <value>1</value> + <value>1</value> <value>Other</value> <value></value> <value>1</value> @@ -335,6 +348,7 @@ <value>3</value> <value>1</value> <value>2</value> + <value>2</value> <value></value> <value>00AA00</value> <value>2</value> @@ -346,6 +360,7 @@ <value>4</value> <value>1</value> <value>1</value> + <value>1</value> <value>Other</value> <value></value> <value>1</value> @@ -355,17 +370,15 @@ </table> <table name="phpbb_users"> <column>user_id</column> + <column>username</column> <column>username_clean</column> <column>user_permissions</column> <column>user_sig</column> - <column>user_occ</column> - <column>user_interests</column> <column>user_posts</column> <row> <value>1</value> <value>Anonymous</value> - <value></value> - <value></value> + <value>anonymous</value> <value></value> <value></value> <value>2</value> @@ -373,8 +386,7 @@ <row> <value>2</value> <value>Foobar</value> - <value></value> - <value></value> + <value>foobar</value> <value></value> <value></value> <value>2</value> @@ -461,11 +473,17 @@ </table> <table name="phpbb_profile_fields_data"> <column>user_id</column> + <column>pf_phpbb_interests</column> + <column>pf_phpbb_occupation</column> <row> <value>2</value> + <value></value> + <value></value> </row> <row> <value>3</value> + <value></value> + <value></value> </row> </table> <table name="phpbb_moderator_cache"> diff --git a/tests/functions_user/fixtures/group_user_attributes.xml b/tests/functions_user/fixtures/group_user_attributes.xml new file mode 100644 index 0000000000..9b1f1f504b --- /dev/null +++ b/tests/functions_user/fixtures/group_user_attributes.xml @@ -0,0 +1,113 @@ +<?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> + <row> + <value>1</value> + <value>1</value> + <value></value> + <value>0</value> + <value>barfoo</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> + </row> + <row> + <value>3</value> + <value>1</value> + <value>custom</value> + <value>2</value> + <value>bertie</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> diff --git a/tests/functions_user/group_user_attributes_test.php b/tests/functions_user/group_user_attributes_test.php new file mode 100644 index 0000000000..99a15b32bf --- /dev/null +++ b/tests/functions_user/group_user_attributes_test.php @@ -0,0 +1,162 @@ +<?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.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' => '', + '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->getMock('\phpbb\auth\auth'); + $auth->expects($this->any()) + ->method('acl_clear_prefetch'); + $cache_driver = new \phpbb\cache\driver\null(); + $phpbb_container = $this->getMock('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); + } +} |