diff --git a/phpBB/config/default/container/services_messenger.yml b/phpBB/config/default/container/services_messenger.yml index 83037d6427..ff7df470c4 100644 --- a/phpBB/config/default/container/services_messenger.yml +++ b/phpBB/config/default/container/services_messenger.yml @@ -20,23 +20,28 @@ services: - '@request' - '@user' - '@messenger.queue' + - '@path_helper' + - '@ext.manager' + - '@template.twig.extensions.collection' + - '@template.twig.lexer' + - '%core.template.cache_path%' messenger.method.email: - class: phpbb\messenger\method\email + class: phpbb\messenger\method\phpbb_email shared: false parent: messenger.method.base calls: - - [init, []] + - [reset, []] - [set_transport, []] tags: - { name: messenger.method } messenger.method.jabber: - class: phpbb\messenger\method\jabber + class: phpbb\messenger\method\phpbb_jabber shared: false parent: messenger.method.base calls: - - [init, []] + - [reset, []] tags: - { name: messenger.method } diff --git a/phpBB/config/installer/container/services_install_finish.yml b/phpBB/config/installer/container/services_install_finish.yml index c9acdad025..9eb05b8a44 100644 --- a/phpBB/config/installer/container/services_install_finish.yml +++ b/phpBB/config/installer/container/services_install_finish.yml @@ -23,6 +23,7 @@ services: - '@installer.helper.container_factory' - '@installer.helper.config' - '@installer.helper.iohandler' + - '%core.root_path%' tags: - { name: install_finish, order: 3 } diff --git a/phpBB/includes/ucp/ucp_register.php b/phpBB/includes/ucp/ucp_register.php index 734c83089b..92a54a37cb 100644 --- a/phpBB/includes/ucp/ucp_register.php +++ b/phpBB/includes/ucp/ucp_register.php @@ -459,7 +459,7 @@ class ucp_register if ($config['email_enable']) { $messenger = $phpbb_container->get('messenger.method_collection'); - $email = $this->messenger->offsetGet('messenger.method.email'); + $email = $messenger->offsetGet('messenger.method.email'); $email->set_use_queue(false); $email->template($email_template, $data['lang']); $email->to($data['email'], $data['username']); diff --git a/phpBB/phpbb/console/command/user/add.php b/phpBB/phpbb/console/command/user/add.php index 3a54cc409f..9813608034 100644 --- a/phpBB/phpbb/console/command/user/add.php +++ b/phpBB/phpbb/console/command/user/add.php @@ -325,6 +325,7 @@ class add extends command 'U_ACTIVATE' => generate_board_url() . "/ucp.{$this->php_ext}?mode=activate&u=$user_id&k=$user_actkey", ]); $email->send(); + } /** * Get user activation key diff --git a/phpBB/phpbb/cron/task/core/queue.php b/phpBB/phpbb/cron/task/core/queue.php index 5e1f0d1be9..9395a538de 100644 --- a/phpBB/phpbb/cron/task/core/queue.php +++ b/phpBB/phpbb/cron/task/core/queue.php @@ -13,8 +13,7 @@ namespace phpbb\cron\task\core; -use \phpbb\config\config; -use \phpbb\messenger\queue; +use phpbb\config\config; /** * Queue cron task. Sends email and jabber messages queued by other scripts. @@ -24,7 +23,7 @@ class queue extends \phpbb\cron\task\base /** var config */ protected $config; - /** var queue */ + /** var \phpbb\messenger\queue */ protected $queue; /** var string */ @@ -35,9 +34,9 @@ class queue extends \phpbb\cron\task\base * * @param config $config The config * @param string $queue_cache_file The messenger file queue cache filename - * @param queue $queue The messenger file queue object + * @param \phpbb\messenger\queue $queue The messenger file queue object */ - public function __construct(config $config, queue $queue, $queue_cache_file) + public function __construct(config $config, \phpbb\messenger\queue $queue, $queue_cache_file) { $this->config = $config; $this->queue = $queue; diff --git a/phpBB/phpbb/install/module/install_finish/task/notify_user.php b/phpBB/phpbb/install/module/install_finish/task/notify_user.php index 4d3402a6f5..8c973311e5 100644 --- a/phpBB/phpbb/install/module/install_finish/task/notify_user.php +++ b/phpBB/phpbb/install/module/install_finish/task/notify_user.php @@ -42,6 +42,9 @@ class notify_user extends \phpbb\install\task_base /** @var log_interface */ protected $log; + /** @var string */ + protected $phpbb_root_path; + /** @var user */ protected $user; @@ -54,8 +57,9 @@ class notify_user extends \phpbb\install\task_base * @param container_factory $container * @param config $install_config * @param iohandler_interface $iohandler + * @param string $phpbb_root_path */ - public function __construct(container_factory $container, config $install_config, iohandler_interface $iohandler) + public function __construct(container_factory $container, config $install_config, iohandler_interface $iohandler, $phpbb_root_path) { $this->install_config = $install_config; $this->iohandler = $iohandler; @@ -64,6 +68,7 @@ class notify_user extends \phpbb\install\task_base $this->log = $container->get('log'); $this->user = $container->get('user'); $this->messenger = $container->get('messenger.method_collection'); + $this->phpbb_root_path = $phpbb_root_path; // We need to reload config for cases when it doesn't have all values /** @var \phpbb\cache\driver\driver_interface $cache */ diff --git a/phpBB/phpbb/message/admin_form.php b/phpBB/phpbb/message/admin_form.php index ae1c1d8614..2c3305dc03 100644 --- a/phpBB/phpbb/message/admin_form.php +++ b/phpBB/phpbb/message/admin_form.php @@ -85,7 +85,7 @@ class admin_form extends form /** * {inheritDoc} */ - public function submit(\messenger $messenger) + public function submit(\phpbb\di\service_collection $messenger) { if (!$this->subject) { diff --git a/phpBB/phpbb/message/topic_form.php b/phpBB/phpbb/message/topic_form.php index e8344417ef..facde9a462 100644 --- a/phpBB/phpbb/message/topic_form.php +++ b/phpBB/phpbb/message/topic_form.php @@ -108,7 +108,7 @@ class topic_form extends form /** * {inheritDoc} */ - public function submit(\messenger $messenger) + public function submit(\phpbb\di\service_collection $messenger) { if (!$this->recipient_address || !preg_match('/^' . get_preg_expression('email') . '$/i', $this->recipient_address)) { diff --git a/phpBB/phpbb/message/user_form.php b/phpBB/phpbb/message/user_form.php index 007e575407..46a012297d 100644 --- a/phpBB/phpbb/message/user_form.php +++ b/phpBB/phpbb/message/user_form.php @@ -96,7 +96,7 @@ class user_form extends form /** * {inheritDoc} */ - public function submit(\messenger $messenger) + public function submit(\phpbb\di\service_collection $messenger) { if (!$this->subject) { diff --git a/phpBB/phpbb/messenger/method/base.php b/phpBB/phpbb/messenger/method/base.php index 28b9cde636..4dfbff4559 100644 --- a/phpBB/phpbb/messenger/method/base.php +++ b/phpBB/phpbb/messenger/method/base.php @@ -14,12 +14,16 @@ namespace phpbb\messenger\method; use phpbb\config\config; +use phpbb\di\service_collection; use phpbb\event\dispatcher; +use phpbb\extension\manager; use phpbb\language\language; use phpbb\log\log_interface; +use phpbb\path_helper; use phpbb\request\request; use phpbb\messenger\queue; use phpbb\template\template; +use phpbb\template\twig\lexer; use phpbb\user; /** @@ -36,6 +40,9 @@ abstract class base /** @var dispatcher */ protected $dispatcher; + /** @var manager */ + protected $ext_manager; + /** @var language */ protected $language; @@ -48,6 +55,9 @@ abstract class base /** @var queue */ protected $queue; + /** @var path_helper */ + protected $path_helper; + /** @var request */ protected $request; @@ -57,6 +67,15 @@ abstract class base /** @var template */ protected $template; + /** @var string */ + protected $template_cache_path; + + /** @var service_collection */ + protected $twig_extensions_collection; + + /** @var lexer */ + protected $twig_lexer; + /** @var bool */ protected $use_queue = true; @@ -73,8 +92,26 @@ abstract class base * @param request $request * @param user $user * @param queue $queue + * @param path_helper $path_helper + * @param manager $ext_manager + * @param service_collection $twig_extensions_collection + * @param lexer $twig_lexer + * @param string $template_cache_path */ - function __construct(config $config, dispatcher $dispatcher, language $language, log_interface $log, request $request, user $user, queue $queue) + function __construct( + config $config, + dispatcher $dispatcher, + language $language, + log_interface $log, + request $request, + user $user, + queue $queue, + path_helper $path_helper, + manager $ext_manager, + service_collection $twig_extensions_collection, + lexer $twig_lexer, + $template_cache_path + ) { $this->config = $config; $this->dispatcher = $dispatcher; @@ -83,6 +120,11 @@ abstract class base $this->request = $request; $this->user = $user; $this->queue = $queue; + $this->path_helper = $path_helper; + $this->ext_manager = $ext_manager; + $this->twig_extensions_collection = $twig_extensions_collection; + $this->twig_lexer = $twig_lexer; + $this->template_cache_path = $template_cache_path; $this->set_use_queue(); } @@ -91,19 +133,7 @@ abstract class base * Get messenger method id * @return mixed */ - abstract public function get_id() - { - return; - } - - /** - * get messenger method fie queue object name - * @return string - */ - abstract public function get_queue_object_name($user) - { - return ''; - } + abstract public function get_id(); /** * Sets the use of messenger queue flag @@ -120,13 +150,7 @@ abstract class base * * @return void */ - abstract public function reset() - { - $this->subject = $this->additional_headers = []; - $this->msg = ''; - $this->use_queue = true; - unset($this->template); - } + abstract public function reset(); /** * Set addresses for to/im as available @@ -134,9 +158,13 @@ abstract class base * @param array $user User row * @return void */ - abstract public function set_addresses($user) - { - } + abstract public function set_addresses($user); + + /** + * Get messenger method fie queue object name + * @return string + */ + abstract public function get_queue_object_name(); /** * Set up subject for mail @@ -152,8 +180,8 @@ abstract class base /** * Adds antiabuse headers * - * @param \phpbb\config\config $config Config object - * @param \phpbb\user $user User object + * @param config $config Config object + * @param user $user User object * @return void */ public function anti_abuse_headers($config, $user) @@ -185,9 +213,7 @@ abstract class base * Send out messages * @return bool */ - abstract protected function send() - { - } + abstract protected function send(); /** * Send messages from the queue @@ -195,9 +221,7 @@ abstract class base * @param array $queue_data Queue data array * @return void */ - abstract public function process_queue(&$queue_data) - { - } + abstract public function process_queue(&$queue_data); /** * Set email template to use @@ -336,8 +360,8 @@ abstract class base * Event to modify the template before parsing * * @event core.modify_notification_template - * @var string subject The message subject - * @var \phpbb\template\template template The (readonly) template object + * @var string subject The message subject + * @var template template The (readonly) template object * @since 3.2.4-RC1 * @changed 4.0.0-a1 Removed vars: method, break. */ @@ -395,11 +419,10 @@ abstract class base /** * Add error message to log * - * @param string $type Error type: EMAIL / etc * @param string $msg Error message text * @return void */ - public function error($type, $msg) + public function error($msg) { // Session doesn't exist, create it if (!isset($this->user->session_id) || $this->user->session_id === '') @@ -407,6 +430,7 @@ abstract class base $this->user->session_begin(); } + $type = strtoupper($this->get_queue_object_name()); $calling_page = html_entity_decode($this->request->server('PHP_SELF'), ENT_COMPAT); $message = '' . $type . '
' . htmlspecialchars($calling_page, ENT_COMPAT) . '

' . $msg . '
'; $this->log->add('critical', $this->user->data['user_id'], $this->user->ip, 'LOG_ERROR_' . $type, false, [$message]); @@ -431,32 +455,32 @@ abstract class base */ protected function setup_template() { - if ($this->template instanceof \phpbb\template\template) + if (isset($this->template) && $this->template instanceof template) { return; } $template_environment = new \phpbb\template\twig\environment( $this->config, - $this->phpbb_container->get('filesystem'), - $this->phpbb_container->get('path_helper'), - $this->phpbb_container->getParameter('core.template.cache_path'), - $this->phpbb_container->get('ext.manager'), + new \phpbb\filesystem\filesystem(), + $this->path_helper, + $this->template_cache_path, + $this->ext_manager, new \phpbb\template\twig\loader(), $this->dispatcher, [] ); - $template_environment->setLexer($this->phpbb_container->get('template.twig.lexer')); + $template_environment->setLexer($this->twig_lexer); $this->template = new \phpbb\template\twig\twig( - $this->phpbb_container->get('path_helper'), + $this->path_helper, $this->config, new \phpbb\template\context(), $template_environment, - $this->phpbb_container->getParameter('core.template.cache_path'), + $this->template_cache_path, $this->user, - $this->phpbb_container->get('template.twig.extensions.collection'), - $this->phpbb_container->get('ext.manager') + $this->twig_extensions_collection, + $this->ext_manager ); } diff --git a/phpBB/phpbb/messenger/method/email.php b/phpBB/phpbb/messenger/method/phpbb_email.php similarity index 88% rename from phpBB/phpbb/messenger/method/email.php rename to phpBB/phpbb/messenger/method/phpbb_email.php index 1968c6771e..768ba27b45 100644 --- a/phpBB/phpbb/messenger/method/email.php +++ b/phpBB/phpbb/messenger/method/phpbb_email.php @@ -22,7 +22,7 @@ use Symfony\Component\Mime\Header\Headers; /** * Messenger class */ -class email extends base +class phpbb_email extends base { /** @var array */ private const PRIORITY_MAP = [ @@ -58,7 +58,7 @@ class email extends base /** @var string */ protected $from; - /** @var Symfony\Component\Mime\Header\Headers */ + /** @var Headers */ protected $headers; /** @@ -79,13 +79,11 @@ class email extends base /** @var string */ protected $replyto = ''; - /** @var Symfony\Component\Mailer\Transport */ + /** @var Transport */ protected $transport; /** - * Get messenger method id - * - * @return int + * {@inheritDoc} */ public function get_id() { @@ -93,10 +91,9 @@ class email extends base } /** - * get messenger method fie queue object name - * @return string + * {@inheritDoc} */ - abstract public function get_queue_object_name($user) + public function get_queue_object_name() { return 'email'; } @@ -111,9 +108,7 @@ class email extends base } /** - * Inits/resets the data to default - * - * @return void + * {@inheritDoc} */ public function reset() { @@ -122,7 +117,10 @@ class email extends base $this->msg = $this->replyto = $this->from = ''; $this->mail_priority = Email::PRIORITY_NORMAL; - parent::reset(); + $this->subject = $this->additional_headers = []; + $this->msg = ''; + $this->use_queue = true; + unset($this->template); } /** @@ -136,10 +134,7 @@ class email extends base } /** - * Set address as available - * - * @param array $user User row - * @return void + * {@inheritDoc} */ public function set_addresses($user) { @@ -251,8 +246,8 @@ class email extends base */ public function header($header_name, $header_value) { - $header_name = trim($header_name); - $header_value = trim($header_value); + $header_name = $header_name; + $header_value = $header_value; // addMailboxListHeader() requires value to be array if ($this->get_header_method($header_name) == 'addMailboxListHeader') @@ -295,18 +290,6 @@ class email extends base $this->email->priority($priority); } - /** - * Add error message to log - * - * @param string $msg Error message text - * @return void - */ - public function error($msg) - { - $type = 'EMAIL/' . ($this->config['smtp_delivery']) ? 'SMTP' : 'PHP/mail()'; - parent::error($type, $msg); - } - /** * Detect proper Header class method to add header * @@ -448,15 +431,12 @@ class email extends base } /** - * Send messages from the queue - * - * @param array $queue_data Queue data array - * @return void + * {@inheritDoc} */ public function process_queue(&$queue_data) { $queue_object_name = $this->get_queue_object_name(); - $messages_count = count($queue_data[$queue_object_name]['data']; + $messages_count = count($queue_data[$queue_object_name]['data']); if (!$this->is_enabled() || !$messages_count) { @@ -480,8 +460,8 @@ class email extends base * Event to send message via external transport * * @event core.notification_message_process - * @var bool break Flag indicating if the function return after hook - * @var Symfony\Component\Mime\Email email The Symfony Email object + * @var bool break Flag indicating if the function return after hook + * @var Email email The Symfony Email object * @since 3.2.4-RC1 * @changed 4.0.0-a1 Added vars: email. Removed vars: addresses, subject, msg. */ @@ -515,7 +495,7 @@ class email extends base /** * Get mailer transport object * - * @return Symfony\Component\Mailer\Transport Symfony Mailer transport object + * @return Transport Symfony Mailer transport object */ public function get_transport() { @@ -527,7 +507,7 @@ class email extends base * * @return bool */ - protected function send() + public function send() { $this->prepare_message(); @@ -544,9 +524,9 @@ class email extends base * Event to send message via external transport * * @event core.notification_message_email - * @var string subject The message subject - * @var string msg The message text - * @var Symfony\Component\Mime\Email email The Symfony Email object + * @var string subject The message subject + * @var string msg The message text + * @var Email email The Symfony Email object * @since 3.2.4-RC1 * @changed 4.0.0-a1 Added vars: email. Removed vars: addresses, break */ @@ -587,10 +567,10 @@ class email extends base * Modify data before sending out emails with PHP's mail function * * @event core.phpbb_mail_before - * @var Symfony\Component\Mime\Email email The Symfony Email object - * @var string subject The message subject - * @var string msg The message text - * @var string headers The email headers + * @var Email email The Symfony Email object + * @var string subject The message subject + * @var string msg The message text + * @var string headers The email headers * @since 3.3.6-RC1 * @changed 4.0.0-a1 Added vars: email. Removed vars: to, eol, additional_parameters. */ @@ -621,10 +601,10 @@ class email extends base * Execute code after sending out emails with PHP's mail function * * @event core.phpbb_mail_after - * @var Symfony\Component\Mime\Email email The Symfony Email object - * @var string subject The message subject - * @var string msg The message text - * @var string headers The email headers + * @var Email email The Symfony Email object + * @var string subject The message subject + * @var string msg The message text + * @var string headers The email headers * @since 3.3.6-RC1 * @changed 4.0.0-a1 Added vars: email. Removed vars: to, eol, additional_parameters, $result. */ diff --git a/phpBB/phpbb/messenger/method/jabber.php b/phpBB/phpbb/messenger/method/phpbb_jabber.php similarity index 97% rename from phpBB/phpbb/messenger/method/jabber.php rename to phpBB/phpbb/messenger/method/phpbb_jabber.php index 9661efc64a..874f28d06a 100644 --- a/phpBB/phpbb/messenger/method/jabber.php +++ b/phpBB/phpbb/messenger/method/phpbb_jabber.php @@ -24,7 +24,7 @@ namespace phpbb\messenger\method; * Slightly modified by Acyd Burn (2006) * Refactored to a service (2023) */ -class jabber extends base +class phpbb_jabber extends base { /** @var string */ protected $connect_server; @@ -87,8 +87,8 @@ class jabber extends base * ->password($password) * ->ssl($use_ssl) * ->server($server) - * ->port($port) - * ->stream_options( + * ->port($port) + * ->stream_options( * 'verify_peer' => true, * 'verify_peer_name' => true, * 'allow_self_signed' => false, @@ -99,10 +99,10 @@ class jabber extends base public function init() { $this->username($this->config['jab_username']) - ->password($this->config['jab_password']) - ->ssl((bool) $this->config['jab_use_ssl']) - ->server($this->config['jab_host']) - ->port($this->config['jab_port']) + ->password($this->config['jab_password']) + ->ssl((bool) $this->config['jab_use_ssl']) + ->server($this->config['jab_host']) + ->port($this->config['jab_port']) ->stream_options['ssl'] = [ 'verify_peer' => $this->config['jab_verify_peer'], 'verify_peer_name' => $this->config['jab_verify_peer_name'], @@ -111,9 +111,7 @@ class jabber extends base } /** - * Get messenger method id - * - * @return int + * {@inheritDoc} */ public function get_id() { @@ -121,10 +119,9 @@ class jabber extends base } /** - * get messenger method fie queue object name - * @return string + * {@inheritDoc} */ - abstract public function get_queue_object_name($user) + public function get_queue_object_name() { return 'jabber'; } @@ -369,10 +366,7 @@ class jabber extends base } /** - * Set address as available - * - * @param array $user User row - * @return void + * {@inheritDoc} */ public function set_addresses($user) { @@ -403,16 +397,17 @@ class jabber extends base } /** - * Inits/resets the data to default - * - * @return void + * {@inheritDoc} */ public function reset() { $this->msg = ''; - $this->to = []; + $this->to = []; - parent::reset(); + $this->subject = $this->additional_headers = []; + $this->msg = ''; + $this->use_queue = true; + unset($this->template); } /** @@ -426,15 +421,12 @@ class jabber extends base } /** - * Send messages from the queue - * - * @param array $queue_data Queue data array - * @return void + * {@inheritDoc} */ public function process_queue(&$queue_data) { $queue_object_name = $this->get_queue_object_name(); - $messages_count = count($queue_data[$queue_object_name]['data']; + $messages_count = count($queue_data[$queue_object_name]['data']); if (!$this->is_enabled() || !$messages_count) { diff --git a/phpBB/phpbb/messenger/queue.php b/phpBB/phpbb/messenger/queue.php index eb2406e273..6245642dd7 100644 --- a/phpBB/phpbb/messenger/queue.php +++ b/phpBB/phpbb/messenger/queue.php @@ -121,7 +121,7 @@ class queue while ($messenger_collection_iterator->valid()) { $messenger_method = $messenger_collection_iterator->current(); - if (isset($this->queue_data[$messenger_method->get_queue_object_name()]) + if (isset($this->queue_data[$messenger_method->get_queue_object_name()])) { $messenger_method->process_queue($this->queue_data); } diff --git a/phpBB/phpbb/notification/method/email.php b/phpBB/phpbb/notification/method/email.php index dd181ac5a3..2c612367cc 100644 --- a/phpBB/phpbb/notification/method/email.php +++ b/phpBB/phpbb/notification/method/email.php @@ -27,13 +27,13 @@ use phpbb\di\service_collection; class email extends \phpbb\notification\method\messenger_base { - /** @var \phpbb\user */ + /** @var user */ protected $user; - /** @var \phpbb\config\config */ + /** @var config */ protected $config; - /** @var \phpbb\db\driver\driver_interface */ + /** @var driver_interface */ protected $db; /** @var string Notification emails table */ diff --git a/phpBB/phpbb/notification/method/jabber.php b/phpBB/phpbb/notification/method/jabber.php index 5765152139..4a0e52fc62 100644 --- a/phpBB/phpbb/notification/method/jabber.php +++ b/phpBB/phpbb/notification/method/jabber.php @@ -26,10 +26,10 @@ use phpbb\di\service_collection; class jabber extends \phpbb\notification\method\messenger_base { - /** @var \phpbb\user */ + /** @var user */ protected $user; - /** @var \phpbb\config\config */ + /** @var config */ protected $config; /** @var service_collection */ diff --git a/tests/console/user/activate_test.php b/tests/console/user/activate_test.php index 8eaaa4e4fc..5df59a3711 100644 --- a/tests/console/user/activate_test.php +++ b/tests/console/user/activate_test.php @@ -41,7 +41,8 @@ class phpbb_console_user_activate_test extends phpbb_console_user_base $this->notifications, $this->user_loader, $this->phpbb_root_path, - $this->php_ext + $this->php_ext, + $this->messenger_method_collection )); $command = $application->find('user:activate'); diff --git a/tests/console/user/add_test.php b/tests/console/user/add_test.php index 67f1c84e72..3e2d2cfedf 100644 --- a/tests/console/user/add_test.php +++ b/tests/console/user/add_test.php @@ -32,7 +32,8 @@ class phpbb_console_user_add_test extends phpbb_console_user_base $this->language, $this->passwords_manager, $this->phpbb_root_path, - $this->php_ext + $this->php_ext, + $this->messenger_method_collection )); $command = $application->find('user:add'); diff --git a/tests/console/user/base.php b/tests/console/user/base.php index 008ac23d05..7d14b9a664 100644 --- a/tests/console/user/base.php +++ b/tests/console/user/base.php @@ -105,6 +105,11 @@ abstract class phpbb_console_user_base extends phpbb_database_test_case $phpbb_container->setParameter('tables.user_notifications', 'phpbb_user_notifications'); + $this->messenger_method_collection = new \phpbb\di\service_collection($phpbb_container); + $this->messenger_method_collection->add('messenger.method.email'); + $this->messenger_method_collection->add('messenger.method.jabber'); + $phpbb_container->set('messenger.method_collection', $this->messenger_method_collection); + parent::setUp(); } diff --git a/tests/email/email_parsing_test.php b/tests/email/email_parsing_test.php index ff0854be21..8e536fcd7a 100644 --- a/tests/email/email_parsing_test.php +++ b/tests/email/email_parsing_test.php @@ -95,7 +95,8 @@ class phpbb_email_parsing_test extends phpbb_test_case $phpbb_container->set('template.twig.extensions.collection', $twig_extensions_collection); $twig->addExtension($twig_extension); - $phpbb_container->set('template.twig.lexer', new \phpbb\template\twig\lexer($twig)); + $twig_lexer = new \phpbb\template\twig\lexer($twig); + $phpbb_container->set('template.twig.lexer', $twig_lexer); $phpbb_container->set('dispatcher', $dispatcher); $phpbb_container->set('language', $lang); $phpbb_container->set('request', $request); @@ -111,13 +112,23 @@ class phpbb_email_parsing_test extends phpbb_test_case $core_cache_dir = $phpbb_root_path . 'cache/' . PHPBB_ENVIRONMENT . '/'; $phpbb_container->setParameter('core.cache_dir', $core_cache_dir); + $core_messenger_queue_file = $core_cache_dir . 'queue.' . $phpEx; $phpbb_container->setParameter('core.messenger_queue_file', $core_messenger_queue_file); + $messenger_method_collection = new \phpbb\di\service_collection($phpbb_container); + $messenger_method_collection->add('messenger.method.email'); $phpbb_container->set('messenger.method_collection', $messenger_method_collection); + $messenger_queue = new \phpbb\messenger\queue($config, $dispatcher, $messenger_method_collection, $core_messenger_queue_file); $phpbb_container->set('messenger.queue', $messenger_queue); - $this->email = new \phpbb\messenger\email($config, $dispatcher, $lang, $log, $request, $user, $messenger_queue); + + $this->email = new \phpbb\messenger\method\phpbb_email( + $config, $dispatcher, $lang, $log, $request, $user, $messenger_queue, + $phpbb_path_helper, $extension_manager, $twig_extensions_collection, $twig_lexer, + $cache_path + ); + $phpbb_container->set('messenger.method.email', $this->email); $reflection = new ReflectionObject($this->email); $this->reflection_template_property = $reflection->getProperty('template'); diff --git a/tests/notification/base.php b/tests/notification/base.php index 8e6f67c219..07fef3a1c5 100644 --- a/tests/notification/base.php +++ b/tests/notification/base.php @@ -146,6 +146,11 @@ abstract class phpbb_tests_notification_base extends phpbb_database_test_case $phpbb_container->addCompilerPass(new phpbb\di\pass\markpublic_pass()); + $messenger_method_collection = new \phpbb\di\service_collection($phpbb_container); + $messenger_method_collection->add('messenger.method.email'); + $messenger_method_collection->add('messenger.method.jabber'); + $phpbb_container->set('messenger.method_collection', $messenger_method_collection); + $phpbb_container->compile(); $this->notifications->setDependencies($this->auth, $this->config); diff --git a/tests/notification/notification_method_email_test.php b/tests/notification/notification_method_email_test.php index 6b464b1c42..15811cc968 100644 --- a/tests/notification/notification_method_email_test.php +++ b/tests/notification/notification_method_email_test.php @@ -105,6 +105,11 @@ class notification_method_email_test extends phpbb_tests_notification_base ) ); + $messenger_method_collection = new \phpbb\di\service_collection($phpbb_container); + $messenger_method_collection->add('messenger.method.email'); + $messenger_method_collection->add('messenger.method.jabber'); + $phpbb_container->set('messenger.method_collection', $messenger_method_collection); + $this->notification_method_email = $this->getMockBuilder('\phpbb\notification\method\email') ->setConstructorArgs([ $phpbb_container->get('user_loader'), @@ -113,7 +118,8 @@ class notification_method_email_test extends phpbb_tests_notification_base $phpbb_container->get('dbal.conn'), $phpbb_root_path, $phpEx, - $phpbb_container->getParameter('tables.notification_emails') + $phpbb_container->getParameter('tables.notification_emails'), + $phpbb_container->get('messenger.method_collection') ]) ->setMethods(['notify_using_messenger']) ->getMock(); diff --git a/tests/notification/submit_post_base.php b/tests/notification/submit_post_base.php index 124ac4d1b4..57b1242509 100644 --- a/tests/notification/submit_post_base.php +++ b/tests/notification/submit_post_base.php @@ -158,6 +158,12 @@ abstract class phpbb_notification_submit_post_base extends phpbb_database_test_c $phpbb_container->setParameter('tables.notification_push', 'phpbb_notification_push'); $phpbb_container->setParameter('tables.push_subscriptions', 'phpbb_push_subscriptions'); $phpbb_container->set('content.visibility', new \phpbb\content_visibility($auth, $config, $phpbb_dispatcher, $db, $user, $phpbb_root_path, $phpEx, FORUMS_TABLE, POSTS_TABLE, TOPICS_TABLE, USERS_TABLE)); + + $messenger_method_collection = new \phpbb\di\service_collection($phpbb_container); + $messenger_method_collection->add('messenger.method.email'); + $messenger_method_collection->add('messenger.method.jabber'); + $phpbb_container->set('messenger.method_collection', $messenger_method_collection); + $phpbb_container->addCompilerPass(new phpbb\di\pass\markpublic_pass()); $phpbb_container->compile();