diff options
author | JoshyPHP <s9e.dev@gmail.com> | 2015-05-01 20:05:15 +0200 |
---|---|---|
committer | JoshyPHP <s9e.dev@gmail.com> | 2015-05-30 17:26:00 +0200 |
commit | 459f1d4c1f26658c70d29ac7c4e3f3389a973a59 (patch) | |
tree | 15940734e6782882b1879f338cc29b72288c1735 | |
parent | b5911281ae175340817345e63ddbfaf43abb3cec (diff) | |
download | forums-459f1d4c1f26658c70d29ac7c4e3f3389a973a59.tar forums-459f1d4c1f26658c70d29ac7c4e3f3389a973a59.tar.gz forums-459f1d4c1f26658c70d29ac7c4e3f3389a973a59.tar.bz2 forums-459f1d4c1f26658c70d29ac7c4e3f3389a973a59.tar.xz forums-459f1d4c1f26658c70d29ac7c4e3f3389a973a59.zip |
[ticket/13803] Refactored test
PHPBB3-13803
-rw-r--r-- | phpBB/phpbb/textreparser/plugins/forum_description.php | 4 | ||||
-rw-r--r-- | phpBB/phpbb/textreparser/plugins/forum_rules.php | 4 | ||||
-rw-r--r-- | phpBB/phpbb/textreparser/plugins/group_description.php | 4 | ||||
-rw-r--r-- | phpBB/phpbb/textreparser/plugins/pm_text.php | 4 | ||||
-rw-r--r-- | phpBB/phpbb/textreparser/plugins/poll_option.php | 4 | ||||
-rw-r--r-- | phpBB/phpbb/textreparser/plugins/poll_title.php | 4 | ||||
-rw-r--r-- | phpBB/phpbb/textreparser/plugins/post_text.php | 4 | ||||
-rw-r--r-- | phpBB/phpbb/textreparser/plugins/user_signature.php | 4 | ||||
-rw-r--r-- | phpBB/phpbb/textreparser/row_based_plugin.php | 4 | ||||
-rw-r--r-- | tests/text_reparser/fixtures/posts.xml | 4 | ||||
-rw-r--r-- | tests/text_reparser/post_text_test.php | 75 | ||||
-rw-r--r-- | tests/text_reparser/test_row_based_plugin.php | 92 |
12 files changed, 116 insertions, 91 deletions
diff --git a/phpBB/phpbb/textreparser/plugins/forum_description.php b/phpBB/phpbb/textreparser/plugins/forum_description.php index d6e95c9638..7798e4b20b 100644 --- a/phpBB/phpbb/textreparser/plugins/forum_description.php +++ b/phpBB/phpbb/textreparser/plugins/forum_description.php @@ -18,7 +18,7 @@ class forum_description extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_columns() + public function get_columns() { return array( 'id' => 'forum_id', @@ -30,7 +30,7 @@ class forum_description extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_table_name() + public function get_table_name() { return FORUMS_TABLE; } diff --git a/phpBB/phpbb/textreparser/plugins/forum_rules.php b/phpBB/phpbb/textreparser/plugins/forum_rules.php index 36bb595cb9..57c666a556 100644 --- a/phpBB/phpbb/textreparser/plugins/forum_rules.php +++ b/phpBB/phpbb/textreparser/plugins/forum_rules.php @@ -18,7 +18,7 @@ class forum_rules extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_columns() + public function get_columns() { return array( 'id' => 'forum_id', @@ -30,7 +30,7 @@ class forum_rules extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_table_name() + public function get_table_name() { return FORUMS_TABLE; } diff --git a/phpBB/phpbb/textreparser/plugins/group_description.php b/phpBB/phpbb/textreparser/plugins/group_description.php index c83079827c..ddd0e1d1c5 100644 --- a/phpBB/phpbb/textreparser/plugins/group_description.php +++ b/phpBB/phpbb/textreparser/plugins/group_description.php @@ -18,7 +18,7 @@ class group_description extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_columns() + public function get_columns() { return array( 'id' => 'group_id', @@ -30,7 +30,7 @@ class group_description extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_table_name() + public function get_table_name() { return GROUPS_TABLE; } diff --git a/phpBB/phpbb/textreparser/plugins/pm_text.php b/phpBB/phpbb/textreparser/plugins/pm_text.php index f4d87525df..4d06a2878b 100644 --- a/phpBB/phpbb/textreparser/plugins/pm_text.php +++ b/phpBB/phpbb/textreparser/plugins/pm_text.php @@ -18,7 +18,7 @@ class pm_text extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_columns() + public function get_columns() { return array( 'id' => 'msg_id', @@ -33,7 +33,7 @@ class pm_text extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_table_name() + public function get_table_name() { return PRIVMSGS_TABLE; } diff --git a/phpBB/phpbb/textreparser/plugins/poll_option.php b/phpBB/phpbb/textreparser/plugins/poll_option.php index f074f1866d..cc28599737 100644 --- a/phpBB/phpbb/textreparser/plugins/poll_option.php +++ b/phpBB/phpbb/textreparser/plugins/poll_option.php @@ -18,7 +18,7 @@ class poll_option extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_columns() + public function get_columns() { return array( 'id' => 'poll_option_id', @@ -43,7 +43,7 @@ class poll_option extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_table_name() + public function get_table_name() { return POLL_OPTIONS_TABLE; } diff --git a/phpBB/phpbb/textreparser/plugins/poll_title.php b/phpBB/phpbb/textreparser/plugins/poll_title.php index e794780eba..6665d68847 100644 --- a/phpBB/phpbb/textreparser/plugins/poll_title.php +++ b/phpBB/phpbb/textreparser/plugins/poll_title.php @@ -18,7 +18,7 @@ class poll_title extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_columns() + public function get_columns() { return array( 'id' => 'topic_id', @@ -43,7 +43,7 @@ class poll_title extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_table_name() + public function get_table_name() { return TOPICS_TABLE; } diff --git a/phpBB/phpbb/textreparser/plugins/post_text.php b/phpBB/phpbb/textreparser/plugins/post_text.php index 2b16518b03..4a07c98cea 100644 --- a/phpBB/phpbb/textreparser/plugins/post_text.php +++ b/phpBB/phpbb/textreparser/plugins/post_text.php @@ -18,7 +18,7 @@ class post_text extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_columns() + public function get_columns() { return array( 'id' => 'post_id', @@ -33,7 +33,7 @@ class post_text extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_table_name() + public function get_table_name() { return POSTS_TABLE; } diff --git a/phpBB/phpbb/textreparser/plugins/user_signature.php b/phpBB/phpbb/textreparser/plugins/user_signature.php index 7a66f39ab6..db82d4089b 100644 --- a/phpBB/phpbb/textreparser/plugins/user_signature.php +++ b/phpBB/phpbb/textreparser/plugins/user_signature.php @@ -50,7 +50,7 @@ class user_signature extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_columns() + public function get_columns() { return array( 'id' => 'user_id', @@ -63,7 +63,7 @@ class user_signature extends \phpbb\textreparser\row_based_plugin /** * {@inheritdoc} */ - protected function get_table_name() + public function get_table_name() { return USERS_TABLE; } diff --git a/phpBB/phpbb/textreparser/row_based_plugin.php b/phpBB/phpbb/textreparser/row_based_plugin.php index b946d6532b..2be0b68411 100644 --- a/phpBB/phpbb/textreparser/row_based_plugin.php +++ b/phpBB/phpbb/textreparser/row_based_plugin.php @@ -35,14 +35,14 @@ abstract class row_based_plugin extends base * * @return array */ - abstract protected function get_columns(); + abstract public function get_columns(); /** * Return the name of the table used by this plugin * * @return string */ - abstract protected function get_table_name(); + abstract public function get_table_name(); /** * Add fields to given row, if applicable diff --git a/tests/text_reparser/fixtures/posts.xml b/tests/text_reparser/fixtures/posts.xml index 3cfbfd2e95..5e725825d8 100644 --- a/tests/text_reparser/fixtures/posts.xml +++ b/tests/text_reparser/fixtures/posts.xml @@ -12,7 +12,7 @@ <value>1</value> <value>1</value> <value>1</value> - <value>This post should be [b]ignored[/b]</value> + <value>This row should be [b]ignored[/b]</value> <value>abcd1234</value> </row> <row> @@ -52,7 +52,7 @@ <value>1</value> <value>1</value> <value>1</value> - <value>This post should be [b]ignored[/b]</value> + <value>This row should be [b]ignored[/b]</value> <value>abcd1234</value> </row> </table> diff --git a/tests/text_reparser/post_text_test.php b/tests/text_reparser/post_text_test.php index 19e9c37ecc..ac540f170c 100644 --- a/tests/text_reparser/post_text_test.php +++ b/tests/text_reparser/post_text_test.php @@ -10,84 +10,17 @@ * the docs/CREDITS.txt file. * */ -require_once __DIR__ . '/../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../phpBB/includes/functions_content.php'; -require_once __DIR__ . '/../test_framework/phpbb_database_test_case.php'; +include_once __DIR__ . '/test_row_based_plugin.php'; -class phpbb_textreparser_post_text_test extends phpbb_database_test_case +class phpbb_textreparser_post_text_test extends phpbb_textreparser_test_row_based_plugin { - public function setUp() - { - global $config; - if (!isset($config)) - { - $config = new \phpbb\config\config(array()); - } - $this->get_test_case_helpers()->set_s9e_services(); - parent::setUp(); - } - public function getDataSet() { return $this->createXMLDataSet(__DIR__ . '/fixtures/posts.xml'); } - /** - * @dataProvider getReparseTests - */ - public function testReparse($min_id, $max_id, $expected) - { - $db = $this->new_dbal(); - $reparser = new \phpbb\textreparser\plugins\post_text($db); - $reparser->reparse_range($min_id, $max_id); - - $post_ids = array(); - foreach ($expected as $row) - { - $post_ids[] = $row['post_id']; - } - $sql = 'SELECT post_id, post_text - FROM ' . POSTS_TABLE . ' - WHERE ' . $db->sql_in_set('post_id', $post_ids); - $result = $db->sql_query($sql); - $rows = $db->sql_fetchrowset($result); - $db->sql_freeresult($result); - $this->assertEquals($expected, $rows); - } - - public function getReparseTests() + public function get_reparser() { - return array( - array( - 2, - 5, - array( - array( - 'post_id' => 1, - 'post_text' => 'This post should be [b]ignored[/b]', - ), - array( - 'post_id' => 2, - 'post_text' => '<t>[b]Not bold[/b] :) http://example.org</t>', - ), - array( - 'post_id' => 3, - 'post_text' => '<r><B><s>[b]</s>Bold<e>[/b]</e></B> :) http://example.org</r>', - ), - array( - 'post_id' => 4, - 'post_text' => '<r>[b]Not bold[/b] <E>:)</E> http://example.org</r>', - ), - array( - 'post_id' => 5, - 'post_text' => '<r>[b]Not bold[/b] :) <URL url="http://example.org">http://example.org</URL></r>', - ), - array( - 'post_id' => 1000, - 'post_text' => 'This post should be [b]ignored[/b]', - ), - ) - ), - ); + return new \phpbb\textreparser\plugins\post_text($this->db); } } diff --git a/tests/text_reparser/test_row_based_plugin.php b/tests/text_reparser/test_row_based_plugin.php new file mode 100644 index 0000000000..7dd90f21d0 --- /dev/null +++ b/tests/text_reparser/test_row_based_plugin.php @@ -0,0 +1,92 @@ +<?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 __DIR__ . '/../../phpBB/includes/functions.php'; +require_once __DIR__ . '/../../phpBB/includes/functions_content.php'; +require_once __DIR__ . '/../test_framework/phpbb_database_test_case.php'; + +abstract class phpbb_textreparser_test_row_based_plugin extends phpbb_database_test_case +{ + protected $db; + + public function setUp() + { + global $config; + if (!isset($config)) + { + $config = new \phpbb\config\config(array()); + } + $this->get_test_case_helpers()->set_s9e_services(); + $this->db = $this->new_dbal(); + parent::setUp(); + } + + /** + * @dataProvider getReparseTests + */ + public function testReparse($min_id, $max_id, $expected) + { + $reparser = $this->get_reparser(); + $reparser->reparse_range($min_id, $max_id); + + $ids = array(); + foreach ($expected as $row) + { + $ids[] = $row['id']; + } + + $columns = $reparser->get_columns(); + $sql = 'SELECT ' . $columns['id'] . ' AS id, ' . $columns['text'] . ' AS text + FROM ' . $reparser->get_table_name() . ' + WHERE ' . $this->db->sql_in_set($columns['id'], $ids); + $result = $this->db->sql_query($sql); + $rows = $this->db->sql_fetchrowset($result); + $this->db->sql_freeresult($result); + $this->assertEquals($expected, $rows); + } + + public function getReparseTests() + { + return array( + array( + 2, + 5, + array( + array( + 'id' => 1, + 'text' => 'This row should be [b]ignored[/b]', + ), + array( + 'id' => 2, + 'text' => '<t>[b]Not bold[/b] :) http://example.org</t>', + ), + array( + 'id' => 3, + 'text' => '<r><B><s>[b]</s>Bold<e>[/b]</e></B> :) http://example.org</r>', + ), + array( + 'id' => 4, + 'text' => '<r>[b]Not bold[/b] <E>:)</E> http://example.org</r>', + ), + array( + 'id' => 5, + 'text' => '<r>[b]Not bold[/b] :) <URL url="http://example.org">http://example.org</URL></r>', + ), + array( + 'id' => 1000, + 'text' => 'This row should be [b]ignored[/b]', + ), + ) + ), + ); + } +} |