diff options
author | Matt Friedman <maf675@gmail.com> | 2016-03-26 12:59:23 -0700 |
---|---|---|
committer | Matt Friedman <maf675@gmail.com> | 2016-03-31 15:07:59 -0700 |
commit | 6291bfaca94d104f1c85a0b139cab908e0793b3a (patch) | |
tree | 6ee6045037a2ddec91f8e5ad8da53e45e4af010e /tests/console | |
parent | [ticket/14561] Reclean usernames command (diff) | |
download | phpbb-6291bfaca94d104f1c85a0b139cab908e0793b3a.tar.gz phpbb-6291bfaca94d104f1c85a0b139cab908e0793b3a.tar.bz2 phpbb-6291bfaca94d104f1c85a0b139cab908e0793b3a.zip |
[ticket/14561] Refactor tests
PHPBB3-14561
Diffstat (limited to 'tests/console')
-rw-r--r-- | tests/console/user/activate_test.php | 81 | ||||
-rw-r--r-- | tests/console/user/add_test.php | 121 | ||||
-rw-r--r-- | tests/console/user/base.php | 122 | ||||
-rw-r--r-- | tests/console/user/delete_test.php | 107 | ||||
-rw-r--r-- | tests/console/user/fixtures/config.xml | 20 | ||||
-rw-r--r-- | tests/console/user/reclean_test.php | 52 |
6 files changed, 206 insertions, 297 deletions
diff --git a/tests/console/user/activate_test.php b/tests/console/user/activate_test.php index 90a4d74a26..08b25c6c95 100644 --- a/tests/console/user/activate_test.php +++ b/tests/console/user/activate_test.php @@ -15,58 +15,39 @@ use Symfony\Component\Console\Application; use Symfony\Component\Console\Tester\CommandTester; use phpbb\console\command\user\activate; -class phpbb_console_command_user_activate_test extends phpbb_database_test_case +require_once dirname(__FILE__) . '/base.php'; + +class phpbb_console_user_activate_test extends phpbb_console_user_base { - protected $db; - protected $config; - protected $user; - protected $language; - protected $log; protected $notifications; - protected $command_name; - protected $phpbb_root_path; - protected $php_ext; - - public function getDataSet() - { - return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/config.xml'); - } public function setUp() { - global $config, $db, $user, $auth, $phpbb_dispatcher, $phpbb_root_path, $phpEx; - - $auth = $this->getMock('\phpbb\auth\auth'); - - $phpbb_dispatcher = new phpbb_mock_event_dispatcher(); - - $config = $this->config = new \phpbb\config\config(array()); - - $db = $this->db = $this->new_dbal(); + parent::setUp(); - $this->language = $this->getMockBuilder('\phpbb\language\language') + $this->notifications = $this->getMockBuilder('\phpbb\notification\manager') ->disableOriginalConstructor() ->getMock(); - $this->language->expects($this->any()) - ->method('lang') - ->will($this->returnArgument(0)); - $user = $this->user = $this->getMock('\phpbb\user', array(), array( + } + + public function get_command_tester() + { + $application = new Application(); + $application->add(new activate( + $this->user, + $this->db, + $this->config, $this->language, - '\phpbb\datetime' + $this->log, + $this->notifications, + $this->phpbb_root_path, + $this->php_ext )); - $this->log = $this->getMockBuilder('\phpbb\log\log') - ->disableOriginalConstructor() - ->getMock(); - - $this->notifications = $this->getMockBuilder('\phpbb\notification\manager') - ->disableOriginalConstructor() - ->getMock(); - - $this->phpbb_root_path = $phpbb_root_path; - $this->php_ext = $phpEx; + $command = $application->find('user:activate'); + $this->command_name = $command->getName(); - parent::setUp(); + return new CommandTester($command); } public function activate_test_data() @@ -101,24 +82,4 @@ class phpbb_console_command_user_activate_test extends phpbb_database_test_case $this->assertContains($expected, $command_tester->getDisplay()); } - - public function get_command_tester() - { - $application = new Application(); - $application->add(new activate( - $this->user, - $this->db, - $this->config, - $this->language, - $this->log, - $this->notifications, - $this->phpbb_root_path, - $this->php_ext - )); - - $command = $application->find('user:activate'); - $this->command_name = $command->getName(); - - return new CommandTester($command); - } } diff --git a/tests/console/user/add_test.php b/tests/console/user/add_test.php index ee6eee8491..8641bf87b6 100644 --- a/tests/console/user/add_test.php +++ b/tests/console/user/add_test.php @@ -15,75 +15,27 @@ use Symfony\Component\Console\Application; use Symfony\Component\Console\Tester\CommandTester; use phpbb\console\command\user\add; -require_once dirname(__FILE__) . '/../../../phpBB/includes/functions_user.php'; +require_once dirname(__FILE__) . '/base.php'; -class phpbb_console_command_user_add_test extends phpbb_database_test_case +class phpbb_console_user_add_test extends phpbb_console_user_base { - protected $db; - protected $config; - protected $user; - protected $language; - protected $passwords_manager; - protected $command_name; - protected $question; - protected $phpbb_root_path; - protected $php_ext; - - public function getDataSet() - { - return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/config.xml'); - } - - public function setUp() + public function get_command_tester() { - global $db, $cache, $config, $user, $phpbb_dispatcher, $phpbb_container, $phpbb_root_path, $phpEx; - - $phpbb_dispatcher = new phpbb_mock_event_dispatcher(); - $phpbb_container = new phpbb_mock_container_builder(); - $phpbb_container->set('cache.driver', new phpbb_mock_cache()); - $phpbb_container->set('notification_manager', new phpbb_mock_notification_manager()); - - $cache = $phpbb_container->get('cache.driver'); - - $config = $this->config = new \phpbb\config\config(array( - 'board_timezone' => 'UTC', - 'default_lang' => 'en', - 'email_enable' => false, - 'min_name_chars' => 3, - 'max_name_chars' => 10, - 'min_pass_chars' => 3, - 'max_pass_chars' => 10, - 'pass_complex' => 'PASS_TYPE_ANY', - )); - - $db = $this->db = $this->new_dbal(); - - $this->language = $this->getMockBuilder('\phpbb\language\language') - ->disableOriginalConstructor() - ->getMock(); - $this->language->expects($this->any()) - ->method('lang') - ->will($this->returnArgument(0)); - $user = $this->user = $this->getMock('\phpbb\user', array(), array( + $application = new Application(); + $application->add(new add( + $this->user, + $this->db, + $this->config, $this->language, - '\phpbb\datetime' + $this->passwords_manager, + $this->phpbb_root_path, + $this->php_ext )); - $driver_helper = new \phpbb\passwords\driver\helper($this->config); - $passwords_drivers = array( - 'passwords.driver.bcrypt_2y' => new \phpbb\passwords\driver\bcrypt_2y($this->config, $driver_helper), - 'passwords.driver.bcrypt' => new \phpbb\passwords\driver\bcrypt($this->config, $driver_helper), - 'passwords.driver.salted_md5' => new \phpbb\passwords\driver\salted_md5($this->config, $driver_helper), - 'passwords.driver.phpass' => new \phpbb\passwords\driver\phpass($this->config, $driver_helper), - ); - - $passwords_helper = new \phpbb\passwords\helper; - $this->passwords_manager = new \phpbb\passwords\manager($this->config, $passwords_drivers, $passwords_helper, array_keys($passwords_drivers)); - - $this->phpbb_root_path = $phpbb_root_path; - $this->php_ext = $phpEx; - - parent::setUp(); + $command = $application->find('user:add'); + $this->command_name = $command->getName(); + $this->question = $command->getHelper('question'); + return new CommandTester($command); } public function test_add_no_dialog() @@ -137,47 +89,4 @@ class phpbb_console_command_user_add_test extends phpbb_database_test_case $this->assertContains('TOO_SHORT', $command_tester->getDisplay()); $this->assertContains('EMAIL_INVALID', $command_tester->getDisplay()); } - - public function get_command_tester() - { - $application = new Application(); - $application->add(new add( - $this->user, - $this->db, - $this->config, - $this->language, - $this->passwords_manager, - $this->phpbb_root_path, - $this->php_ext - )); - - $command = $application->find('user:add'); - $this->command_name = $command->getName(); - $this->question = $command->getHelper('question'); - return new CommandTester($command); - } - - public function get_user_id($username) - { - $sql = 'SELECT user_id - FROM ' . USERS_TABLE . ' - WHERE ' . 'username = ' . "'" . $username . "'"; - - $result = $this->db->sql_query($sql); - - $row = $this->db->sql_fetchrow($result); - - $this->db->sql_freeresult($result); - - return $row['user_id']; - } - - public function getInputStream($input) - { - $stream = fopen('php://memory', 'r+', false); - fputs($stream, $input); - rewind($stream); - - return $stream; - } } diff --git a/tests/console/user/base.php b/tests/console/user/base.php new file mode 100644 index 0000000000..c6ffc428ed --- /dev/null +++ b/tests/console/user/base.php @@ -0,0 +1,122 @@ +<?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_user.php'; +require_once dirname(__FILE__) . '/../../../phpBB/includes/functions.php'; +require_once dirname(__FILE__) . '/../../../phpBB/includes/utf/utf_tools.php'; + +abstract class phpbb_console_user_base extends phpbb_database_test_case +{ + protected $db; + protected $config; + protected $user; + protected $language; + protected $log; + protected $passwords_manager; + protected $command_name; + protected $question; + protected $phpbb_root_path; + protected $php_ext; + + public function getDataSet() + { + return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/config.xml'); + } + + public function setUp() + { + global $auth, $db, $cache, $config, $user, $phpbb_dispatcher, $phpbb_container, $phpbb_root_path, $phpEx; + + $phpbb_dispatcher = new phpbb_mock_event_dispatcher(); + $phpbb_container = new phpbb_mock_container_builder(); + $phpbb_container->set('cache.driver', new phpbb_mock_cache()); + $phpbb_container->set('notification_manager', new phpbb_mock_notification_manager()); + + $auth = $this->getMock('\phpbb\auth\auth'); + + $cache = $phpbb_container->get('cache.driver'); + + $config = $this->config = new \phpbb\config\config(array( + 'board_timezone' => 'UTC', + 'default_lang' => 'en', + 'email_enable' => false, + 'min_name_chars' => 3, + 'max_name_chars' => 10, + 'min_pass_chars' => 3, + 'max_pass_chars' => 10, + 'pass_complex' => 'PASS_TYPE_ANY', + )); + + $db = $this->db = $this->new_dbal(); + + $this->language = $this->getMockBuilder('\phpbb\language\language') + ->disableOriginalConstructor() + ->getMock(); + $this->language->expects($this->any()) + ->method('lang') + ->will($this->returnArgument(0)); + $user = $this->user = $this->getMock('\phpbb\user', array(), array( + $this->language, + '\phpbb\datetime' + )); + + $driver_helper = new \phpbb\passwords\driver\helper($this->config); + $passwords_drivers = array( + 'passwords.driver.bcrypt_2y' => new \phpbb\passwords\driver\bcrypt_2y($this->config, $driver_helper), + 'passwords.driver.bcrypt' => new \phpbb\passwords\driver\bcrypt($this->config, $driver_helper), + 'passwords.driver.salted_md5' => new \phpbb\passwords\driver\salted_md5($this->config, $driver_helper), + 'passwords.driver.phpass' => new \phpbb\passwords\driver\phpass($this->config, $driver_helper), + ); + + $passwords_helper = new \phpbb\passwords\helper; + $this->passwords_manager = new \phpbb\passwords\manager($this->config, $passwords_drivers, $passwords_helper, array_keys($passwords_drivers)); + + $this->phpbb_root_path = $phpbb_root_path; + $this->php_ext = $phpEx; + + $this->log = $this->getMockBuilder('\phpbb\log\log') + ->disableOriginalConstructor() + ->getMock(); + + $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 + ); + + parent::setUp(); + } + + public function get_user_id($username) + { + $sql = 'SELECT user_id + FROM ' . USERS_TABLE . ' + WHERE ' . 'username = ' . "'" . $username . "'"; + $result = $this->db->sql_query($sql); + $row = $this->db->sql_fetchrow($result); + $this->db->sql_freeresult($result); + + return $row['user_id']; + } + + public function getInputStream($input) + { + $stream = fopen('php://memory', 'r+', false); + fputs($stream, $input); + rewind($stream); + + return $stream; + } +} diff --git a/tests/console/user/delete_test.php b/tests/console/user/delete_test.php index 5162358713..dc4c07e8b8 100644 --- a/tests/console/user/delete_test.php +++ b/tests/console/user/delete_test.php @@ -15,64 +15,27 @@ use Symfony\Component\Console\Application; use Symfony\Component\Console\Tester\CommandTester; use phpbb\console\command\user\delete; -class phpbb_console_command_user_delete_test extends phpbb_database_test_case -{ - protected $db; - protected $user; - protected $language; - protected $log; - protected $command_name; - protected $question; - protected $phpbb_root_path; - protected $php_ext; - - public function getDataSet() - { - return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/config.xml'); - } +require_once dirname(__FILE__) . '/base.php'; - public function setUp() +class phpbb_console_user_delete_test extends phpbb_console_user_base +{ + public function get_command_tester() { - global $db, $cache, $config, $user, $phpbb_dispatcher, $phpbb_container, $phpbb_root_path, $phpEx; - - $phpbb_dispatcher = new phpbb_mock_event_dispatcher(); - $phpbb_container = new phpbb_mock_container_builder(); - $phpbb_container->set('cache.driver', new phpbb_mock_cache()); - $phpbb_container->set('notification_manager', new phpbb_mock_notification_manager()); - - $cache = $phpbb_container->get('cache.driver'); - - $config = new \phpbb\config\config(array()); - - $db = $this->db = $this->new_dbal(); - - $this->language = $this->getMockBuilder('\phpbb\language\language') - ->disableOriginalConstructor() - ->getMock(); - $this->language->expects($this->any()) - ->method('lang') - ->will($this->returnArgument(0)); - $user = $this->user = $this->getMock('\phpbb\user', array(), array( + $application = new Application(); + $application->add(new delete( + $this->user, + $this->db, $this->language, - '\phpbb\datetime' + $this->log, + $this->phpbb_root_path, + $this->php_ext )); - $this->log = $this->getMockBuilder('\phpbb\log\log') - ->disableOriginalConstructor() - ->getMock(); - - $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 - ); - - $this->phpbb_root_path = $phpbb_root_path; - $this->php_ext = $phpEx; + $command = $application->find('user:delete'); + $this->command_name = $command->getName(); + $this->question = $command->getHelper('question'); - parent::setUp(); + return new CommandTester($command); } public function test_delete() @@ -126,44 +89,4 @@ class phpbb_console_command_user_delete_test extends phpbb_database_test_case $this->assertNotNull($this->get_user_id('Test')); } - - public function get_command_tester() - { - $application = new Application(); - $application->add(new delete( - $this->user, - $this->db, - $this->language, - $this->log, - $this->phpbb_root_path, - $this->php_ext - )); - - $command = $application->find('user:delete'); - $this->command_name = $command->getName(); - $this->question = $command->getHelper('question'); - - return new CommandTester($command); - } - - public function get_user_id($username) - { - $sql = 'SELECT user_id - FROM ' . USERS_TABLE . ' - WHERE ' . 'username = ' . "'" . $username . "'"; - $result = $this->db->sql_query($sql); - $row = $this->db->sql_fetchrow($result); - $this->db->sql_freeresult($result); - - return $row['user_id']; - } - - public function getInputStream($input) - { - $stream = fopen('php://memory', 'r+', false); - fputs($stream, $input); - rewind($stream); - - return $stream; - } } diff --git a/tests/console/user/fixtures/config.xml b/tests/console/user/fixtures/config.xml index fed30dc20d..a988ba463f 100644 --- a/tests/console/user/fixtures/config.xml +++ b/tests/console/user/fixtures/config.xml @@ -6,12 +6,14 @@ <column>username</column> <column>username_clean</column> <column>user_sig</column> + <column>user_type</column> <row> <value>1</value> <value></value> <value>Guest</value> <value>guest</value> <value></value> + <value>0</value> </row> <row> <value>2</value> @@ -19,6 +21,7 @@ <value>Admin</value> <value>admin</value> <value></value> + <value>3</value> </row> <row> <value>3</value> @@ -26,6 +29,23 @@ <value>Test</value> <value>test</value> <value></value> + <value>1</value> + </row> + <row> + <value>4</value> + <value></value> + <value>Test 2</value> + <value>test 2</value> + <value></value> + <value>0</value> + </row> + <row> + <value>5</value> + <value></value> + <value>Test Unclean</value> + <value>Test Unclean</value> + <value></value> + <value>0</value> </row> </table> <table name="phpbb_groups"> diff --git a/tests/console/user/reclean_test.php b/tests/console/user/reclean_test.php index ac464bdf82..2b28484084 100644 --- a/tests/console/user/reclean_test.php +++ b/tests/console/user/reclean_test.php @@ -15,34 +15,23 @@ use Symfony\Component\Console\Application; use Symfony\Component\Console\Tester\CommandTester; use phpbb\console\command\user\reclean; -class phpbb_console_command_user_reclean_test extends phpbb_database_test_case -{ - protected $db; - protected $user; - protected $language; - protected $command_name; - - public function getDataSet() - { - return $this->createXMLDataSet(dirname(__FILE__) . '/fixtures/config.xml'); - } +require_once dirname(__FILE__) . '/base.php'; - public function setUp() +class phpbb_console_user_reclean_test extends phpbb_console_user_base +{ + public function get_command_tester() { - $this->db = $this->new_dbal(); - - $this->language = $this->getMockBuilder('\phpbb\language\language') - ->disableOriginalConstructor() - ->getMock(); - $this->language->expects($this->any()) - ->method('lang') - ->will($this->returnArgument(0)); - $this->user = $this->getMock('\phpbb\user', array(), array( - $this->language, - '\phpbb\datetime' + $application = new Application(); + $application->add(new reclean( + $this->user, + $this->db, + $this->language )); - parent::setUp(); + $command = $application->find('user:reclean'); + $this->command_name = $command->getName(); + + return new CommandTester($command); } public function test_reclean() @@ -60,19 +49,4 @@ class phpbb_console_command_user_reclean_test extends phpbb_database_test_case $this->db->sql_freeresult($result); $this->assertNotNull($row['user_id']); } - - public function get_command_tester() - { - $application = new Application(); - $application->add(new reclean( - $this->user, - $this->db, - $this->language - )); - - $command = $application->find('user:reclean'); - $this->command_name = $command->getName(); - - return new CommandTester($command); - } } |