diff options
214 files changed, 1380 insertions, 477 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6996ca22d3..3fceabda10 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -2,5 +2,5 @@ 1. [Create an account on phpBB.com](http://www.phpbb.com/community/ucp.php?mode=register) 2. [Create a ticket (unless there already is one)](http://tracker.phpbb.com/secure/CreateIssue!default.jspa) -3. Read our [Coding guidelines](https://wiki.phpbb.com/Coding_guidelines) and [Git Contribution Guidelines](http://wiki.phpbb.com/Git); if you're new to git, also read [the introduction guide](http://wiki.phpbb.com/display/DEV/Working+with+Git) +3. Read our [Coding guidelines](https://wiki.phpbb.com/Coding_guidelines) and [Git Contribution Guidelines](http://wiki.phpbb.com/Git) 4. Send us a pull request @@ -2,34 +2,34 @@ ## ABOUT -phpBB is a free bulletin board written in PHP. +phpBB is a free open-source bulletin board written in PHP. ## COMMUNITY -Find support and lots more on [phpBB.com](http://www.phpbb.com)! Discuss the development on [area51](http://area51.phpbb.com/phpBB/index.php). +Get your copy of phpBB, find support and lots more on [phpBB.com](http://www.phpbb.com)! Discuss the development on [area51](http://area51.phpbb.com/phpBB/index.php). ## INSTALLING DEPENDENCIES To be able to run an installation from the repo (and not from a pre-built package) you need to run the following commands to install phpBB's dependencies. cd phpBB - php ../composer.phar install --dev + php ../composer.phar install ## CONTRIBUTE 1. [Create an account on phpBB.com](http://www.phpbb.com/community/ucp.php?mode=register) 2. [Create a ticket (unless there already is one)](http://tracker.phpbb.com/secure/CreateIssue!default.jspa) -3. [Read our Git Contribution Guidelines](http://wiki.phpbb.com/Git); if you're new to git, also read [the introduction guide](http://wiki.phpbb.com/display/DEV/Working+with+Git) +3. Read our [Coding guidelines](https://wiki.phpbb.com/Coding_guidelines) and [Git Contribution Guidelines](http://wiki.phpbb.com/Git) 4. Send us a pull request ## AUTOMATED TESTING -We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](http://bamboo.phpbb.com) or check our travis build below: +We have unit and functional tests in order to prevent regressions. You can view the bamboo continuous integration [here](http://bamboo.phpbb.com) or check our travis builds below: * [](http://travis-ci.org/phpbb/phpbb) **master** - Latest development version +* [](http://travis-ci.org/phpbb/phpbb) **3.2.x** - Development of version 3.2.x * [](http://travis-ci.org/phpbb/phpbb) **3.1.x** - Development of version 3.1.x -* [](http://travis-ci.org/phpbb/phpbb) **3.0.x** - Development of version 3.0.x ## LICENSE diff --git a/composer.phar b/composer.phar Binary files differindex 7826664865..fca2a8d72d 100755 --- a/composer.phar +++ b/composer.phar diff --git a/phpBB/composer.json b/phpBB/composer.json index d6a4213c4a..b0c9b57cb6 100644 --- a/phpBB/composer.json +++ b/phpBB/composer.json @@ -62,7 +62,7 @@ }, "extra": { "branch-alias": { - "dev-master": "3.3.x-dev" + "dev-master": "3.2.x-dev" } } } diff --git a/phpBB/composer.lock b/phpBB/composer.lock index f565c424fa..968447fd63 100644 --- a/phpBB/composer.lock +++ b/phpBB/composer.lock @@ -4,8 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "e61304256160e9e0c521a4996912d65d", - "content-hash": "64ae8ac9ac0cc8b1f47e58f43e2d7461", + "hash": "9cbb41222e71eb86e0ef9118baafc691", + "content-hash": "03a990fa2d088c89afe4824d2d53e873", "packages": [ { "name": "bantu/ini-get-wrapper", diff --git a/phpBB/config/default/container/services_console.yml b/phpBB/config/default/container/services_console.yml index 0a28c0ed1f..3f27ee666a 100644 --- a/phpBB/config/default/container/services_console.yml +++ b/phpBB/config/default/container/services_console.yml @@ -220,6 +220,21 @@ services: tags: - { name: console.command } + console.command.user.activate: + class: phpbb\console\command\user\activate + arguments: + - '@user' + - '@dbal.conn' + - '@config' + - '@language' + - '@log' + - '@notification_manager' + - '@user_loader' + - '%core.root_path%' + - '%core.php_ext%' + tags: + - { name: console.command } + console.command.user.add: class: phpbb\console\command\user\add arguments: @@ -232,3 +247,25 @@ services: - '%core.php_ext%' tags: - { name: console.command } + + console.command.user.delete: + class: phpbb\console\command\user\delete + arguments: + - '@user' + - '@dbal.conn' + - '@language' + - '@log' + - '@user_loader' + - '%core.root_path%' + - '%core.php_ext%' + tags: + - { name: console.command } + + console.command.user.reclean: + class: phpbb\console\command\user\reclean + arguments: + - '@user' + - '@dbal.conn' + - '@language' + tags: + - { name: console.command } diff --git a/phpBB/docs/README.html b/phpBB/docs/README.html index 20afc310db..a7906ac802 100644 --- a/phpBB/docs/README.html +++ b/phpBB/docs/README.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="keywords" content="" /> -<meta name="description" content="phpBB 3.3.x Readme" /> +<meta name="description" content="phpBB 3.2.x Readme" /> <title>phpBB • Readme</title> <link href="assets/css/stylesheet.css" rel="stylesheet" type="text/css" media="screen" /> @@ -21,7 +21,7 @@ <div id="doc-description"> <a href="../index.php" id="logo"><img src="assets/images/site_logo.gif" alt="" /></a> - <h1>phpBB 3.3.x Readme</h1> + <h1>phpBB 3.2.x Readme</h1> <p style="display: none;"><a href="#start_here">Skip</a></p> </div> @@ -324,7 +324,7 @@ <div class="content"> - <p>phpBB 3.3.x takes advantage of new features added in PHP 5.4. We recommend that you upgrade to the latest stable release of PHP to run phpBB. The minimum version required is PHP 5.4.0 and the maximum supported version is PHP 7.0.</p> + <p>phpBB 3.2.x takes advantage of new features added in PHP 5.4. We recommend that you upgrade to the latest stable release of PHP to run phpBB. The minimum version required is PHP 5.4.0 and the maximum supported version is PHP 7.0.</p> <p>Please remember that running any application on a development (unstable, e.g. a beta release) version of PHP can lead to strange/unexpected results which may appear to be bugs in the application. Therefore, we recommend you upgrade to the newest stable version of PHP before running phpBB. If you are running a development version of PHP please check any bugs you find on a system running a stable release before submitting.</p> diff --git a/phpBB/includes/acp/acp_attachments.php b/phpBB/includes/acp/acp_attachments.php index ab413bf1d7..07ec6713a0 100644 --- a/phpBB/includes/acp/acp_attachments.php +++ b/phpBB/includes/acp/acp_attachments.php @@ -1431,7 +1431,7 @@ class acp_attachments $row['group_name'] = $user->lang['NOT_ASSIGNED']; $group_name[] = $row; - for ($i = 0; $i < sizeof($group_name); $i++) + for ($i = 0, $groups_size = sizeof($group_name); $i < $groups_size; $i++) { if ($default_group === false) { diff --git a/phpBB/includes/acp/acp_forums.php b/phpBB/includes/acp/acp_forums.php index c5d2d0ea09..3ea9d81887 100644 --- a/phpBB/includes/acp/acp_forums.php +++ b/phpBB/includes/acp/acp_forums.php @@ -1420,7 +1420,7 @@ class acp_forums $diff = sizeof($moved_forums) * 2; $moved_ids = array(); - for ($i = 0; $i < sizeof($moved_forums); ++$i) + for ($i = 0, $size = sizeof($moved_forums); $i < $size; ++$i) { $moved_ids[] = $moved_forums[$i]['forum_id']; } diff --git a/phpBB/includes/bbcode.php b/phpBB/includes/bbcode.php index e8969e552e..4b2aa90ebc 100644 --- a/phpBB/includes/bbcode.php +++ b/phpBB/includes/bbcode.php @@ -226,6 +226,11 @@ class bbcode ), 'preg' => array( '#\[quote(?:="(.*?)")?:$uid\]((?!\[quote(?:=".*?")?:$uid\]).)?#is' => function ($match) { + if (!isset($match[2])) + { + $match[2] = ''; + } + return $this->bbcode_second_pass_quote($match[1], $match[2]); }, ) diff --git a/phpBB/includes/functions_admin.php b/phpBB/includes/functions_admin.php index a0073ec158..a84cbd9311 100644 --- a/phpBB/includes/functions_admin.php +++ b/phpBB/includes/functions_admin.php @@ -2999,8 +2999,8 @@ function add_permission_language() $lang_files = $finder ->prefix('permissions_') ->suffix(".$phpEx") - ->core_path('language/' . $user->lang_name . '/') - ->extension_directory('/language/' . $user->lang_name) + ->core_path('language/') + ->extension_directory('/language') ->find(); foreach ($lang_files as $lang_file => $ext_name) diff --git a/phpBB/includes/functions_convert.php b/phpBB/includes/functions_convert.php index 3575768782..27d3658e36 100644 --- a/phpBB/includes/functions_convert.php +++ b/phpBB/includes/functions_convert.php @@ -479,7 +479,7 @@ function import_avatar_gallery($gallery_name = '', $subdirs_as_galleries = false $dir->close(); } - for ($i = 0; $i < sizeof($dirlist); ++$i) + for ($i = 0, $end = sizeof($dirlist); $i < $end; ++$i) { $dir = $dirlist[$i]; @@ -1425,7 +1425,7 @@ function get_path($src_path, $src_url, $test_file) $path_array = array(); $phpbb_parts = explode('/', $script_path); - for ($i = 0; $i < sizeof($url_parts); ++$i) + for ($i = 0, $end = sizeof($url_parts); $i < $end; ++$i) { if ($i < sizeof($phpbb_parts[$i]) && $url_parts[$i] == $phpbb_parts[$i]) { @@ -1435,7 +1435,7 @@ function get_path($src_path, $src_url, $test_file) else { $path = ''; - for ($j = $i; $j < sizeof($phpbb_parts); ++$j) + for ($j = $i, $end2 = sizeof($phpbb_parts); $j < $end2; ++$j) { $path .= '../'; } @@ -2267,7 +2267,7 @@ function convert_bbcode($message, $convert_size = true, $extended_bbcodes = fals "\n\n" ); - for ($i = 0; $i < sizeof($str_from); ++$i) + for ($i = 0, $end = sizeof($str_from); $i < $end; ++$i) { $origx[] = '#\\' . str_replace(']', '\\]', $str_from[$i]) . '#is'; $replx[] = $str_to[$i]; @@ -2276,7 +2276,7 @@ function convert_bbcode($message, $convert_size = true, $extended_bbcodes = fals if (preg_match_all('#\[email=([^\]]+)\](.*?)\[/email\]#i', $message, $m)) { - for ($i = 0; $i < sizeof($m[1]); ++$i) + for ($i = 0, $end = sizeof($m[1]); $i < $end; ++$i) { if ($m[1][$i] == $m[2][$i]) { @@ -2340,7 +2340,7 @@ function copy_file($src, $trg, $overwrite = false, $die_on_failure = true, $sour $parts = explode('/', $trg); unset($parts[sizeof($parts) - 1]); - for ($i = 0; $i < sizeof($parts); ++$i) + for ($i = 0, $end = sizeof($parts); $i < $end; ++$i) { $path .= $parts[$i] . '/'; @@ -2440,7 +2440,7 @@ function copy_dir($src, $trg, $copy_subdirs = true, $overwrite = false, $die_on_ if ($copy_subdirs) { - for ($i = 0; $i < sizeof($dirlist); ++$i) + for ($i = 0, $end = sizeof($dirlist); $i < $end; ++$i) { $dir = $dirlist[$i]; @@ -2475,7 +2475,7 @@ function copy_dir($src, $trg, $copy_subdirs = true, $overwrite = false, $die_on_ $convert->p_master->error(sprintf($str, implode('<br />', $bad_dirs)), __LINE__, __FILE__); } - for ($i = 0; $i < sizeof($filelist); ++$i) + for ($i = 0, $end = sizeof($filelist); $i < $end; ++$i) { copy_file($src . $filelist[$i], $trg . $filelist[$i], $overwrite, $die_on_failure, $source_relative_path); } diff --git a/phpBB/install/convert/convertor.php b/phpBB/install/convert/convertor.php index 769f8bb637..5a3799a7a1 100644 --- a/phpBB/install/convert/convertor.php +++ b/phpBB/install/convert/convertor.php @@ -373,7 +373,7 @@ class convertor $val = array($val); } - for ($j = 0; $j < sizeof($val); ++$j) + for ($j = 0, $size = sizeof($val); $j < $size; ++$j) { if (preg_match('/LEFT JOIN ([a-z0-9_]+) AS ([a-z0-9_]+)/i', $val[$j], $m)) { diff --git a/phpBB/install/convertors/convert_phpbb20.php b/phpBB/install/convertors/convert_phpbb20.php index d0885dc620..977670c94c 100644 --- a/phpBB/install/convertors/convert_phpbb20.php +++ b/phpBB/install/convertors/convert_phpbb20.php @@ -38,7 +38,7 @@ $dbms = $phpbb_config_php_file->convert_30_dbms_to_31($dbms); $convertor_data = array( 'forum_name' => 'phpBB 2.0.x', 'version' => '1.0.3', - 'phpbb_version' => '3.3.0-a1-dev', + 'phpbb_version' => '3.2.0-b3-dev', 'author' => '<a href="https://www.phpbb.com/">phpBB Limited</a>', 'dbms' => $dbms, 'dbhost' => $dbhost, diff --git a/phpBB/install/phpbbcli.php b/phpBB/install/phpbbcli.php index 4b86f64e2a..87eab84b5a 100755 --- a/phpBB/install/phpbbcli.php +++ b/phpBB/install/phpbbcli.php @@ -23,7 +23,7 @@ if (php_sapi_name() !== 'cli') define('IN_PHPBB', true); define('IN_INSTALL', true); define('PHPBB_ENVIRONMENT', 'production'); -define('PHPBB_VERSION', '3.3.0-a1-dev'); +define('PHPBB_VERSION', '3.2.0-b3-dev'); $phpbb_root_path = __DIR__ . '/../'; $phpEx = substr(strrchr(__FILE__, '.'), 1); diff --git a/phpBB/language/en/cli.php b/phpBB/language/en/cli.php index 6cb516ebfd..db4b5f9ec6 100644 --- a/phpBB/language/en/cli.php +++ b/phpBB/language/en/cli.php @@ -82,11 +82,20 @@ $lang = array_merge($lang, array( 'CLI_DESCRIPTION_THUMBNAIL_GENERATE' => 'Generate all missing thumbnails.', 'CLI_DESCRIPTION_THUMBNAIL_RECREATE' => 'Recreate all thumbnails.', + 'CLI_DESCRIPTION_USER_ACTIVATE' => 'Activate (or deactivate) a user account.', + 'CLI_DESCRIPTION_USER_ACTIVATE_USERNAME' => 'Username of the account to activate.', + 'CLI_DESCRIPTION_USER_ACTIVATE_DEACTIVATE' => 'Deactivate the user’s account', + 'CLI_DESCRIPTION_USER_ACTIVATE_ACTIVE' => 'The user is already active.', + 'CLI_DESCRIPTION_USER_ACTIVATE_INACTIVE' => 'The user is already inactive.', 'CLI_DESCRIPTION_USER_ADD' => 'Add a new user.', 'CLI_DESCRIPTION_USER_ADD_OPTION_USERNAME' => 'Username of the new user', 'CLI_DESCRIPTION_USER_ADD_OPTION_PASSWORD' => 'Password of the new user', 'CLI_DESCRIPTION_USER_ADD_OPTION_EMAIL' => 'E-mail address of the new user', 'CLI_DESCRIPTION_USER_ADD_OPTION_NOTIFY' => 'Send account activation email to the new user (not sent by default)', + 'CLI_DESCRIPTION_USER_DELETE' => 'Delete a user account.', + 'CLI_DESCRIPTION_USER_DELETE_USERNAME' => 'Username of the user to delete', + 'CLI_DESCRIPTION_USER_DELETE_OPTION_POSTS' => 'Delete all posts by the user. Without this option, the user’s posts will be retained.', + 'CLI_DESCRIPTION_USER_RECLEAN' => 'Re-clean usernames.', 'CLI_EXTENSION_DISABLE_FAILURE' => 'Could not disable extension %s', 'CLI_EXTENSION_DISABLE_SUCCESS' => 'Successfully disabled extension %s', @@ -126,12 +135,22 @@ $lang = array_merge($lang, array( 'CLI_THUMBNAIL_NOTHING_TO_DELETE' => 'No thumbnails to delete.', 'CLI_USER_ADD_SUCCESS' => 'Successfully added user %s.', + 'CLI_USER_DELETE_CONFIRM' => 'Are you sure you want to delete ‘%s’? [y/N]', + 'CLI_USER_RECLEAN_START' => 'Re-cleaning usernames', + 'CLI_USER_RECLEAN_DONE' => [ + 0 => 'Re-cleaning complete. No usernames needed to be cleaned.', + 1 => 'Re-cleaning complete. %d username was cleaned.', + 2 => 'Re-cleaning complete. %d usernames were cleaned.', + ], )); // Additional help for commands. $lang = array_merge($lang, array( 'CLI_HELP_CRON_RUN' => $lang['CLI_DESCRIPTION_CRON_RUN'] . ' Optionally you can specify a cron task name to run only the specified cron task.', + 'CLI_HELP_USER_ACTIVATE' => 'Activate a user account, or deactivate an account using the <info>--deactivate</info> option. +To optionally send an activation email to the user, use the <info>--send-email</info> option.', 'CLI_HELP_USER_ADD' => 'The <info>%command.name%</info> command adds a new user: If this command is run without options, you will be prompted to enter them. To optionally send an email to the new user, use the <info>--send-email</info> option.', + 'CLI_HELP_USER_RECLEAN' => 'Re-clean usernames will check all stored usernames and ensure clean versions are also stored. Cleaned usernames are a case insensitive form, NFC normalized and transformed to ASCII.', )); diff --git a/phpBB/language/en/install.php b/phpBB/language/en/install.php index 39d53ece7b..9a727be649 100644 --- a/phpBB/language/en/install.php +++ b/phpBB/language/en/install.php @@ -523,7 +523,7 @@ $lang = array_merge($lang, array( // Finish conversion 'CONVERT_COMPLETE' => 'Conversion completed', - 'CONVERT_COMPLETE_EXPLAIN' => 'You have now successfully converted your board to phpBB 3.3. You can now login and <a href="../">access your board</a>. Please ensure that the settings were transferred correctly before enabling your board by deleting the install directory. Remember that help on using phpBB is available online via the <a href="https://www.phpbb.com/support/docs/en/3.3/ug/">Documentation</a> and the <a href="https://www.phpbb.com/community/viewforum.php?f=466">support forums</a>.', + 'CONVERT_COMPLETE_EXPLAIN' => 'You have now successfully converted your board to phpBB 3.2. You can now login and <a href="../">access your board</a>. Please ensure that the settings were transferred correctly before enabling your board by deleting the install directory. Remember that help on using phpBB is available online via the <a href="https://www.phpbb.com/support/docs/en/3.3/ug/">Documentation</a> and the <a href="https://www.phpbb.com/community/viewforum.php?f=466">support forums</a>.', 'CONV_ERROR_ATTACH_FTP_DIR' => 'FTP upload for attachments is enabled at the old board. Please disable the FTP upload option and make sure a valid upload directory is specified, then copy all attachment files to this new web accessible directory. Once you have done this, restart the convertor.', 'CONV_ERROR_CONFIG_EMPTY' => 'There is no configuration information available for the conversion.', diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 146ded0929..bfa28d8d11 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -93,6 +93,12 @@ $default_key = 'c'; $sort_key = $request->variable('sk', $default_key); $sort_dir = $request->variable('sd', 'a'); +$user_types = array(USER_NORMAL, USER_FOUNDER); +if ($auth->acl_get('a_user')) +{ + $user_types[] = USER_INACTIVE; +} + // What do you want to do today? ... oops, I think that line is taken ... switch ($mode) { @@ -834,7 +840,7 @@ switch ($mode) $sql = 'SELECT username, user_id, user_colour FROM ' . USERS_TABLE . ' - WHERE ' . $db->sql_in_set('user_type', array(USER_NORMAL, USER_FOUNDER)) . ' + WHERE ' . $db->sql_in_set('user_type', $user_types) . ' AND username_clean ' . $db->sql_like_expression(utf8_clean_string($username_chars) . $db->get_any_char()); $result = $db->sql_query_limit($sql, 10); $user_list = array(); @@ -1231,11 +1237,6 @@ switch ($mode) ); extract($phpbb_dispatcher->trigger_event('core.memberlist_modify_sql_query_data', compact($vars))); - $user_types = array(USER_NORMAL, USER_FOUNDER); - if ($auth->acl_get('a_user')) - { - $user_types[] = USER_INACTIVE; - } // Count the users ... $sql = 'SELECT COUNT(u.user_id) AS total_users FROM ' . USERS_TABLE . " u$sql_from diff --git a/phpBB/phpbb/console/command/user/activate.php b/phpBB/phpbb/console/command/user/activate.php new file mode 100644 index 0000000000..9c85718b4c --- /dev/null +++ b/phpBB/phpbb/console/command/user/activate.php @@ -0,0 +1,218 @@ +<?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. + * + */ + +namespace phpbb\console\command\user; + +use phpbb\config\config; +use phpbb\console\command\command; +use phpbb\db\driver\driver_interface; +use phpbb\language\language; +use phpbb\log\log_interface; +use phpbb\notification\manager; +use phpbb\user; +use phpbb\user_loader; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Style\SymfonyStyle; + +class activate extends command +{ + /** @var driver_interface */ + protected $db; + + /** @var config */ + protected $config; + + /** @var language */ + protected $language; + + /** @var log_interface */ + protected $log; + + /** @var manager */ + protected $notifications; + + /** @var user_loader */ + protected $user_loader; + + /** + * phpBB root path + * + * @var string + */ + protected $phpbb_root_path; + + /** + * PHP extension. + * + * @var string + */ + protected $php_ext; + + /** + * Construct method + * + * @param user $user + * @param driver_interface $db + * @param config $config + * @param language $language + * @param log_interface $log + * @param manager $notifications + * @param user_loader $user_loader + * @param string $phpbb_root_path + * @param string $php_ext + */ + public function __construct(user $user, driver_interface $db, config $config, language $language, log_interface $log, manager $notifications, user_loader $user_loader, $phpbb_root_path, $php_ext) + { + $this->db = $db; + $this->config = $config; + $this->language = $language; + $this->log = $log; + $this->notifications = $notifications; + $this->user_loader = $user_loader; + $this->phpbb_root_path = $phpbb_root_path; + $this->php_ext = $php_ext; + + $this->language->add_lang('acp/users'); + parent::__construct($user); + } + + /** + * Sets the command name and description + * + * @return null + */ + protected function configure() + { + $this + ->setName('user:activate') + ->setDescription($this->language->lang('CLI_DESCRIPTION_USER_ACTIVATE')) + ->setHelp($this->language->lang('CLI_HELP_USER_ACTIVATE')) + ->addArgument( + 'username', + InputArgument::REQUIRED, + $this->language->lang('CLI_DESCRIPTION_USER_ACTIVATE_USERNAME') + ) + ->addOption( + 'deactivate', + 'd', + InputOption::VALUE_NONE, + $this->language->lang('CLI_DESCRIPTION_USER_ACTIVATE_DEACTIVATE') + ) + ->addOption( + 'send-email', + null, + InputOption::VALUE_NONE, + $this->language->lang('CLI_DESCRIPTION_USER_ADD_OPTION_NOTIFY') + ) + ; + } + + /** + * Executes the command user:activate + * + * Activate (or deactivate) a user account + * + * @param InputInterface $input The input stream used to get the options + * @param OutputInterface $output The output stream, used to print messages + * + * @return int 0 if all is well, 1 if any errors occurred + */ + protected function execute(InputInterface $input, OutputInterface $output) + { + $io = new SymfonyStyle($input, $output); + + $name = $input->getArgument('username'); + $mode = ($input->getOption('deactivate')) ? 'deactivate' : 'activate'; + + $user_id = $this->user_loader->load_user_by_username($name); + $user_row = $this->user_loader->get_user($user_id); + + if ($user_row['user_id'] == ANONYMOUS) + { + $io->error($this->language->lang('NO_USER')); + return 1; + } + + // Check if the user is already active (or inactive) + if ($mode == 'activate' && $user_row['user_type'] != USER_INACTIVE) + { + $io->error($this->language->lang('CLI_DESCRIPTION_USER_ACTIVATE_ACTIVE')); + return 1; + } + else if ($mode == 'deactivate' && $user_row['user_type'] == USER_INACTIVE) + { + $io->error($this->language->lang('CLI_DESCRIPTION_USER_ACTIVATE_INACTIVE')); + return 1; + } + + // Activate the user account + if (!function_exists('user_active_flip')) + { + require($this->phpbb_root_path . 'includes/functions_user.' . $this->php_ext); + } + + user_active_flip($mode, $user_row['user_id']); + + // Notify the user upon activation + if ($mode == 'activate' && $this->config['require_activation'] == USER_ACTIVATION_ADMIN) + { + $this->send_notification($user_row, $input); + } + + // Log and display the result + $msg = ($mode == 'activate') ? 'USER_ADMIN_ACTIVATED' : 'USER_ADMIN_DEACTIVED'; + $log = ($mode == 'activate') ? 'LOG_USER_ACTIVE' : 'LOG_USER_INACTIVE'; + + $this->log->add('admin', ANONYMOUS, '', $log, false, array($user_row['username'])); + $this->log->add('user', ANONYMOUS, '', $log . '_USER', false, array( + 'reportee_id' => $user_row['user_id'] + )); + + $io->success($this->language->lang($msg)); + + return 0; + } + + /** + * Send account activation notification to user + * + * @param array $user_row The user data array + * @param InputInterface $input The input stream used to get the options + * @return null + */ + protected function send_notification($user_row, InputInterface $input) + { + $this->notifications->delete_notifications('notification.type.admin_activate_user', $user_row['user_id']); + + if ($input->getOption('send-email')) + { + if (!class_exists('messenger')) + { + require($this->phpbb_root_path . 'includes/functions_messenger.' . $this->php_ext); + } + + $messenger = new \messenger(false); + $messenger->template('admin_welcome_activated', $user_row['user_lang']); + $messenger->set_addresses($user_row); + $messenger->anti_abuse_headers($this->config, $this->user); + $messenger->assign_vars(array( + 'USERNAME' => htmlspecialchars_decode($user_row['username'])) + ); + + $messenger->send(NOTIFY_EMAIL); + } + } +} diff --git a/phpBB/phpbb/console/command/user/add.php b/phpBB/phpbb/console/command/user/add.php index df1f4aa54a..c60a059251 100644 --- a/phpBB/phpbb/console/command/user/add.php +++ b/phpBB/phpbb/console/command/user/add.php @@ -13,28 +13,34 @@ namespace phpbb\console\command\user; +use phpbb\config\config; +use phpbb\console\command\command; +use phpbb\db\driver\driver_interface; use phpbb\exception\runtime_exception; +use phpbb\language\language; +use phpbb\passwords\manager; +use phpbb\user; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Input\InputOption; use Symfony\Component\Console\Output\OutputInterface; use Symfony\Component\Console\Question\Question; use Symfony\Component\Console\Style\SymfonyStyle; -class add extends \phpbb\console\command\command +class add extends command { /** @var array Array of interactively acquired options */ protected $data; - /** @var \phpbb\db\driver\driver_interface */ + /** @var driver_interface */ protected $db; - /** @var \phpbb\config\config */ + /** @var config */ protected $config; - /** @var \phpbb\language\language */ + /** @var language */ protected $language; - /** @var \phpbb\passwords\manager */ + /** @var manager */ protected $password_manager; /** @@ -54,15 +60,15 @@ class add extends \phpbb\console\command\command /** * Construct method * - * @param \phpbb\user $user - * @param \phpbb\db\driver\driver_interface $db - * @param \phpbb\config\config $config - * @param \phpbb\language\language $language - * @param \phpbb\passwords\manager $password_manager - * @param string $phpbb_root_path - * @param string $php_ext + * @param user $user + * @param driver_interface $db + * @param config $config + * @param language $language + * @param manager $password_manager + * @param string $phpbb_root_path + * @param string $php_ext */ - public function __construct(\phpbb\user $user, \phpbb\db\driver\driver_interface $db, \phpbb\config\config $config, \phpbb\language\language $language, \phpbb\passwords\manager $password_manager, $phpbb_root_path, $php_ext) + public function __construct(user $user, driver_interface $db, config $config, language $language, manager $password_manager, $phpbb_root_path, $php_ext) { $this->db = $db; $this->config = $config; diff --git a/phpBB/phpbb/console/command/user/delete.php b/phpBB/phpbb/console/command/user/delete.php new file mode 100644 index 0000000000..8593541c1a --- /dev/null +++ b/phpBB/phpbb/console/command/user/delete.php @@ -0,0 +1,170 @@ +<?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. + * + */ + +namespace phpbb\console\command\user; + +use phpbb\console\command\command; +use phpbb\db\driver\driver_interface; +use phpbb\language\language; +use phpbb\log\log_interface; +use phpbb\user; +use phpbb\user_loader; +use Symfony\Component\Console\Input\InputArgument; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Input\InputOption; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Question\ConfirmationQuestion; +use Symfony\Component\Console\Style\SymfonyStyle; + +class delete extends command +{ + /** @var driver_interface */ + protected $db; + + /** @var language */ + protected $language; + + /** @var log_interface */ + protected $log; + + /** @var user_loader */ + protected $user_loader; + + /** + * phpBB root path + * + * @var string + */ + protected $phpbb_root_path; + + /** + * PHP extension. + * + * @var string + */ + protected $php_ext; + + /** + * Construct method + * + * @param user $user + * @param driver_interface $db + * @param language $language + * @param log_interface $log + * @param user_loader $user_loader + * @param string $phpbb_root_path + * @param string $php_ext + */ + public function __construct(user $user, driver_interface $db, language $language, log_interface $log, user_loader $user_loader, $phpbb_root_path, $php_ext) + { + $this->db = $db; + $this->language = $language; + $this->log = $log; + $this->user_loader = $user_loader; + $this->phpbb_root_path = $phpbb_root_path; + $this->php_ext = $php_ext; + + $this->language->add_lang('acp/users'); + parent::__construct($user); + } + + /** + * Sets the command name and description + * + * @return null + */ + protected function configure() + { + $this + ->setName('user:delete') + ->setDescription($this->language->lang('CLI_DESCRIPTION_USER_DELETE')) + ->addArgument( + 'username', + InputArgument::REQUIRED, + $this->language->lang('CLI_DESCRIPTION_USER_DELETE_USERNAME') + ) + ->addOption( + 'delete-posts', + null, + InputOption::VALUE_NONE, + $this->language->lang('CLI_DESCRIPTION_USER_DELETE_OPTION_POSTS') + ) + ; + } + + /** + * Executes the command user:delete + * + * Deletes a user from the database. An option to delete the user's posts + * is available, by default posts will be retained. + * + * @param InputInterface $input The input stream used to get the options + * @param OutputInterface $output The output stream, used to print messages + * + * @return int 0 if all is well, 1 if any errors occurred + */ + protected function execute(InputInterface $input, OutputInterface $output) + { + $name = $input->getArgument('username'); + $mode = ($input->getOption('delete-posts')) ? 'remove' : 'retain'; + + if ($name) + { + $io = new SymfonyStyle($input, $output); + + $user_id = $this->user_loader->load_user_by_username($name); + $user_row = $this->user_loader->get_user($user_id); + + if ($user_row['user_id'] == ANONYMOUS) + { + $io->error($this->language->lang('NO_USER')); + return 1; + } + + if (!function_exists('user_delete')) + { + require($this->phpbb_root_path . 'includes/functions_user.' . $this->php_ext); + } + + user_delete($mode, $user_row['user_id'], $user_row['username']); + + $this->log->add('admin', ANONYMOUS, '', 'LOG_USER_DELETED', false, array($user_row['username'])); + + $io->success($this->language->lang('USER_DELETED')); + } + + return 0; + } + + /** + * Interacts with the user. + * Confirm they really want to delete the account...last chance! + * + * @param InputInterface $input An InputInterface instance + * @param OutputInterface $output An OutputInterface instance + */ + protected function interact(InputInterface $input, OutputInterface $output) + { + $helper = $this->getHelper('question'); + + $question = new ConfirmationQuestion( + $this->language->lang('CLI_USER_DELETE_CONFIRM', $input->getArgument('username')), + false + ); + + if (!$helper->ask($input, $output, $question)) + { + $input->setArgument('username', false); + } + } +} diff --git a/phpBB/phpbb/console/command/user/reclean.php b/phpBB/phpbb/console/command/user/reclean.php new file mode 100644 index 0000000000..e298c285be --- /dev/null +++ b/phpBB/phpbb/console/command/user/reclean.php @@ -0,0 +1,198 @@ +<?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. + * + */ + +namespace phpbb\console\command\user; + +use phpbb\console\command\command; +use phpbb\db\driver\driver_interface; +use phpbb\language\language; +use phpbb\user; +use Symfony\Component\Console\Helper\ProgressBar; +use Symfony\Component\Console\Input\InputInterface; +use Symfony\Component\Console\Output\OutputInterface; +use Symfony\Component\Console\Style\SymfonyStyle; + +class reclean extends command +{ + /** @var driver_interface */ + protected $db; + + /** @var language */ + protected $language; + + /** @var int A count of the number of re-cleaned user names */ + protected $processed; + + /** @var ProgressBar */ + protected $progress; + + /** + * Construct method + * + * @param user $user + * @param driver_interface $db + * @param language $language + */ + public function __construct(user $user, driver_interface $db, language $language) + { + $this->db = $db; + $this->language = $language; + + parent::__construct($user); + } + + /** + * Sets the command name and description + * + * @return null + */ + protected function configure() + { + $this + ->setName('user:reclean') + ->setDescription($this->language->lang('CLI_DESCRIPTION_USER_RECLEAN')) + ->setHelp($this->language->lang('CLI_HELP_USER_RECLEAN')) + ; + } + + /** + * Executes the command user:reclean + * + * Cleans user names that are unclean. + * + * @param InputInterface $input The input stream used to get the options + * @param OutputInterface $output The output stream, used to print messages + * + * @return int 0 if all is well, 1 if any errors occurred + */ + protected function execute(InputInterface $input, OutputInterface $output) + { + $io = new SymfonyStyle($input, $output); + + $io->section($this->language->lang('CLI_USER_RECLEAN_START')); + + $this->processed = 0; + + $this->progress = $this->create_progress_bar($this->get_count(), $io, $output); + $this->progress->setMessage($this->language->lang('CLI_USER_RECLEAN_START')); + $this->progress->start(); + + $stage = 0; + while ($stage !== true) + { + $stage = $this->reclean_usernames($stage); + } + + $this->progress->finish(); + + $io->newLine(2); + $io->success($this->language->lang('CLI_USER_RECLEAN_DONE', $this->processed)); + + return 0; + } + + /** + * Re-clean user names + * Only user names that are unclean will be re-cleaned + * + * @param int $start An offset index + * @return bool|int Return the next offset index or true if all records have been processed. + */ + protected function reclean_usernames($start = 0) + { + $limit = 500; + $i = 0; + + $this->db->sql_transaction('begin'); + + $sql = 'SELECT user_id, username, username_clean FROM ' . USERS_TABLE; + $result = $this->db->sql_query_limit($sql, $limit, $start); + while ($row = $this->db->sql_fetchrow($result)) + { + $i++; + $username_clean = $this->db->sql_escape(utf8_clean_string($row['username'])); + + if ($username_clean != $row['username_clean']) + { + $sql = 'UPDATE ' . USERS_TABLE . " + SET username_clean = '$username_clean' + WHERE user_id = {$row['user_id']}"; + $this->db->sql_query($sql); + + $this->processed++; + } + + $this->progress->advance(); + } + $this->db->sql_freeresult($result); + + $this->db->sql_transaction('commit'); + + return ($i < $limit) ? true : $start + $i; + } + + /** + * Create a styled progress bar + * + * @param integer $max Max value for the progress bar + * @param SymfonyStyle $io + * @param OutputInterface $output The output stream, used to print messages + * @return ProgressBar + */ + protected function create_progress_bar($max, SymfonyStyle $io, OutputInterface $output) + { + $progress = $io->createProgressBar($max); + if ($output->getVerbosity() === OutputInterface::VERBOSITY_VERBOSE) + { + $progress->setFormat('<info>[%percent:3s%%]</info> %message%'); + $progress->setOverwrite(false); + } + else if ($output->getVerbosity() >= OutputInterface::VERBOSITY_VERY_VERBOSE) + { + $progress->setFormat('<info>[%current:s%/%max:s%]</info><comment>[%elapsed%/%estimated%][%memory%]</comment> %message%'); + $progress->setOverwrite(false); + } + else + { + $io->newLine(2); + $progress->setFormat( + " %current:s%/%max:s% %bar% %percent:3s%%\n" . + " %elapsed:6s%/%estimated:-6s% %memory:6s%\n"); + $progress->setBarWidth(60); + } + + if (!defined('PHP_WINDOWS_VERSION_BUILD')) + { + $progress->setEmptyBarCharacter('â–‘'); // light shade character \u2591 + $progress->setProgressCharacter(''); + $progress->setBarCharacter('â–“'); // dark shade character \u2593 + } + + return $progress; + } + + /** + * Get the count of users in the database + * + * @return int + */ + protected function get_count() + { + $sql = 'SELECT COUNT(user_id) AS count FROM ' . USERS_TABLE; + $result = $this->db->sql_query($sql); + $count = (int) $this->db->sql_fetchfield('count'); + $this->db->sql_freeresult($result); + + return $count; + } +} diff --git a/phpBB/phpbb/controller/resolver.php b/phpBB/phpbb/controller/resolver.php index 4f432c3323..f8dffc12de 100644 --- a/phpBB/phpbb/controller/resolver.php +++ b/phpBB/phpbb/controller/resolver.php @@ -126,9 +126,21 @@ class resolver implements ControllerResolverInterface */ public function getArguments(Request $request, $controller) { - // At this point, $controller contains the object and method name - list($object, $method) = $controller; - $mirror = new \ReflectionMethod($object, $method); + // At this point, $controller should be a callable + if (is_array($controller)) + { + list($object, $method) = $controller; + $mirror = new \ReflectionMethod($object, $method); + } + else if (is_object($controller) && !$controller instanceof \Closure) + { + $mirror = new \ReflectionObject($controller); + $mirror = $mirror->getMethod('__invoke'); + } + else + { + $mirror = new \ReflectionFunction($controller); + } $arguments = array(); $parameters = $mirror->getParameters(); diff --git a/phpBB/phpbb/db/migration/data/v310/alpha1.php b/phpBB/phpbb/db/migration/data/v310/alpha1.php index 1df85bc64c..4a48d2830a 100644 --- a/phpBB/phpbb/db/migration/data/v310/alpha1.php +++ b/phpBB/phpbb/db/migration/data/v310/alpha1.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class alpha1 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-a1', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/alpha2.php b/phpBB/phpbb/db/migration/data/v310/alpha2.php index 78bc755ec9..bfbcc4f6f5 100644 --- a/phpBB/phpbb/db/migration/data/v310/alpha2.php +++ b/phpBB/phpbb/db/migration/data/v310/alpha2.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class alpha2 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-a2', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/alpha3.php b/phpBB/phpbb/db/migration/data/v310/alpha3.php index 574d19d2f4..bb0f904fd4 100644 --- a/phpBB/phpbb/db/migration/data/v310/alpha3.php +++ b/phpBB/phpbb/db/migration/data/v310/alpha3.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class alpha3 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-a3', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/beta1.php b/phpBB/phpbb/db/migration/data/v310/beta1.php index 84887bd58e..9feba5235d 100644 --- a/phpBB/phpbb/db/migration/data/v310/beta1.php +++ b/phpBB/phpbb/db/migration/data/v310/beta1.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class beta1 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-b1', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/beta2.php b/phpBB/phpbb/db/migration/data/v310/beta2.php index 458e305c7b..d5e31ce4cb 100644 --- a/phpBB/phpbb/db/migration/data/v310/beta2.php +++ b/phpBB/phpbb/db/migration/data/v310/beta2.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class beta2 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-b2', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/beta3.php b/phpBB/phpbb/db/migration/data/v310/beta3.php index a6c62bf936..78c61e8e90 100644 --- a/phpBB/phpbb/db/migration/data/v310/beta3.php +++ b/phpBB/phpbb/db/migration/data/v310/beta3.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class beta3 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-b3', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/beta4.php b/phpBB/phpbb/db/migration/data/v310/beta4.php index 3e91d95178..e634785c38 100644 --- a/phpBB/phpbb/db/migration/data/v310/beta4.php +++ b/phpBB/phpbb/db/migration/data/v310/beta4.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class beta4 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-b4', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/gold.php b/phpBB/phpbb/db/migration/data/v310/gold.php index e84c7ee951..188851f87d 100644 --- a/phpBB/phpbb/db/migration/data/v310/gold.php +++ b/phpBB/phpbb/db/migration/data/v310/gold.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class gold extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/rc1.php b/phpBB/phpbb/db/migration/data/v310/rc1.php index 10ba7fefff..751208c6ca 100644 --- a/phpBB/phpbb/db/migration/data/v310/rc1.php +++ b/phpBB/phpbb/db/migration/data/v310/rc1.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class rc1 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-RC1', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/rc2.php b/phpBB/phpbb/db/migration/data/v310/rc2.php index e1323659da..5cd0393a13 100644 --- a/phpBB/phpbb/db/migration/data/v310/rc2.php +++ b/phpBB/phpbb/db/migration/data/v310/rc2.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class rc2 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-RC2', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/rc3.php b/phpBB/phpbb/db/migration/data/v310/rc3.php index 0e6a452251..9fb483ef6a 100644 --- a/phpBB/phpbb/db/migration/data/v310/rc3.php +++ b/phpBB/phpbb/db/migration/data/v310/rc3.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class rc3 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-RC3', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/rc4.php b/phpBB/phpbb/db/migration/data/v310/rc4.php index 47de8291c1..0d756c762c 100644 --- a/phpBB/phpbb/db/migration/data/v310/rc4.php +++ b/phpBB/phpbb/db/migration/data/v310/rc4.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class rc4 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-RC4', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/rc5.php b/phpBB/phpbb/db/migration/data/v310/rc5.php index 5b6f70e32e..d92537d877 100644 --- a/phpBB/phpbb/db/migration/data/v310/rc5.php +++ b/phpBB/phpbb/db/migration/data/v310/rc5.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class rc5 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-RC5', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v310/rc6.php b/phpBB/phpbb/db/migration/data/v310/rc6.php index b84f2edcc9..1df502a1e4 100644 --- a/phpBB/phpbb/db/migration/data/v310/rc6.php +++ b/phpBB/phpbb/db/migration/data/v310/rc6.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v310; class rc6 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.0-RC6', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v311.php b/phpBB/phpbb/db/migration/data/v31x/v311.php index 00844dd4c0..b9d6ed3053 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v311.php +++ b/phpBB/phpbb/db/migration/data/v31x/v311.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v311 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.1', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v312.php b/phpBB/phpbb/db/migration/data/v31x/v312.php index bf49935f4d..114c2b959b 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v312.php +++ b/phpBB/phpbb/db/migration/data/v31x/v312.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v312 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.2', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v312rc1.php b/phpBB/phpbb/db/migration/data/v31x/v312rc1.php index d4b133fc01..e2408d432b 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v312rc1.php +++ b/phpBB/phpbb/db/migration/data/v31x/v312rc1.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v312rc1 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.2-RC1', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v313.php b/phpBB/phpbb/db/migration/data/v31x/v313.php index 5a4e21a9b7..b86788da16 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v313.php +++ b/phpBB/phpbb/db/migration/data/v31x/v313.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v313 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.3', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v313rc1.php b/phpBB/phpbb/db/migration/data/v31x/v313rc1.php index e50754f805..b1dcc03364 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v313rc1.php +++ b/phpBB/phpbb/db/migration/data/v31x/v313rc1.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v313rc1 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.3-RC1', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v313rc2.php b/phpBB/phpbb/db/migration/data/v31x/v313rc2.php index d832d6f502..b701dca5ed 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v313rc2.php +++ b/phpBB/phpbb/db/migration/data/v31x/v313rc2.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v313rc2 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.3-RC2', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v314.php b/phpBB/phpbb/db/migration/data/v31x/v314.php index b7793ca569..82dbbf29c9 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v314.php +++ b/phpBB/phpbb/db/migration/data/v31x/v314.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v314 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.4', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v314rc1.php b/phpBB/phpbb/db/migration/data/v31x/v314rc1.php index 10cdbe3f9c..e7baf0c2ce 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v314rc1.php +++ b/phpBB/phpbb/db/migration/data/v31x/v314rc1.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v314rc1 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.4-RC1', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v314rc2.php b/phpBB/phpbb/db/migration/data/v31x/v314rc2.php index b75b7a9be8..3fc5bf2ad5 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v314rc2.php +++ b/phpBB/phpbb/db/migration/data/v31x/v314rc2.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v314rc2 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.4-RC2', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v315.php b/phpBB/phpbb/db/migration/data/v31x/v315.php index 778cdf717e..d5eacf8dd3 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v315.php +++ b/phpBB/phpbb/db/migration/data/v31x/v315.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v315 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.5', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v315rc1.php b/phpBB/phpbb/db/migration/data/v31x/v315rc1.php index 4cf4472aa7..a58b6a0f2a 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v315rc1.php +++ b/phpBB/phpbb/db/migration/data/v31x/v315rc1.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v315rc1 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.5-RC1', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v316.php b/phpBB/phpbb/db/migration/data/v31x/v316.php index cec113eff2..b3e0060ced 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v316.php +++ b/phpBB/phpbb/db/migration/data/v31x/v316.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v316 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.6', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v316rc1.php b/phpBB/phpbb/db/migration/data/v31x/v316rc1.php index 487cd05e5d..6badfb68d4 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v316rc1.php +++ b/phpBB/phpbb/db/migration/data/v31x/v316rc1.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v316rc1 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.6-RC1', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v317.php b/phpBB/phpbb/db/migration/data/v31x/v317.php index 15ba2a1feb..d95be06ba6 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v317.php +++ b/phpBB/phpbb/db/migration/data/v31x/v317.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v317 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.7', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v317pl1.php b/phpBB/phpbb/db/migration/data/v31x/v317pl1.php index 2e1b0e9b9d..1cb39b03f0 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v317pl1.php +++ b/phpBB/phpbb/db/migration/data/v31x/v317pl1.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v317pl1 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.7-pl1', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v317rc1.php b/phpBB/phpbb/db/migration/data/v31x/v317rc1.php index fa24819094..77759daa66 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v317rc1.php +++ b/phpBB/phpbb/db/migration/data/v31x/v317rc1.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v317rc1 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.7-RC1', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v318.php b/phpBB/phpbb/db/migration/data/v31x/v318.php index b254279a5d..7663529d3a 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v318.php +++ b/phpBB/phpbb/db/migration/data/v31x/v318.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v318 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.8', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/migration/data/v31x/v318rc1.php b/phpBB/phpbb/db/migration/data/v31x/v318rc1.php index 8bae95c7d6..2cab5c96d4 100644 --- a/phpBB/phpbb/db/migration/data/v31x/v318rc1.php +++ b/phpBB/phpbb/db/migration/data/v31x/v318rc1.php @@ -15,6 +15,11 @@ namespace phpbb\db\migration\data\v31x; class v318rc1 extends \phpbb\db\migration\migration { + public function effectively_installed() + { + return phpbb_version_compare($this->config['version'], '3.1.8-RC1', '>='); + } + static public function depends_on() { return array( diff --git a/phpBB/phpbb/db/tools/mssql.php b/phpBB/phpbb/db/tools/mssql.php index a90a85bbb2..87719acd21 100644 --- a/phpBB/phpbb/db/tools/mssql.php +++ b/phpBB/phpbb/db/tools/mssql.php @@ -605,7 +605,7 @@ class mssql extends tools if (!empty($column_data['default'])) { // Add new default value constraint - $statements[] = 'ALTER TABLE [' . $table_name . '] ADD CONSTRAINT [DF_' . $table_name . '_' . $column_name . '_1] ' . $this->db->sql_escape($column_data['default']) . ' FOR [' . $column_name . ']'; + $statements[] = 'ALTER TABLE [' . $table_name . '] ADD CONSTRAINT [DF_' . $table_name . '_' . $column_name . '_1] ' . $column_data['default'] . ' FOR [' . $column_name . ']'; } if (!empty($indexes)) diff --git a/phpBB/phpbb/di/container_builder.php b/phpBB/phpbb/di/container_builder.php index 7bfe1bbb87..b9284d04be 100644 --- a/phpBB/phpbb/di/container_builder.php +++ b/phpBB/phpbb/di/container_builder.php @@ -556,7 +556,13 @@ class container_builder */ protected function get_container_filename() { - return $this->get_cache_dir() . 'container_' . md5($this->phpbb_root_path) . '.' . $this->php_ext; + $container_params = [ + 'phpbb_root_path' => $this->phpbb_root_path, + 'use_extensions' => $this->use_extensions, + 'config_path' => $this->config_path, + ]; + + return $this->get_cache_dir() . 'container_' . md5(implode(',', $container_params)) . '.' . $this->php_ext; } /** @@ -566,7 +572,13 @@ class container_builder */ protected function get_autoload_filename() { - return $this->get_cache_dir() . 'autoload_' . md5($this->phpbb_root_path) . '.' . $this->php_ext; + $container_params = [ + 'phpbb_root_path' => $this->phpbb_root_path, + 'use_extensions' => $this->use_extensions, + 'config_path' => $this->config_path, + ]; + + return $this->get_cache_dir() . 'autoload_' . md5(implode(',', $container_params)) . '.' . $this->php_ext; } /** diff --git a/phpBB/phpbb/install/module/install_database/task/add_config_settings.php b/phpBB/phpbb/install/module/install_database/task/add_config_settings.php index 20b7679ec1..7a2df01de6 100644 --- a/phpBB/phpbb/install/module/install_database/task/add_config_settings.php +++ b/phpBB/phpbb/install/module/install_database/task/add_config_settings.php @@ -129,12 +129,19 @@ class add_config_settings extends \phpbb\install\task_base $this->db->sql_return_on_error(true); $server_name = $this->install_config->get('server_name'); - $cookie_domain = $this->install_config->get('cookie_domain'); $current_time = time(); $user_ip = phpbb_ip_normalise($this->iohandler->get_server_variable('REMOTE_ADDR')); $user_ip = ($user_ip === false) ? '' : $user_ip; $referer = $this->iohandler->get_server_variable('REFERER'); + // Calculate cookie domain + $cookie_domain = $server_name; + + if (strpos($cookie_domain, 'www.') === 0) + { + $cookie_domain = substr($cookie_domain, 3); + } + // Set default config and post data, this applies to all DB's $sql_ary = array( 'INSERT INTO ' . $this->config_table . " (config_name, config_value) diff --git a/phpBB/phpbb/install/module/update_database/task/update.php b/phpBB/phpbb/install/module/update_database/task/update.php index 4b2baf2c23..9fed2317e9 100644 --- a/phpBB/phpbb/install/module/update_database/task/update.php +++ b/phpBB/phpbb/install/module/update_database/task/update.php @@ -142,6 +142,7 @@ class update extends task_base $this->migrator->set_migrations($migrations); $migration_count = count($this->migrator->get_migrations()); $this->iohandler->set_task_count($migration_count, true); + $this->installer_config->set_task_progress_count($migration_count); $progress_count = $this->installer_config->get('database_update_count', 0); while (!$this->migrator->finished()) @@ -183,8 +184,6 @@ class update extends task_base ); } - $this->iohandler->finish_progress('INLINE_UPDATE_SUCCESSFUL'); - $this->iohandler->add_success_message('INLINE_UPDATE_SUCCESSFUL'); $this->config->delete('version_update_from'); diff --git a/phpBB/phpbb/install/module/update_filesystem/task/file_check.php b/phpBB/phpbb/install/module/update_filesystem/task/file_check.php index 5dbee6c259..f4b3870148 100644 --- a/phpBB/phpbb/install/module/update_filesystem/task/file_check.php +++ b/phpBB/phpbb/install/module/update_filesystem/task/file_check.php @@ -166,6 +166,7 @@ class file_check extends task_base } $this->installer_config->set('update_files', $file_update_info); + $this->installer_config->set('update_info', array()); } /** diff --git a/phpBB/phpbb/install/module/update_filesystem/task/show_file_status.php b/phpBB/phpbb/install/module/update_filesystem/task/show_file_status.php index c46c05500a..7f18950cf6 100644 --- a/phpBB/phpbb/install/module/update_filesystem/task/show_file_status.php +++ b/phpBB/phpbb/install/module/update_filesystem/task/show_file_status.php @@ -66,11 +66,7 @@ class show_file_status extends task_base $this->cache = $container->get('cache.driver'); // Initialize compression file updater - $compression_method = $this->installer_config->get('compression_method', ''); $this->file_updater = $file_updater_factory->get('compression'); - $conflict_archive = $this->file_updater->init($compression_method); - - $this->installer_config->set('update_file_conflict_archive', $conflict_archive); parent::__construct(false); } @@ -96,6 +92,10 @@ class show_file_status extends task_base // Create archive for merge conflicts if (!empty($merge_conflicts)) { + $compression_method = $this->installer_config->get('compression_method', ''); + $conflict_archive = $this->file_updater->init($compression_method); + $this->installer_config->set('update_file_conflict_archive', $conflict_archive); + foreach ($merge_conflicts as $filename) { $this->file_updater->create_new_file( @@ -111,9 +111,9 @@ class show_file_status extends task_base 'DOWNLOAD_CONFLICTS', 'DOWNLOAD_CONFLICTS_EXPLAIN' ); - } - $this->file_updater->close(); + $this->file_updater->close(); + } // Render update file statuses $file_update_info = $this->installer_config->get('update_files', array()); @@ -140,10 +140,13 @@ class show_file_status extends task_base } else { + $conflict_archive_path = $this->installer_config->get('update_file_conflict_archive', null); + // Remove archive - $this->filesystem->remove( - $this->installer_config->get('update_file_conflict_archive', null) - ); + if ($conflict_archive_path !== null && $this->filesystem->exists($conflict_archive_path)) + { + $this->filesystem->remove($conflict_archive_path); + } $this->installer_config->set('update_file_conflict_archive', null); } diff --git a/phpBB/phpbb/module/module_manager.php b/phpBB/phpbb/module/module_manager.php index a812d06736..7ae16cdb61 100644 --- a/phpBB/phpbb/module/module_manager.php +++ b/phpBB/phpbb/module/module_manager.php @@ -356,7 +356,7 @@ class module_manager $diff = sizeof($moved_modules) * 2; $moved_ids = array(); - for ($i = 0; $i < sizeof($moved_modules); ++$i) + for ($i = 0, $size = sizeof($moved_modules); $i < $size; ++$i) { $moved_ids[] = $moved_modules[$i]['module_id']; } diff --git a/phpBB/phpbb/notification/type/quote.php b/phpBB/phpbb/notification/type/quote.php index 684463c8c3..323c18b204 100644 --- a/phpBB/phpbb/notification/type/quote.php +++ b/phpBB/phpbb/notification/type/quote.php @@ -115,14 +115,14 @@ class quote extends \phpbb\notification\type\post )); // Find the new users to notify - $notifications = array_keys($this->find_users_for_notification($post)); + $notifications = $this->find_users_for_notification($post); // Find the notifications we must delete $remove_notifications = array_diff(array_keys($old_notifications), array_keys($notifications)); // Find the notifications we must add $add_notifications = array(); - foreach (array_diff(array_keys($notifications), $old_notifications) as $user_id) + foreach (array_diff(array_keys($notifications), array_keys($old_notifications)) as $user_id) { $add_notifications[$user_id] = $notifications[$user_id]; } diff --git a/phpBB/posting.php b/phpBB/posting.php index 9bd4acf99b..4986909148 100644 --- a/phpBB/posting.php +++ b/phpBB/posting.php @@ -1593,6 +1593,9 @@ $message_parser->decode_message($post_data['bbcode_uid']); if ($generate_quote) { + // Remove attachment bbcode tags from the quoted message to avoid mixing with the new post attachments if any + $message_parser->message = preg_replace('#\[attachment=([0-9]+)\](.*?)\[\/attachment\]#uis', '\\2', $message_parser->message); + if ($config['allow_bbcode']) { $message_parser->message = $phpbb_container->get('text_formatter.utils')->generate_quote( diff --git a/phpBB/styles/prosilver/style.cfg b/phpBB/styles/prosilver/style.cfg index e0b87f2398..690c35ca7a 100644 --- a/phpBB/styles/prosilver/style.cfg +++ b/phpBB/styles/prosilver/style.cfg @@ -21,8 +21,8 @@ # General Information about this style name = prosilver copyright = © phpBB Limited, 2007 -style_version = 3.3.0-dev -phpbb_version = 3.3.0-dev +style_version = 3.2.0-b3-dev +phpbb_version = 3.2.0-b3-dev # Defining a different template bitfield # template_bitfield = lNg= diff --git a/tests/attachment/upload_test.php b/tests/attachment/upload_test.php index 295b6b15c9..235ecd082a 100644 --- a/tests/attachment/upload_test.php +++ b/tests/attachment/upload_test.php @@ -11,7 +11,6 @@ * */ -require_once(dirname(__FILE__) . '/../../phpBB/includes/functions.php'); require_once(dirname(__FILE__) . '/../../phpBB/includes/functions_posting.php'); class phpbb_attachment_upload_test extends \phpbb_database_test_case diff --git a/tests/auth/provider_apache_test.php b/tests/auth/provider_apache_test.php index 60423acbc1..7d77d763fb 100644 --- a/tests/auth/provider_apache_test.php +++ b/tests/auth/provider_apache_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_auth_provider_apache_test extends phpbb_database_test_case { protected $provider; diff --git a/tests/auth/provider_db_test.php b/tests/auth/provider_db_test.php index 38dbfa1fcb..6ff77da564 100644 --- a/tests/auth/provider_db_test.php +++ b/tests/auth/provider_db_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_auth_provider_db_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/bbcode/parser_test.php b/tests/bbcode/parser_test.php index 14736627f3..5677e49636 100644 --- a/tests/bbcode/parser_test.php +++ b/tests/bbcode/parser_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/bbcode.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/message_parser.php'; diff --git a/tests/bbcode/url_bbcode_test.php b/tests/bbcode/url_bbcode_test.php index 83176abe4c..3f8ad6022f 100644 --- a/tests/bbcode/url_bbcode_test.php +++ b/tests/bbcode/url_bbcode_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/bbcode.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/message_parser.php'; diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 86e1e5314b..18977bac88 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -23,7 +23,10 @@ require_once $phpbb_root_path . 'includes/startup.php'; $table_prefix = 'phpbb_'; require_once $phpbb_root_path . 'includes/constants.php'; require_once $phpbb_root_path . 'phpbb/class_loader.' . $phpEx; -require_once($phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx); +require_once $phpbb_root_path . 'includes/utf/utf_tools.' . $phpEx; +require_once $phpbb_root_path . 'includes/functions.' . $phpEx; +require_once $phpbb_root_path . 'includes/functions_content.' . $phpEx; +require_once $phpbb_root_path . 'includes/functions_compatibility.' . $phpEx; $phpbb_class_loader_mock = new \phpbb\class_loader('phpbb_mock_', $phpbb_root_path . '../tests/mock/', "php"); $phpbb_class_loader_mock->register(); diff --git a/tests/captcha/qa_test.php b/tests/captcha/qa_test.php index 4aa5e714f5..7ec4be69f5 100644 --- a/tests/captcha/qa_test.php +++ b/tests/captcha/qa_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_captcha_qa_test extends \phpbb_database_test_case { protected $request; diff --git a/tests/compress/compress_test.php b/tests/compress/compress_test.php index 56c406b206..c071a049a8 100644 --- a/tests/compress/compress_test.php +++ b/tests/compress/compress_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_admin.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_compress.php'; diff --git a/tests/console/cron/run_test.php b/tests/console/cron/run_test.php index d6c7b21781..b4a0203325 100644 --- a/tests/console/cron/run_test.php +++ b/tests/console/cron/run_test.php @@ -16,7 +16,6 @@ use Symfony\Component\Console\Tester\CommandTester; use phpbb\console\command\cron\run; require_once dirname(__FILE__) . '/tasks/simple.php'; -require_once dirname(__FILE__) . '/../../../phpBB/includes/functions.php'; class phpbb_console_command_cron_run_test extends phpbb_database_test_case { diff --git a/tests/console/thumbnail_test.php b/tests/console/thumbnail_test.php index 45d7adacb9..439e3623fa 100644 --- a/tests/console/thumbnail_test.php +++ b/tests/console/thumbnail_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_compatibility.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - use Symfony\Component\Console\Application; use Symfony\Component\Console\Tester\CommandTester; use phpbb\console\command\thumbnail\generate; diff --git a/tests/console/user/activate_test.php b/tests/console/user/activate_test.php new file mode 100644 index 0000000000..1588a76e47 --- /dev/null +++ b/tests/console/user/activate_test.php @@ -0,0 +1,86 @@ +<?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. +* +*/ + +use Symfony\Component\Console\Application; +use Symfony\Component\Console\Tester\CommandTester; +use phpbb\console\command\user\activate; + +require_once dirname(__FILE__) . '/base.php'; + +class phpbb_console_user_activate_test extends phpbb_console_user_base +{ + protected $notifications; + + public function setUp() + { + parent::setUp(); + + $this->notifications = $this->getMockBuilder('\phpbb\notification\manager') + ->disableOriginalConstructor() + ->getMock(); + } + + 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->user_loader, + $this->phpbb_root_path, + $this->php_ext + )); + + $command = $application->find('user:activate'); + $this->command_name = $command->getName(); + + return new CommandTester($command); + } + + public function activate_test_data() + { + return array( + // Test an inactive user + array('Test', false, 'USER_ADMIN_ACTIVATED'), + array('Test', true, 'CLI_DESCRIPTION_USER_ACTIVATE_INACTIVE'), + + // Test an active user + array('Test 2', false, 'CLI_DESCRIPTION_USER_ACTIVATE_ACTIVE'), + array('Test 2', true, 'USER_ADMIN_DEACTIVED'), + + // Test a non existent user + array('Foo', false, 'NO_USER'), + array('Foo', true, 'NO_USER'), + ); + } + + /** + * @dataProvider activate_test_data + */ + public function test_activate($username, $deactivate, $expected) + { + $command_tester = $this->get_command_tester(); + + $command_tester->execute(array( + 'command' => $this->command_name, + 'username' => $username, + '--deactivate' => $deactivate, + )); + + $this->assertContains($expected, $command_tester->getDisplay()); + } +} diff --git a/tests/console/user/add_test.php b/tests/console/user/add_test.php index 00134c18cd..8641bf87b6 100644 --- a/tests/console/user/add_test.php +++ b/tests/console/user/add_test.php @@ -15,77 +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__) . '/../../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../../phpBB/includes/utf/utf_tools.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() @@ -139,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..b84c0bb267 --- /dev/null +++ b/tests/console/user/base.php @@ -0,0 +1,121 @@ +<?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. +* +*/ + +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 $user_loader; + 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' + )); + + $this->user_loader = new \phpbb\user_loader($db, $phpbb_root_path, $phpEx, USERS_TABLE); + + $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 new file mode 100644 index 0000000000..88f91afab1 --- /dev/null +++ b/tests/console/user/delete_test.php @@ -0,0 +1,93 @@ +<?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. +* +*/ + +use Symfony\Component\Console\Application; +use Symfony\Component\Console\Tester\CommandTester; +use phpbb\console\command\user\delete; + +require_once dirname(__FILE__) . '/base.php'; + +class phpbb_console_user_delete_test extends phpbb_console_user_base +{ + public function get_command_tester() + { + $application = new Application(); + $application->add(new delete( + $this->user, + $this->db, + $this->language, + $this->log, + $this->user_loader, + $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 test_delete() + { + $command_tester = $this->get_command_tester(); + + $this->assertEquals(3, $this->get_user_id('Test')); + + $this->question->setInputStream($this->getInputStream("yes\n")); + + $command_tester->execute(array( + 'command' => $this->command_name, + 'username' => 'Test', + '--delete-posts' => false, + )); + + $this->assertNull($this->get_user_id('Test')); + $this->assertContains('USER_DELETED', $command_tester->getDisplay()); + } + + public function test_delete_non_user() + { + $command_tester = $this->get_command_tester(); + + $this->assertNull($this->get_user_id('Foo')); + + $this->question->setInputStream($this->getInputStream("yes\n")); + + $command_tester->execute(array( + 'command' => $this->command_name, + 'username' => 'Foo', + '--delete-posts' => false, + )); + + $this->assertContains('NO_USER', $command_tester->getDisplay()); + } + + public function test_delete_cancel() + { + $command_tester = $this->get_command_tester(); + + $this->assertEquals(3, $this->get_user_id('Test')); + + $this->question->setInputStream($this->getInputStream("no\n")); + + $command_tester->execute(array( + 'command' => $this->command_name, + 'username' => 'Test', + '--delete-posts' => false, + )); + + $this->assertNotNull($this->get_user_id('Test')); + } +} 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 new file mode 100644 index 0000000000..1bf0b8ef5a --- /dev/null +++ b/tests/console/user/reclean_test.php @@ -0,0 +1,49 @@ +<?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. +* +*/ + +use Symfony\Component\Console\Application; +use Symfony\Component\Console\Tester\CommandTester; +use phpbb\console\command\user\reclean; + +require_once dirname(__FILE__) . '/base.php'; + +class phpbb_console_user_reclean_test extends phpbb_console_user_base +{ + 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); + } + + public function test_reclean() + { + $command_tester = $this->get_command_tester(); + + $exit_status = $command_tester->execute(array('command' => $this->command_name)); + $this->assertSame(0, $exit_status); + + $result = $this->db->sql_query('SELECT user_id FROM ' . USERS_TABLE . " WHERE username_clean = 'test unclean'"); + $row = $this->db->sql_fetchrow($result); + $this->db->sql_freeresult($result); + $this->assertNotNull($row['user_id']); + } +} diff --git a/tests/content_visibility/delete_post_test.php b/tests/content_visibility/delete_post_test.php index ba0a21a1a4..4ea95b0a96 100644 --- a/tests/content_visibility/delete_post_test.php +++ b/tests/content_visibility/delete_post_test.php @@ -11,11 +11,8 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_admin.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_posting.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; require_once dirname(__FILE__) . '/../mock/search.php'; class phpbb_content_visibility_delete_post_test extends phpbb_database_test_case diff --git a/tests/content_visibility/set_post_visibility_test.php b/tests/content_visibility/set_post_visibility_test.php index 6375ce8f6d..e33a1f30d5 100644 --- a/tests/content_visibility/set_post_visibility_test.php +++ b/tests/content_visibility/set_post_visibility_test.php @@ -11,11 +11,8 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_admin.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_posting.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; class phpbb_content_visibility_set_post_visibility_test extends phpbb_database_test_case { diff --git a/tests/content_visibility/set_topic_visibility_test.php b/tests/content_visibility/set_topic_visibility_test.php index f4d65f9ce3..78431396c3 100644 --- a/tests/content_visibility/set_topic_visibility_test.php +++ b/tests/content_visibility/set_topic_visibility_test.php @@ -11,11 +11,8 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_admin.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_posting.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; class phpbb_content_visibility_set_topic_visibility_test extends phpbb_database_test_case { diff --git a/tests/controller/common_helper_route.php b/tests/controller/common_helper_route.php index a26157c2b2..9d3d81963b 100644 --- a/tests/controller/common_helper_route.php +++ b/tests/controller/common_helper_route.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - use Symfony\Component\Routing\Generator\UrlGeneratorInterface; abstract class phpbb_controller_common_helper_route extends phpbb_test_case diff --git a/tests/controller/controller_test.php b/tests/controller/controller_test.php index e8af2f7485..d921d0eade 100644 --- a/tests/controller/controller_test.php +++ b/tests/controller/controller_test.php @@ -11,7 +11,8 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; +include_once(__DIR__ . '/ext/vendor2/foo/controller.php'); +include_once(__DIR__.'/phpbb/controller/foo.php'); use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Config\FileLocator; @@ -66,7 +67,7 @@ class phpbb_controller_controller_test extends phpbb_test_case $this->assertNull($routes->get('controller_noroute')); } - public function test_controller_resolver() + protected function get_foo_container() { $container = new ContainerBuilder(); // YamlFileLoader only uses one path at a time, so we need to loop @@ -77,26 +78,59 @@ class phpbb_controller_controller_test extends phpbb_test_case $loader->load('services.yml'); } - // Autoloading classes within the tests folder does not work - // so I'll include them manually. - if (!class_exists('vendor2\\foo\\controller')) - { - include(__DIR__ . '/ext/vendor2/foo/controller.php'); - } - if (!class_exists('phpbb\\controller\\foo')) - { - include(__DIR__.'/phpbb/controller/foo.php'); - } + return $container; + } + + public function test_controller_resolver() + { + $container = $this->get_foo_container(); $resolver = new \phpbb\controller\resolver($container, dirname(__FILE__) . '/'); $symfony_request = new Request(); $symfony_request->attributes->set('_controller', 'foo.controller:handle'); $this->assertEquals($resolver->getController($symfony_request), array(new foo\controller, 'handle')); + $this->assertEquals(array('foo'), $resolver->getArguments($symfony_request, $resolver->getController($symfony_request))); $symfony_request = new Request(); $symfony_request->attributes->set('_controller', 'core_foo.controller:bar'); $this->assertEquals($resolver->getController($symfony_request), array(new phpbb\controller\foo, 'bar')); + $this->assertEquals(array(), $resolver->getArguments($symfony_request, $resolver->getController($symfony_request))); + } + + public function data_get_arguments() + { + return array( + array(array(new foo\controller(), 'handle2'), array('foo', 0)), + array(array(new foo\controller(), 'handle_fail'), array('default'), array('no_default' => 'default')), + array(new foo\controller(), array(), array()), + array(array(new foo\controller(), 'handle_fail'), array(), array(), '\phpbb\controller\exception', 'CONTROLLER_ARGUMENT_VALUE_MISSING'), + array('', array(), array(), '\ReflectionException', 'Function () does not exist'), + array(new phpbb\controller\foo, array(), array(), '\ReflectionException', 'Method __invoke does not exist'), + ); + } + + /** + * @dataProvider data_get_arguments + */ + public function test_get_arguments($input, $expected, $set_attributes = array(), $exception = '', $exception_message = '') + { + $container = $this->get_foo_container(); + + $resolver = new \phpbb\controller\resolver($container, dirname(__FILE__) . '/'); + $symfony_request = new Request(); + + foreach ($set_attributes as $name => $value) + { + $symfony_request->attributes->set($name, $value); + } + + if (!empty($exception)) + { + $this->setExpectedException($exception, $exception_message); + } + + $this->assertEquals($expected, $resolver->getArguments($symfony_request, $input)); } } diff --git a/tests/controller/ext/vendor2/foo/controller.php b/tests/controller/ext/vendor2/foo/controller.php index ce2233b3c9..cabcae042b 100644 --- a/tests/controller/ext/vendor2/foo/controller.php +++ b/tests/controller/ext/vendor2/foo/controller.php @@ -11,8 +11,23 @@ class controller * * @return null */ - public function handle() + public function handle($optional = 'foo') { return new Response('Test', 200); } + + public function handle2($foo = 'foo', $very_optional = 0) + { + return new Response('Test2', 200); + } + + public function handle_fail($no_default) + { + return new Response('Test_fail', 200); + } + + public function __invoke() + { + $this->handle(); + } } diff --git a/tests/controller/helper_route_adm_subdir_test.php b/tests/controller/helper_route_adm_subdir_test.php index f27ac81b04..a1bf1b8805 100644 --- a/tests/controller/helper_route_adm_subdir_test.php +++ b/tests/controller/helper_route_adm_subdir_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/common_helper_route.php'; class phpbb_controller_helper_route_adm_subdir_test extends phpbb_controller_common_helper_route diff --git a/tests/controller/helper_route_adm_test.php b/tests/controller/helper_route_adm_test.php index 86dc36ef1f..6ee394eaaa 100644 --- a/tests/controller/helper_route_adm_test.php +++ b/tests/controller/helper_route_adm_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/common_helper_route.php'; class phpbb_controller_helper_route_adm_test extends phpbb_controller_common_helper_route diff --git a/tests/controller/helper_route_root_test.php b/tests/controller/helper_route_root_test.php index 63a2f2f8f7..12462e076d 100644 --- a/tests/controller/helper_route_root_test.php +++ b/tests/controller/helper_route_root_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/common_helper_route.php'; class phpbb_controller_helper_route_test extends phpbb_controller_common_helper_route diff --git a/tests/controller/helper_route_slash_test.php b/tests/controller/helper_route_slash_test.php index 3db5ec19e5..c781a6943e 100644 --- a/tests/controller/helper_route_slash_test.php +++ b/tests/controller/helper_route_slash_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/common_helper_route.php'; class phpbb_controller_helper_route_slash_test extends phpbb_controller_common_helper_route diff --git a/tests/controller/helper_route_unclean_path_test.php b/tests/controller/helper_route_unclean_path_test.php index 9d8b62bc1c..80f1a99fff 100644 --- a/tests/controller/helper_route_unclean_path_test.php +++ b/tests/controller/helper_route_unclean_path_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/common_helper_route.php'; class phpbb_controller_helper_route_unclean_path_test extends phpbb_controller_common_helper_route diff --git a/tests/dbal/auto_increment_test.php b/tests/dbal/auto_increment_test.php index 39eb6835ff..950a4fc8f7 100644 --- a/tests/dbal/auto_increment_test.php +++ b/tests/dbal/auto_increment_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_dbal_auto_increment_test extends phpbb_database_test_case { protected $db; diff --git a/tests/dbal/boolean_processor_test.php b/tests/dbal/boolean_processor_test.php index 226f5307b2..c69f60a1a8 100644 --- a/tests/dbal/boolean_processor_test.php +++ b/tests/dbal/boolean_processor_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_boolean_processor_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/dbal/connect_test.php b/tests/dbal/connect_test.php index edf57189cb..3933dab798 100644 --- a/tests/dbal/connect_test.php +++ b/tests/dbal/connect_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_dbal_connect_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/dbal/cross_join_test.php b/tests/dbal/cross_join_test.php index 7ba937ccc6..be9258c58b 100644 --- a/tests/dbal/cross_join_test.php +++ b/tests/dbal/cross_join_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_dbal_cross_join_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/dbal/db_tools_test.php b/tests/dbal/db_tools_test.php index aa0b6ccf48..b884b4ab95 100644 --- a/tests/dbal/db_tools_test.php +++ b/tests/dbal/db_tools_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_dbal_db_tools_test extends phpbb_database_test_case { /** @var \phpbb\db\driver\driver_interface */ diff --git a/tests/dbal/migrator_test.php b/tests/dbal/migrator_test.php index f52e6ea63d..48c99ad1d0 100644 --- a/tests/dbal/migrator_test.php +++ b/tests/dbal/migrator_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/migration/dummy.php'; require_once dirname(__FILE__) . '/migration/unfulfillable.php'; require_once dirname(__FILE__) . '/migration/if.php'; diff --git a/tests/dbal/migrator_tool_module_test.php b/tests/dbal/migrator_tool_module_test.php index a71334f23f..c2252c8d10 100644 --- a/tests/dbal/migrator_tool_module_test.php +++ b/tests/dbal/migrator_tool_module_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_dbal_migrator_tool_module_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/dbal/migrator_tool_permission_test.php b/tests/dbal/migrator_tool_permission_test.php index bfb2e07080..d84f6a68ff 100644 --- a/tests/dbal/migrator_tool_permission_test.php +++ b/tests/dbal/migrator_tool_permission_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_dbal_migrator_tool_permission_test extends phpbb_database_test_case { public $group_ids = array( diff --git a/tests/dbal/schema_test.php b/tests/dbal/schema_test.php index f13c7ce032..59965655ad 100644 --- a/tests/dbal/schema_test.php +++ b/tests/dbal/schema_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_dbal_schema_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/dbal/select_test.php b/tests/dbal/select_test.php index b7074552ba..0dac66fc46 100644 --- a/tests/dbal/select_test.php +++ b/tests/dbal/select_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_dbal_select_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/dbal/write_sequence_test.php b/tests/dbal/write_sequence_test.php index a1b589c578..a2d5921797 100644 --- a/tests/dbal/write_sequence_test.php +++ b/tests/dbal/write_sequence_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_dbal_write_sequence_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/dbal/write_test.php b/tests/dbal/write_test.php index 2426f2b0be..98709fb043 100644 --- a/tests/dbal/write_test.php +++ b/tests/dbal/write_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_dbal_write_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/di/create_container_test.php b/tests/di/create_container_test.php index 2d94f1d778..4dd0583ebe 100644 --- a/tests/di/create_container_test.php +++ b/tests/di/create_container_test.php @@ -13,7 +13,6 @@ namespace { - require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/fixtures/ext/vendor/enabled_4/di/extension.php'; class phpbb_di_container_test extends \phpbb_test_case diff --git a/tests/error_collector_test.php b/tests/error_collector_test.php index ddbe2e3af1..273284c8fc 100644 --- a/tests/error_collector_test.php +++ b/tests/error_collector_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../phpBB/includes/functions.php'; - class phpbb_error_collector_test extends phpbb_test_case { public function setUp() diff --git a/tests/event/exception_listener_test.php b/tests/event/exception_listener_test.php index e643fadf2c..08679a3ed8 100644 --- a/tests/event/exception_listener_test.php +++ b/tests/event/exception_listener_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class exception_listener extends phpbb_test_case { public function phpbb_exception_data() diff --git a/tests/event/md_exporter_test.php b/tests/event/md_exporter_test.php index a6c1dc78de..607f442fdf 100644 --- a/tests/event/md_exporter_test.php +++ b/tests/event/md_exporter_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_event_md_exporter_test extends phpbb_test_case { static public function crawl_eventsmd_data() diff --git a/tests/extension/extension_base_test.php b/tests/extension/extension_base_test.php index 775a23e198..e0c2e6d549 100644 --- a/tests/extension/extension_base_test.php +++ b/tests/extension/extension_base_test.php @@ -10,7 +10,6 @@ * the docs/CREDITS.txt file. * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/ext/vendor2/bar/migrations/bar.php'; require_once dirname(__FILE__) . '/ext/vendor2/bar/migrations/foo.php'; require_once dirname(__FILE__) . '/ext/vendor2/bar/migrations/migration.php'; diff --git a/tests/extension/finder_test.php b/tests/extension/finder_test.php index 463b69e9a9..71de2c2fc5 100644 --- a/tests/extension/finder_test.php +++ b/tests/extension/finder_test.php @@ -10,7 +10,6 @@ * the docs/CREDITS.txt file. * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; class phpbb_extension_finder_test extends phpbb_test_case { diff --git a/tests/files/types_form_test.php b/tests/files/types_form_test.php index efcece49d1..925babb47f 100644 --- a/tests/files/types_form_test.php +++ b/tests/files/types_form_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_files_types_form_test extends phpbb_test_case { private $path; diff --git a/tests/files/types_local_test.php b/tests/files/types_local_test.php index f4fa7fad3f..31070de107 100644 --- a/tests/files/types_local_test.php +++ b/tests/files/types_local_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_files_types_local_test extends phpbb_test_case { private $path; diff --git a/tests/files/types_remote_test.php b/tests/files/types_remote_test.php index 476d8ed3ba..d103771c04 100644 --- a/tests/files/types_remote_test.php +++ b/tests/files/types_remote_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/type_foo.php'; class phpbb_files_types_remote_test extends phpbb_test_case diff --git a/tests/functional/download_test.php b/tests/functional/download_test.php index 1e863210e6..e2f1d065be 100644 --- a/tests/functional/download_test.php +++ b/tests/functional/download_test.php @@ -11,10 +11,7 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_posting.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; /** * @group functional diff --git a/tests/functional/feed_test.php b/tests/functional/feed_test.php index dad5ca7e1a..3792b0a23c 100644 --- a/tests/functional/feed_test.php +++ b/tests/functional/feed_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - /** * @group functional */ diff --git a/tests/functional/notification_test.php b/tests/functional/notification_test.php index 87c36dd4d1..5c6b87d50b 100644 --- a/tests/functional/notification_test.php +++ b/tests/functional/notification_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - /** * @group functional */ diff --git a/tests/functional/permission_roles_test.php b/tests/functional/permission_roles_test.php index 82d5be68c3..e6506fb37c 100644 --- a/tests/functional/permission_roles_test.php +++ b/tests/functional/permission_roles_test.php @@ -11,8 +11,6 @@ * */ -require_once __DIR__ . '/../../phpBB/includes/functions.php'; - /** * @group functional */ diff --git a/tests/functions/build_hidden_fields_for_query_params_test.php b/tests/functions/build_hidden_fields_for_query_params_test.php index 14cb4b9a94..aee7a569d4 100644 --- a/tests/functions/build_hidden_fields_for_query_params_test.php +++ b/tests/functions/build_hidden_fields_for_query_params_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_build_hidden_fields_for_query_params_test extends phpbb_test_case { public function build_hidden_fields_for_query_params_test_data() diff --git a/tests/functions/build_url_test.php b/tests/functions/build_url_test.php index 3e19b51f02..91a4a9ec66 100644 --- a/tests/functions/build_url_test.php +++ b/tests/functions/build_url_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_build_url_test extends phpbb_test_case { protected function setUp() diff --git a/tests/functions/convert_30_dbms_to_31_test.php b/tests/functions/convert_30_dbms_to_31_test.php index 729c0a82f0..1405d81eb3 100644 --- a/tests/functions/convert_30_dbms_to_31_test.php +++ b/tests/functions/convert_30_dbms_to_31_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_convert_30_dbms_to_31_test extends phpbb_test_case { public function convert_30_dbms_to_31_data() diff --git a/tests/functions/generate_string_list.php b/tests/functions/generate_string_list.php index bcf0c09fe4..6eddb1395e 100644 --- a/tests/functions/generate_string_list.php +++ b/tests/functions/generate_string_list.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_generate_string_list_test extends phpbb_test_case { public $user; diff --git a/tests/functions/get_formatted_filesize_test.php b/tests/functions/get_formatted_filesize_test.php index 635753d737..290515b64f 100644 --- a/tests/functions/get_formatted_filesize_test.php +++ b/tests/functions/get_formatted_filesize_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_get_formatted_filesize_test extends phpbb_test_case { public function get_formatted_filesize_test_data() diff --git a/tests/functions/get_preg_expression_test.php b/tests/functions/get_preg_expression_test.php index e74017d315..b8254b03ea 100644 --- a/tests/functions/get_preg_expression_test.php +++ b/tests/functions/get_preg_expression_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_functions_get_preg_expression_test extends phpbb_test_case { public function data_path_remove_dot_trailing_slash() diff --git a/tests/functions/get_remote_file_test.php b/tests/functions/get_remote_file_test.php index 781a73a462..1550aa37e6 100644 --- a/tests/functions/get_remote_file_test.php +++ b/tests/functions/get_remote_file_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_compatibility.php'; - /** * @group slow */ diff --git a/tests/functions/language_select_test.php b/tests/functions/language_select_test.php index 6762ead5a1..2d1296d72f 100644 --- a/tests/functions/language_select_test.php +++ b/tests/functions/language_select_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_functions_language_select_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/functions/make_clickable_email_test.php b/tests/functions/make_clickable_email_test.php index 4c802d0487..f32b4339a8 100644 --- a/tests/functions/make_clickable_email_test.php +++ b/tests/functions/make_clickable_email_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; - class phpbb_functions_make_clickable_email_test extends phpbb_test_case { protected function setUp() diff --git a/tests/functions/make_clickable_test.php b/tests/functions/make_clickable_test.php index 63beeb06b2..48fc2c19fb 100644 --- a/tests/functions/make_clickable_test.php +++ b/tests/functions/make_clickable_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; - class phpbb_functions_make_clickable_test extends phpbb_test_case { /** diff --git a/tests/functions/obtain_online_test.php b/tests/functions/obtain_online_test.php index e793a4eb82..778753e5d2 100644 --- a/tests/functions/obtain_online_test.php +++ b/tests/functions/obtain_online_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; - class phpbb_functions_obtain_online_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/functions/parse_cfg_file_test.php b/tests/functions/parse_cfg_file_test.php index b47e25fbc1..017a931f28 100644 --- a/tests/functions/parse_cfg_file_test.php +++ b/tests/functions/parse_cfg_file_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_functions_parse_cfg_file extends phpbb_test_case { public function parse_cfg_file_data() diff --git a/tests/functions/quoteattr_test.php b/tests/functions/quoteattr_test.php index 6e191f9610..dbad7a99d8 100644 --- a/tests/functions/quoteattr_test.php +++ b/tests/functions/quoteattr_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_quoteattr_test extends phpbb_test_case { public function quoteattr_test_data() diff --git a/tests/functions/style_select_test.php b/tests/functions/style_select_test.php index a918f83155..27f0e68c88 100644 --- a/tests/functions/style_select_test.php +++ b/tests/functions/style_select_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_functions_style_select_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/functions/user_delete_test.php b/tests/functions/user_delete_test.php index bd6b53c59f..480b5fc5e1 100644 --- a/tests/functions/user_delete_test.php +++ b/tests/functions/user_delete_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php'; class phpbb_functions_user_delete_test extends phpbb_database_test_case diff --git a/tests/functions/validate_email_test.php b/tests/functions/validate_email_test.php index b46509fda7..7f8b2679d4 100644 --- a/tests/functions/validate_email_test.php +++ b/tests/functions/validate_email_test.php @@ -7,7 +7,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php'; require_once dirname(__FILE__) . '/../mock/user.php'; require_once dirname(__FILE__) . '/validate_data_helper.php'; diff --git a/tests/functions/validate_password_test.php b/tests/functions/validate_password_test.php index c5942e79bf..5e34c8baba 100644 --- a/tests/functions/validate_password_test.php +++ b/tests/functions/validate_password_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php'; require_once dirname(__FILE__) . '/validate_data_helper.php'; diff --git a/tests/functions/validate_string_test.php b/tests/functions/validate_string_test.php index 24026e4c9f..7aca14c334 100644 --- a/tests/functions/validate_string_test.php +++ b/tests/functions/validate_string_test.php @@ -12,7 +12,6 @@ */ require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; require_once dirname(__FILE__) . '/validate_data_helper.php'; class phpbb_functions_validate_string_test extends phpbb_test_case diff --git a/tests/functions/validate_user_email_test.php b/tests/functions/validate_user_email_test.php index 951d5794e6..8dcec88103 100644 --- a/tests/functions/validate_user_email_test.php +++ b/tests/functions/validate_user_email_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php'; require_once dirname(__FILE__) . '/../mock/user.php'; require_once dirname(__FILE__) . '/validate_data_helper.php'; diff --git a/tests/functions/validate_username_test.php b/tests/functions/validate_username_test.php index 4fa5af7ff3..d310f58036 100644 --- a/tests/functions/validate_username_test.php +++ b/tests/functions/validate_username_test.php @@ -11,9 +11,7 @@ * */ -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/cache.php'; require_once dirname(__FILE__) . '/validate_data_helper.php'; diff --git a/tests/functions_acp/validate_config_vars_test.php b/tests/functions_acp/validate_config_vars_test.php index 32738e4351..5c31888291 100644 --- a/tests/functions_acp/validate_config_vars_test.php +++ b/tests/functions_acp/validate_config_vars_test.php @@ -12,7 +12,6 @@ */ require_once dirname(__FILE__) . '/../../phpBB/includes/functions_acp.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; class phpbb_functions_acp_validate_config_vars_test extends phpbb_test_case { diff --git a/tests/functions_acp/validate_range_test.php b/tests/functions_acp/validate_range_test.php index 6408e29a26..9e9154a43c 100644 --- a/tests/functions_acp/validate_range_test.php +++ b/tests/functions_acp/validate_range_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_acp.php'; class phpbb_functions_acp_validate_range_test extends phpbb_test_case diff --git a/tests/functions_content/get_username_string_test.php b/tests/functions_content/get_username_string_test.php index 01ec97f6a4..e79342d05d 100644 --- a/tests/functions_content/get_username_string_test.php +++ b/tests/functions_content/get_username_string_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; - class phpbb_functions_content_get_username_string_test extends phpbb_test_case { public function setUp() diff --git a/tests/functions_content/phpbb_clean_search_string_test.php b/tests/functions_content/phpbb_clean_search_string_test.php index abd107097c..34ae0575c5 100644 --- a/tests/functions_content/phpbb_clean_search_string_test.php +++ b/tests/functions_content/phpbb_clean_search_string_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; - class phpbb_functions_content_phpbb_clean_search_string_test extends phpbb_test_case { public function phpbb_clean_search_string_data() diff --git a/tests/functions_user/delete_user_test.php b/tests/functions_user/delete_user_test.php index 6d2e1fa20a..25042d9f1b 100644 --- a/tests/functions_user/delete_user_test.php +++ b/tests/functions_user/delete_user_test.php @@ -7,9 +7,7 @@ * */ -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_delete_user_test extends phpbb_database_test_case { diff --git a/tests/functions_user/group_user_attributes_test.php b/tests/functions_user/group_user_attributes_test.php index 6ccada44f8..3124d57ba0 100644 --- a/tests/functions_user/group_user_attributes_test.php +++ b/tests/functions_user/group_user_attributes_test.php @@ -11,9 +11,7 @@ * */ -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 { diff --git a/tests/groupposition/legend_test.php b/tests/groupposition/legend_test.php index 566a8a2935..02ddb7cbce 100644 --- a/tests/groupposition/legend_test.php +++ b/tests/groupposition/legend_test.php @@ -11,7 +11,6 @@ * */ - class phpbb_groupposition_legend_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/groupposition/teampage_test.php b/tests/groupposition/teampage_test.php index dff52f7a43..3b916670f7 100644 --- a/tests/groupposition/teampage_test.php +++ b/tests/groupposition/teampage_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; - class phpbb_groupposition_teampage_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/lock/db_test.php b/tests/lock/db_test.php index 389eab4152..5fbfa26554 100644 --- a/tests/lock/db_test.php +++ b/tests/lock/db_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_lock_db_test extends phpbb_database_test_case { private $db; diff --git a/tests/log/add_test.php b/tests/log/add_test.php index ea1ae74d53..604c8364dc 100644 --- a/tests/log/add_test.php +++ b/tests/log/add_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_log_add_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/log/delete_test.php b/tests/log/delete_test.php index fe4c3835cb..e8b75d01d9 100644 --- a/tests/log/delete_test.php +++ b/tests/log/delete_test.php @@ -11,10 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_log_delete_test extends phpbb_database_test_case { protected $log; diff --git a/tests/log/function_add_log_test.php b/tests/log/function_add_log_test.php index cdfeb52996..3b5537fc13 100644 --- a/tests/log/function_add_log_test.php +++ b/tests/log/function_add_log_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_compatibility.php'; - class phpbb_log_function_add_log_test extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/log/function_view_log_test.php b/tests/log/function_view_log_test.php index 81b1f4a78c..ee9c3e5893 100644 --- a/tests/log/function_view_log_test.php +++ b/tests/log/function_view_log_test.php @@ -11,10 +11,7 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_admin.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; require_once dirname(__FILE__) . '/../mock/user.php'; require_once dirname(__FILE__) . '/../mock/cache.php'; diff --git a/tests/mock/session_testable.php b/tests/mock/session_testable.php index 29dd2a5bff..2f24978ba8 100644 --- a/tests/mock/session_testable.php +++ b/tests/mock/session_testable.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - /** * Extends the session class to overwrite the setting of cookies. * diff --git a/tests/network/checkdnsrr_test.php b/tests/network/checkdnsrr_test.php index a3852b2656..6503a4c40b 100644 --- a/tests/network/checkdnsrr_test.php +++ b/tests/network/checkdnsrr_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - /** * @group slow */ diff --git a/tests/network/ftp_fsock_pasv_epsv_test.php b/tests/network/ftp_fsock_pasv_epsv_test.php index 6ed9d61dc0..4ec21b6f75 100644 --- a/tests/network/ftp_fsock_pasv_epsv_test.php +++ b/tests/network/ftp_fsock_pasv_epsv_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_transfer.php'; /** diff --git a/tests/network/inet_ntop_pton_test.php b/tests/network/inet_ntop_pton_test.php index fae40ad74e..dbd58ce783 100644 --- a/tests/network/inet_ntop_pton_test.php +++ b/tests/network/inet_ntop_pton_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_network_inet_ntop_pton_test extends phpbb_test_case { public function data_provider() diff --git a/tests/network/ip_normalise_test.php b/tests/network/ip_normalise_test.php index 1acfd4521d..52e594e115 100644 --- a/tests/network/ip_normalise_test.php +++ b/tests/network/ip_normalise_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_network_ip_normalise_test extends phpbb_test_case { public function data_provider() diff --git a/tests/notification/group_request_test.php b/tests/notification/group_request_test.php index d16e198861..92e758a336 100644 --- a/tests/notification/group_request_test.php +++ b/tests/notification/group_request_test.php @@ -12,7 +12,6 @@ */ require_once dirname(__FILE__) . '/base.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; class phpbb_notification_group_request_test extends phpbb_tests_notification_base { diff --git a/tests/notification/submit_post_base.php b/tests/notification/submit_post_base.php index 14ca4499d2..21559c42a5 100644 --- a/tests/notification/submit_post_base.php +++ b/tests/notification/submit_post_base.php @@ -15,10 +15,7 @@ use Symfony\Component\Config\FileLocator; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Loader\YamlFileLoader; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_posting.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; abstract class phpbb_notification_submit_post_base extends phpbb_database_test_case { diff --git a/tests/notification/user_list_trim_test.php b/tests/notification/user_list_trim_test.php index 9f6eb492f6..7d4dff6024 100644 --- a/tests/notification/user_list_trim_test.php +++ b/tests/notification/user_list_trim_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_notification_user_list_trim_test extends phpbb_database_test_case { protected $notification; diff --git a/tests/profilefields/type_googleplus_test.php b/tests/profilefields/type_googleplus_test.php index 6faf939231..9222362214 100644 --- a/tests/profilefields/type_googleplus_test.php +++ b/tests/profilefields/type_googleplus_test.php @@ -11,8 +11,6 @@ * */ -require_once __DIR__ . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_profilefield_type_googleplus_test extends phpbb_test_case { protected $field; diff --git a/tests/profilefields/type_string_test.php b/tests/profilefields/type_string_test.php index 447ab32a00..7c7fa3f3e6 100644 --- a/tests/profilefields/type_string_test.php +++ b/tests/profilefields/type_string_test.php @@ -11,10 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_profilefield_type_string_test extends phpbb_test_case { protected $cp; diff --git a/tests/profilefields/type_url_test.php b/tests/profilefields/type_url_test.php index a0f93fe1f6..1d90e2c34c 100644 --- a/tests/profilefields/type_url_test.php +++ b/tests/profilefields/type_url_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_profilefield_type_url_test extends phpbb_test_case { protected $cp; diff --git a/tests/random/gen_rand_string_test.php b/tests/random/gen_rand_string_test.php index 1d12d0622c..a9d1ea20de 100644 --- a/tests/random/gen_rand_string_test.php +++ b/tests/random/gen_rand_string_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_random_gen_rand_string_test extends phpbb_test_case { const TEST_COUNT = 100; diff --git a/tests/regex/censor_test.php b/tests/regex/censor_test.php index 5625b0020b..5a516b71de 100644 --- a/tests/regex/censor_test.php +++ b/tests/regex/censor_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_regex_censor_test extends phpbb_test_case { public function censor_test_data() @@ -41,4 +39,4 @@ class phpbb_regex_censor_test extends phpbb_test_case $this->assertRegExp($regex, $subject); } -}
\ No newline at end of file +} diff --git a/tests/regex/email_test.php b/tests/regex/email_test.php index ede35c49bc..5187b8bda6 100644 --- a/tests/regex/email_test.php +++ b/tests/regex/email_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_regex_email_test extends phpbb_test_case { protected $regex; diff --git a/tests/regex/ipv4_test.php b/tests/regex/ipv4_test.php index 62c2567517..e21a2d77fa 100644 --- a/tests/regex/ipv4_test.php +++ b/tests/regex/ipv4_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_regex_ipv4_test extends phpbb_test_case { protected $regex; diff --git a/tests/regex/ipv6_test.php b/tests/regex/ipv6_test.php index 41039c819d..223161df7f 100644 --- a/tests/regex/ipv6_test.php +++ b/tests/regex/ipv6_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_regex_ipv6_test extends phpbb_test_case { protected $regex; diff --git a/tests/regex/password_complexity_test.php b/tests/regex/password_complexity_test.php index 8a1a9edd41..933dc1ac91 100644 --- a/tests/regex/password_complexity_test.php +++ b/tests/regex/password_complexity_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../../phpBB/includes/functions_user.php'; class phpbb_password_complexity_test extends phpbb_test_case diff --git a/tests/regex/table_prefix_test.php b/tests/regex/table_prefix_test.php index c593085b25..bf7b59ccc6 100644 --- a/tests/regex/table_prefix_test.php +++ b/tests/regex/table_prefix_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_regex_table_prefix_test extends phpbb_test_case { public function table_prefix_test_data() diff --git a/tests/regex/url_test.php b/tests/regex/url_test.php index e5d7c3256a..5e2a22bf73 100644 --- a/tests/regex/url_test.php +++ b/tests/regex/url_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_regex_url_test extends phpbb_test_case { public function url_test_data() diff --git a/tests/request/request_var_test.php b/tests/request/request_var_test.php index b409e5ef25..84c81c4e84 100644 --- a/tests/request/request_var_test.php +++ b/tests/request/request_var_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_compatibility.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_request_var_test extends phpbb_test_case { /** diff --git a/tests/request/type_cast_helper_test.php b/tests/request/type_cast_helper_test.php index d6ee1dc728..143c05aa9c 100644 --- a/tests/request/type_cast_helper_test.php +++ b/tests/request/type_cast_helper_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_type_cast_helper_test extends phpbb_test_case { private $type_cast_helper; diff --git a/tests/security/extract_current_page_test.php b/tests/security/extract_current_page_test.php index 767b901a43..f764449eca 100644 --- a/tests/security/extract_current_page_test.php +++ b/tests/security/extract_current_page_test.php @@ -13,7 +13,6 @@ require_once dirname(__FILE__) . '/base.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; class phpbb_security_extract_current_page_test extends phpbb_security_test_base { diff --git a/tests/security/hash_test.php b/tests/security/hash_test.php index 0494c55c6d..84d4fcf479 100644 --- a/tests/security/hash_test.php +++ b/tests/security/hash_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_compatibility.php'; - class phpbb_security_hash_test extends phpbb_test_case { public function setUp() diff --git a/tests/security/redirect_test.php b/tests/security/redirect_test.php index 62781f3ee6..40cb7d2f04 100644 --- a/tests/security/redirect_test.php +++ b/tests/security/redirect_test.php @@ -13,7 +13,6 @@ require_once dirname(__FILE__) . '/base.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; class phpbb_security_redirect_test extends phpbb_security_test_base { diff --git a/tests/session/append_sid_test.php b/tests/session/append_sid_test.php index 2a1d94514f..4e5a238644 100644 --- a/tests/session/append_sid_test.php +++ b/tests/session/append_sid_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_session_append_sid_test extends phpbb_test_case { diff --git a/tests/session/extract_page_test.php b/tests/session/extract_page_test.php index 96445ef9b3..88eb7b2c1a 100644 --- a/tests/session/extract_page_test.php +++ b/tests/session/extract_page_test.php @@ -12,7 +12,6 @@ */ require_once dirname(__FILE__) . '/../test_framework/phpbb_session_test_case.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; class phpbb_session_extract_page_test extends phpbb_session_test_case { diff --git a/tests/session/garbage_collection_test.php b/tests/session/garbage_collection_test.php index 3fad81c68b..3dc591a328 100644 --- a/tests/session/garbage_collection_test.php +++ b/tests/session/garbage_collection_test.php @@ -12,7 +12,6 @@ */ require_once dirname(__FILE__) . '/../test_framework/phpbb_session_test_case.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; class phpbb_session_garbage_collection_test extends phpbb_session_test_case { diff --git a/tests/session/session_key_test.php b/tests/session/session_key_test.php index bf3dfcaa3c..2499ea1d55 100644 --- a/tests/session/session_key_test.php +++ b/tests/session/session_key_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../test_framework/phpbb_session_test_case.php'; class phpbb_session_login_keys_test extends phpbb_session_test_case diff --git a/tests/template/template_parser_test.php b/tests/template/template_parser_test.php index d32fe78391..938b1bc8b8 100644 --- a/tests/template/template_parser_test.php +++ b/tests/template/template_parser_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/template_test_case.php'; class phpbb_template_template_parser_test extends phpbb_template_template_test_case diff --git a/tests/template/template_test.php b/tests/template/template_test.php index 33dc4ca551..63e7cb869a 100644 --- a/tests/template/template_test.php +++ b/tests/template/template_test.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/template_test_case.php'; class phpbb_template_template_test extends phpbb_template_template_test_case diff --git a/tests/template/template_test_case.php b/tests/template/template_test_case.php index 3c97d30edc..cda0623dcb 100644 --- a/tests/template/template_test_case.php +++ b/tests/template/template_test_case.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_template_template_test_case extends phpbb_test_case { protected $lang; diff --git a/tests/test_framework/phpbb_session_test_case.php b/tests/test_framework/phpbb_session_test_case.php index 1c1930e88d..b3d7780d14 100644 --- a/tests/test_framework/phpbb_session_test_case.php +++ b/tests/test_framework/phpbb_session_test_case.php @@ -11,7 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; require_once dirname(__FILE__) . '/../session/testable_factory.php'; require_once dirname(__FILE__) . '/../session/testable_facade.php'; diff --git a/tests/text_formatter/s9e/default_formatting_test.php b/tests/text_formatter/s9e/default_formatting_test.php index 1f7df15434..a41e5da507 100644 --- a/tests/text_formatter/s9e/default_formatting_test.php +++ b/tests/text_formatter/s9e/default_formatting_test.php @@ -10,8 +10,6 @@ * the docs/CREDITS.txt file. * */ -require_once __DIR__ . '/../../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../../phpBB/includes/functions_content.php'; class phpbb_textformatter_s9e_default_formatting_test extends phpbb_test_case { diff --git a/tests/text_formatter/s9e/factory_test.php b/tests/text_formatter/s9e/factory_test.php index 8f8ec7ebc7..e74337decc 100644 --- a/tests/text_formatter/s9e/factory_test.php +++ b/tests/text_formatter/s9e/factory_test.php @@ -10,8 +10,7 @@ * 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'; class phpbb_textformatter_s9e_factory_test extends phpbb_database_test_case diff --git a/tests/text_formatter/s9e/parser_test.php b/tests/text_formatter/s9e/parser_test.php index 3b72e713e1..4b9bbf9bb2 100644 --- a/tests/text_formatter/s9e/parser_test.php +++ b/tests/text_formatter/s9e/parser_test.php @@ -10,8 +10,6 @@ * the docs/CREDITS.txt file. * */ -require_once __DIR__ . '/../../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../../phpBB/includes/functions_content.php'; class phpbb_textformatter_s9e_parser_test extends phpbb_test_case { diff --git a/tests/text_formatter/s9e/renderer_test.php b/tests/text_formatter/s9e/renderer_test.php index ad5bfa78fc..2b034259c9 100644 --- a/tests/text_formatter/s9e/renderer_test.php +++ b/tests/text_formatter/s9e/renderer_test.php @@ -10,8 +10,6 @@ * the docs/CREDITS.txt file. * */ -require_once __DIR__ . '/../../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../../phpBB/includes/functions_content.php'; class phpbb_textformatter_s9e_renderer_test extends phpbb_test_case { diff --git a/tests/text_formatter/s9e/utils_test.php b/tests/text_formatter/s9e/utils_test.php index dade259790..719d3cda88 100644 --- a/tests/text_formatter/s9e/utils_test.php +++ b/tests/text_formatter/s9e/utils_test.php @@ -11,9 +11,6 @@ * */ -require_once __DIR__ . '/../../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../../phpBB/includes/functions_content.php'; - class phpbb_textformatter_s9e_utils_test extends phpbb_test_case { /** diff --git a/tests/text_processing/censor_text_test.php b/tests/text_processing/censor_text_test.php index 983a5ba2d3..eda2bbb1b3 100644 --- a/tests/text_processing/censor_text_test.php +++ b/tests/text_processing/censor_text_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; - class phpbb_text_processing_censor_text_test extends phpbb_test_case { public function censor_text_data() diff --git a/tests/text_processing/decode_message_test.php b/tests/text_processing/decode_message_test.php index fd1719fedc..e2402e721a 100644 --- a/tests/text_processing/decode_message_test.php +++ b/tests/text_processing/decode_message_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; - class phpbb_text_processing_decode_message_test extends phpbb_test_case { public function setUp() diff --git a/tests/text_processing/generate_text_for_display_test.php b/tests/text_processing/generate_text_for_display_test.php index dba3713447..dfbd0977a0 100644 --- a/tests/text_processing/generate_text_for_display_test.php +++ b/tests/text_processing/generate_text_for_display_test.php @@ -11,9 +11,6 @@ * */ -require_once __DIR__ . '/../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../phpBB/includes/functions_content.php'; - class phpbb_text_processing_generate_text_for_display_test extends phpbb_test_case { public function setUp() diff --git a/tests/text_processing/generate_text_for_edit_test.php b/tests/text_processing/generate_text_for_edit_test.php index 105e8da86b..8258a196f5 100644 --- a/tests/text_processing/generate_text_for_edit_test.php +++ b/tests/text_processing/generate_text_for_edit_test.php @@ -11,9 +11,6 @@ * */ -require_once __DIR__ . '/../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../phpBB/includes/functions_content.php'; - class phpbb_text_processing_generate_text_for_edit_test extends phpbb_test_case { /** diff --git a/tests/text_processing/generate_text_for_storage_test.php b/tests/text_processing/generate_text_for_storage_test.php index 474f6d8f0f..f0588fec4f 100644 --- a/tests/text_processing/generate_text_for_storage_test.php +++ b/tests/text_processing/generate_text_for_storage_test.php @@ -11,11 +11,6 @@ * */ -require_once __DIR__ . '/../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../phpBB/includes/functions_compatibility.php'; -require_once __DIR__ . '/../../phpBB/includes/functions_content.php'; -require_once __DIR__ . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_text_processing_generate_text_for_storage_test extends phpbb_test_case { public function setUp() diff --git a/tests/text_processing/make_clickable_test.php b/tests/text_processing/make_clickable_test.php index 95e304dd97..3c8539c612 100644 --- a/tests/text_processing/make_clickable_test.php +++ b/tests/text_processing/make_clickable_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; - class phpbb_text_processing_make_clickable_test extends phpbb_test_case { public function make_clickable_data() diff --git a/tests/text_processing/message_parser_test.php b/tests/text_processing/message_parser_test.php index bee1b3fca3..a3dbf644f6 100644 --- a/tests/text_processing/message_parser_test.php +++ b/tests/text_processing/message_parser_test.php @@ -12,10 +12,7 @@ */ require_once __DIR__ . '/../../phpBB/includes/bbcode.php'; -require_once __DIR__ . '/../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../phpBB/includes/functions_content.php'; require_once __DIR__ . '/../../phpBB/includes/message_parser.php'; -require_once __DIR__ . '/../../phpBB/includes/utf/utf_tools.php'; class phpbb_text_processing_message_parser_test extends phpbb_test_case { diff --git a/tests/text_processing/smilies_test.php b/tests/text_processing/smilies_test.php index 3bbe065d36..ebdbe7dadc 100644 --- a/tests/text_processing/smilies_test.php +++ b/tests/text_processing/smilies_test.php @@ -11,9 +11,6 @@ * */ -require_once __DIR__ . '/../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../phpBB/includes/functions_content.php'; - class phpbb_text_processing_smilies_test extends phpbb_test_case { /** diff --git a/tests/text_processing/strip_bbcode_test.php b/tests/text_processing/strip_bbcode_test.php index 827d8d4a52..9acedc2872 100644 --- a/tests/text_processing/strip_bbcode_test.php +++ b/tests/text_processing/strip_bbcode_test.php @@ -11,9 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions_content.php'; - class phpbb_text_processing_strip_bbcode_test extends phpbb_test_case { public function test_legacy() diff --git a/tests/text_processing/tickets_data/PHPBB3-14260.html b/tests/text_processing/tickets_data/PHPBB3-14260.html new file mode 100644 index 0000000000..c7e7cad237 --- /dev/null +++ b/tests/text_processing/tickets_data/PHPBB3-14260.html @@ -0,0 +1 @@ +<a href="http://example.org/article/S0883-9441%2811%290483-7/pdf" class="postlink">http://example.org/article/S0883-9441(11)0483-7/pdf</a>
\ No newline at end of file diff --git a/tests/text_processing/tickets_data/PHPBB3-14260.txt b/tests/text_processing/tickets_data/PHPBB3-14260.txt new file mode 100644 index 0000000000..f95523c00e --- /dev/null +++ b/tests/text_processing/tickets_data/PHPBB3-14260.txt @@ -0,0 +1 @@ +http://example.org/article/S0883-9441(11)0483-7/pdf
\ No newline at end of file diff --git a/tests/text_processing/tickets_test.php b/tests/text_processing/tickets_test.php index 8c48a3f4a9..6230191a69 100644 --- a/tests/text_processing/tickets_test.php +++ b/tests/text_processing/tickets_test.php @@ -11,10 +11,6 @@ * */ -require_once __DIR__ . '/../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../phpBB/includes/functions_content.php'; -require_once __DIR__ . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_text_processing_tickets_test extends phpbb_test_case { /** diff --git a/tests/text_reparser/base_test.php b/tests/text_reparser/base_test.php index 2223ead9a6..af2d56ea51 100644 --- a/tests/text_reparser/base_test.php +++ b/tests/text_reparser/base_test.php @@ -10,8 +10,7 @@ * 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'; class phpbb_textreparser_base_test extends phpbb_database_test_case diff --git a/tests/text_reparser/plugins/contact_admin_info_test.php b/tests/text_reparser/plugins/contact_admin_info_test.php index 1dc03834b6..757b02be39 100644 --- a/tests/text_reparser/plugins/contact_admin_info_test.php +++ b/tests/text_reparser/plugins/contact_admin_info_test.php @@ -10,8 +10,7 @@ * 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'; class phpbb_textreparser_contact_admin_info_test extends phpbb_database_test_case diff --git a/tests/text_reparser/plugins/poll_option_test.php b/tests/text_reparser/plugins/poll_option_test.php index dfa3a030ed..177faac51d 100644 --- a/tests/text_reparser/plugins/poll_option_test.php +++ b/tests/text_reparser/plugins/poll_option_test.php @@ -10,8 +10,7 @@ * 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'; class phpbb_textreparser_poll_option_test extends phpbb_database_test_case diff --git a/tests/text_reparser/plugins/test_row_based_plugin.php b/tests/text_reparser/plugins/test_row_based_plugin.php index e8218dfdd6..3e9ff09448 100644 --- a/tests/text_reparser/plugins/test_row_based_plugin.php +++ b/tests/text_reparser/plugins/test_row_based_plugin.php @@ -10,8 +10,7 @@ * 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 diff --git a/tests/tree/nestedset_forum_base.php b/tests/tree/nestedset_forum_base.php index 647fcef2af..3daa75b2e4 100644 --- a/tests/tree/nestedset_forum_base.php +++ b/tests/tree/nestedset_forum_base.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_tests_tree_nestedset_forum_base extends phpbb_database_test_case { public function getDataSet() diff --git a/tests/upload/filespec_test.php b/tests/upload/filespec_test.php index 1351b46002..18b6deed1f 100644 --- a/tests/upload/filespec_test.php +++ b/tests/upload/filespec_test.php @@ -11,9 +11,6 @@ * */ -require_once __DIR__ . '/../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_filespec_test extends phpbb_test_case { const TEST_COUNT = 100; diff --git a/tests/upload/fileupload_test.php b/tests/upload/fileupload_test.php index 05cb8dcf93..fb72823f08 100644 --- a/tests/upload/fileupload_test.php +++ b/tests/upload/fileupload_test.php @@ -11,8 +11,6 @@ * */ -require_once __DIR__ . '/../../phpBB/includes/functions.php'; -require_once __DIR__ . '/../../phpBB/includes/utf/utf_tools.php'; require_once __DIR__ . '/../mock/filespec.php'; class phpbb_fileupload_test extends phpbb_test_case diff --git a/tests/upload/imagesize_test.php b/tests/upload/imagesize_test.php index d20e866dab..5429bb5c5e 100644 --- a/tests/upload/imagesize_test.php +++ b/tests/upload/imagesize_test.php @@ -12,8 +12,6 @@ * */ -require_once(__DIR__ . '/../../phpBB/includes/functions.php'); - class phpbb_upload_imagesize_test extends \phpbb_test_case { /** @var \FastImageSize\FastImageSize */ diff --git a/tests/user/user_loader_test.php b/tests/user/user_loader_test.php index 8d1f43707b..f871f324ca 100644 --- a/tests/user/user_loader_test.php +++ b/tests/user/user_loader_test.php @@ -11,8 +11,6 @@ * */ -include_once(__DIR__ . '/../../phpBB/includes/utf/utf_tools.php'); - class phpbb_user_loader_test extends phpbb_database_test_case { protected $db; diff --git a/tests/utf/utf8_clean_string_test.php b/tests/utf/utf8_clean_string_test.php index 2bb65387e0..4b3c8a5a25 100644 --- a/tests/utf/utf8_clean_string_test.php +++ b/tests/utf/utf8_clean_string_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_utf_utf8_clean_string_test extends phpbb_test_case { public function cleanable_strings() diff --git a/tests/utf/utf8_wordwrap_test.php b/tests/utf/utf8_wordwrap_test.php index ab053e2911..8906595d33 100644 --- a/tests/utf/utf8_wordwrap_test.php +++ b/tests/utf/utf8_wordwrap_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/utf/utf_tools.php'; - class phpbb_utf_utf8_wordwrap_test extends phpbb_test_case { public function test_utf8_wordwrap_ascii() diff --git a/tests/wrapper/gmgetdate_test.php b/tests/wrapper/gmgetdate_test.php index 2e55a78d21..08ee491c0f 100644 --- a/tests/wrapper/gmgetdate_test.php +++ b/tests/wrapper/gmgetdate_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_wrapper_gmgetdate_test extends phpbb_test_case { public static function phpbb_gmgetdate_data() diff --git a/tests/wrapper/mt_rand_test.php b/tests/wrapper/mt_rand_test.php index d190182286..8d370dee2a 100644 --- a/tests/wrapper/mt_rand_test.php +++ b/tests/wrapper/mt_rand_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_wrapper_mt_rand_test extends phpbb_test_case { public function test_max_equals_min() diff --git a/tests/wrapper/phpbb_php_ini_test.php b/tests/wrapper/phpbb_php_ini_test.php index 9f46a78d5b..5827744702 100644 --- a/tests/wrapper/phpbb_php_ini_test.php +++ b/tests/wrapper/phpbb_php_ini_test.php @@ -12,7 +12,6 @@ */ require_once dirname(__FILE__) . '/phpbb_php_ini_fake.php'; -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; class phpbb_wrapper_phpbb_php_ini_test extends phpbb_test_case { diff --git a/tests/wrapper/version_compare_test.php b/tests/wrapper/version_compare_test.php index 93d9e0117d..8260d99504 100644 --- a/tests/wrapper/version_compare_test.php +++ b/tests/wrapper/version_compare_test.php @@ -11,8 +11,6 @@ * */ -require_once dirname(__FILE__) . '/../../phpBB/includes/functions.php'; - class phpbb_wrapper_version_compare_test extends phpbb_test_case { public function test_two_parameters() |