diff options
Diffstat (limited to 'tests/content_visibility')
7 files changed, 101 insertions, 12 deletions
diff --git a/tests/content_visibility/delete_post_test.php b/tests/content_visibility/delete_post_test.php index 4ea95b0a96..1c1796a1fc 100644 --- a/tests/content_visibility/delete_post_test.php +++ b/tests/content_visibility/delete_post_test.php @@ -287,7 +287,7 @@ class phpbb_content_visibility_delete_post_test extends phpbb_database_test_case */ public function test_delete_post($forum_id, $topic_id, $post_id, $data, $is_soft, $reason, $expected_posts, $expected_topic, $expected_forum, $expected_user) { - global $auth, $cache, $config, $db, $phpbb_container, $phpbb_dispatcher, $phpbb_root_path, $phpEx; + global $auth, $cache, $config, $db, $user, $phpbb_container, $phpbb_dispatcher, $phpbb_root_path, $phpEx; $config = new \phpbb\config\config(array( 'num_posts' => 3, @@ -299,7 +299,7 @@ class phpbb_content_visibility_delete_post_test extends phpbb_database_test_case $phpbb_dispatcher = new phpbb_mock_event_dispatcher(); // Create auth mock - $auth = $this->getMock('\phpbb\auth\auth'); + $auth = $this->createMock('\phpbb\auth\auth'); $auth->expects($this->any()) ->method('acl_get') ->with($this->stringContains('_'), $this->anything()) diff --git a/tests/content_visibility/fixtures/get_visibility_sql.xml b/tests/content_visibility/fixtures/get_visibility_sql.xml index 146244263e..2128064986 100644 --- a/tests/content_visibility/fixtures/get_visibility_sql.xml +++ b/tests/content_visibility/fixtures/get_visibility_sql.xml @@ -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> diff --git a/tests/content_visibility/get_forums_visibility_sql_test.php b/tests/content_visibility/get_forums_visibility_sql_test.php index 6c5066119e..fde2b62131 100644 --- a/tests/content_visibility/get_forums_visibility_sql_test.php +++ b/tests/content_visibility/get_forums_visibility_sql_test.php @@ -129,7 +129,7 @@ class phpbb_content_visibility_get_forums_visibility_sql_test extends phpbb_data $db = $this->new_dbal(); // Create auth mock - $auth = $this->getMock('\phpbb\auth\auth'); + $auth = $this->createMock('\phpbb\auth\auth'); $auth->expects($this->any()) ->method('acl_getf') ->with($this->stringContains('_'), $this->anything()) diff --git a/tests/content_visibility/get_global_visibility_sql_test.php b/tests/content_visibility/get_global_visibility_sql_test.php index 9ae4182673..eced3aa680 100644 --- a/tests/content_visibility/get_global_visibility_sql_test.php +++ b/tests/content_visibility/get_global_visibility_sql_test.php @@ -129,7 +129,7 @@ class phpbb_content_visibility_get_global_visibility_sql_test extends phpbb_data $db = $this->new_dbal(); // Create auth mock - $auth = $this->getMock('\phpbb\auth\auth'); + $auth = $this->createMock('\phpbb\auth\auth'); $auth->expects($this->any()) ->method('acl_getf') ->with($this->stringContains('_'), $this->anything()) diff --git a/tests/content_visibility/get_visibility_sql_test.php b/tests/content_visibility/get_visibility_sql_test.php index aaaf64330e..6026778487 100644 --- a/tests/content_visibility/get_visibility_sql_test.php +++ b/tests/content_visibility/get_visibility_sql_test.php @@ -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; @@ -76,7 +137,7 @@ class phpbb_content_visibility_get_visibility_sql_test extends phpbb_database_te $db = $this->new_dbal(); // Create auth mock - $auth = $this->getMock('\phpbb\auth\auth'); + $auth = $this->createMock('\phpbb\auth\auth'); $auth->expects($this->any()) ->method('acl_get') ->with($this->stringContains('_'), $this->anything()) @@ -84,15 +145,20 @@ 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); - $result = $db->sql_query('SELECT ' . $mode . '_id + $sql = 'SELECT ' . $mode . '_id FROM ' . $table . ' WHERE ' . $content_visibility->get_visibility_sql($mode, $forum_id, $table_alias) . ' - ORDER BY ' . $mode . '_id ASC'); + ORDER BY ' . $mode . '_id ASC'; + $result = $db->sql_query($sql); $this->assertEquals($expected, $db->sql_fetchrowset($result)); + $db->sql_freeresult($result); } } diff --git a/tests/content_visibility/set_post_visibility_test.php b/tests/content_visibility/set_post_visibility_test.php index e33a1f30d5..8f629dca62 100644 --- a/tests/content_visibility/set_post_visibility_test.php +++ b/tests/content_visibility/set_post_visibility_test.php @@ -120,7 +120,7 @@ class phpbb_content_visibility_set_post_visibility_test extends phpbb_database_t $cache = new phpbb_mock_cache; $db = $this->new_dbal(); - $auth = $this->getMock('\phpbb\auth\auth'); + $auth = $this->createMock('\phpbb\auth\auth'); $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'); @@ -173,7 +173,7 @@ class phpbb_content_visibility_set_post_visibility_test extends phpbb_database_t $cache = new phpbb_mock_cache; $db = $this->new_dbal(); - $auth = $this->getMock('\phpbb\auth\auth'); + $auth = $this->createMock('\phpbb\auth\auth'); $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'); diff --git a/tests/content_visibility/set_topic_visibility_test.php b/tests/content_visibility/set_topic_visibility_test.php index 78431396c3..3db79c0fe0 100644 --- a/tests/content_visibility/set_topic_visibility_test.php +++ b/tests/content_visibility/set_topic_visibility_test.php @@ -84,7 +84,7 @@ class phpbb_content_visibility_set_topic_visibility_test extends phpbb_database_ $cache = new phpbb_mock_cache; $db = $this->new_dbal(); - $auth = $this->getMock('\phpbb\auth\auth'); + $auth = $this->createMock('\phpbb\auth\auth'); $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'); |