aboutsummaryrefslogtreecommitdiffstats
path: root/tests/functions_user
diff options
context:
space:
mode:
authorMaat <maat-pub@mageia.biz>2020-05-08 18:29:30 +0200
committerMaat <maat-pub@mageia.biz>2020-05-08 21:36:04 +0200
commit36bc1870f21fac04736a1049c1d5b8e127d729f4 (patch)
tree9d102331eeaf1ef3cd23e656320d7c08e65757ed /tests/functions_user
parent8875d385d0579b451dac4d9bda465172b4f69ee0 (diff)
parent149375253685b3a38996f63015a74b7a0f53aa14 (diff)
downloadforums-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.php80
-rw-r--r--tests/functions_user/fixtures/delete_user.xml32
-rw-r--r--tests/functions_user/fixtures/group_user_attributes.xml113
-rw-r--r--tests/functions_user/group_user_attributes_test.php162
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);
+ }
+}