1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-13 04:04:12 +02:00

[ticket/9837] Make unapproved posts visible to posters

Add tests
Tidy up code
Improve user message formatting

PHPBB3-9837
This commit is contained in:
v12mike
2019-09-11 04:52:07 -04:00
committed by Marc Alexander
parent 78a913581c
commit 92362441bd
8 changed files with 105 additions and 19 deletions

View File

@@ -3,17 +3,20 @@
<table name="phpbb_topics">
<column>topic_id</column>
<column>forum_id</column>
<column>topic_poster</column>
<column>topic_visibility</column>
<column>topic_title</column>
<row>
<value>1</value>
<value>1</value>
<value>0</value>
<value>0</value>
<value>Unapproved</value>
</row>
<row>
<value>2</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>Approved</value>
</row>
@@ -21,13 +24,22 @@
<value>3</value>
<value>1</value>
<value>2</value>
<value>0</value>
<value>Softdeleted</value>
</row>
<row>
<value>4</value>
<value>1</value>
<value>1</value>
<value>0</value>
<value>Unapproved</value>
</row>
</table>
<table name="phpbb_posts">
<column>post_id</column>
<column>topic_id</column>
<column>forum_id</column>
<column>poster_id</column>
<column>post_visibility</column>
<column>post_text</column>
<row>
@@ -35,12 +47,14 @@
<value>1</value>
<value>1</value>
<value>0</value>
<value>0</value>
<value>Unapproved</value>
</row>
<row>
<value>2</value>
<value>2</value>
<value>1</value>
<value>0</value>
<value>1</value>
<value>Approved</value>
</row>
@@ -48,8 +62,17 @@
<value>3</value>
<value>3</value>
<value>1</value>
<value>0</value>
<value>2</value>
<value>Softdeleted</value>
</row>
<row>
<value>4</value>
<value>4</value>
<value>1</value>
<value>1</value>
<value>0</value>
<value>Unapproved</value>
</row>
</table>
</dataset>

View File

@@ -21,8 +21,11 @@ class phpbb_content_visibility_get_visibility_sql_test extends phpbb_database_te
public function get_visibility_sql_data()
{
return array(
// data set 0: display_unapproved_posts=false, moderator, can see all posts
array(
'phpbb_posts',
0,
false,
'post', 1, '',
array(
array('m_approve', 1, true),
@@ -31,10 +34,14 @@ class phpbb_content_visibility_get_visibility_sql_test extends phpbb_database_te
array('post_id' => 1),
array('post_id' => 2),
array('post_id' => 3),
array('post_id' => 4),
),
),
// data set 1: display_unapproved_posts=false, normal user, cannot see any unapproved posts
array(
'phpbb_posts',
0,
false,
'post', 1, '',
array(
),
@@ -42,8 +49,11 @@ class phpbb_content_visibility_get_visibility_sql_test extends phpbb_database_te
array('post_id' => 2),
),
),
// data set 2: display_unapproved_posts=false, moderator, can see all topics
array(
'phpbb_topics',
0,
false,
'topic', 1, '',
array(
array('m_approve', 1, true),
@@ -52,23 +62,74 @@ class phpbb_content_visibility_get_visibility_sql_test extends phpbb_database_te
array('topic_id' => 1),
array('topic_id' => 2),
array('topic_id' => 3),
array('topic_id' => 4),
),
),
// data set 3: display_unapproved_posts=false, normal user, cannot see unapproved posts topic
array(
'phpbb_topics',
0,
false,
'topic', 1, '',
array(),
array(
array('topic_id' => 2),
),
),
// data set 4: display_unapproved_posts=true, guest user, cannot see unapproved posts
array(
'phpbb_posts',
1,
true,
'post', 1, '',
array(
),
array(
array('post_id' => 2),
),
),
// data set 5: display_unapproved_posts=true, guest user, cannot see unapproved posts topic
array(
'phpbb_topics',
1,
true,
'topic', 1, '',
array(),
array(
array('topic_id' => 2),
),
),
// data set 6: display_unapproved_posts=true, normal user, can see own unapproved posts
array(
'phpbb_posts',
0,
true,
'post', 1, '',
array(),
array(
array('post_id' => 1),
array('post_id' => 2),
),
),
// data set 7: display_unapproved_posts=true, normal user, can see own unapproved posts topic
array(
'phpbb_topics',
0,
true,
'topic', 1, '',
array(),
array(
array('topic_id' => 1),
array('topic_id' => 2),
),
),
);
}
/**
* @dataProvider get_visibility_sql_data
*/
public function test_get_visibility_sql($table, $mode, $forum_id, $table_alias, $permissions, $expected)
public function test_get_visibility_sql($table, $user_id, $display_unapproved, $mode, $forum_id, $table_alias, $permissions, $expected)
{
global $cache, $db, $auth, $phpbb_root_path, $phpEx;
@@ -84,7 +145,10 @@ class phpbb_content_visibility_get_visibility_sql_test extends phpbb_database_te
$lang_loader = new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx);
$lang = new \phpbb\language\language($lang_loader);
$user = new \phpbb\user($lang, '\phpbb\datetime');
$config = new phpbb\config\config(array());
$user->data['user_id'] = $user_id;
$config = $this->config = new \phpbb\config\config(array(
'display_unapproved_posts' => $display_unapproved,
));
$phpbb_dispatcher = new phpbb_mock_event_dispatcher();
$content_visibility = new \phpbb\content_visibility($auth, $config, $phpbb_dispatcher, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE);