From 07d75791be0b5440e83ad4bf9f6b00beac505a77 Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Mon, 15 Sep 2025 17:49:32 -0700 Subject: [PATCH 1/2] [ticket/17542] Mock event dispatcher override early exits PHPBB-17542 --- tests/mock/event_dispatcher.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tests/mock/event_dispatcher.php b/tests/mock/event_dispatcher.php index fa8b4a1036..654a08d7f1 100644 --- a/tests/mock/event_dispatcher.php +++ b/tests/mock/event_dispatcher.php @@ -22,8 +22,20 @@ class phpbb_mock_event_dispatcher extends \phpbb\event\dispatcher { } - public function trigger_event($eventName, $data = array()) + public function trigger_event($eventName, $data = array()): array { - return array(); + // Ensure tests never hard-exit when phpBB calls exit_handler() + if ($eventName === 'core.exit_handler') + { + // Set the override flag so exit_handler() returns instead of exit; + if (is_array($data)) + { + $data['exit_handler_override'] = true; + } + return (array) $data; + } + + // Default behaviour of the mock: return the input data unchanged + return (array) $data; } } From dac58f53d735e6bb41402c390bd2ac1192446f68 Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Tue, 16 Sep 2025 13:14:39 -0700 Subject: [PATCH 2/2] [ticket/17542] Optimize and simplify logic PHPBB-17542 --- tests/mock/event_dispatcher.php | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/tests/mock/event_dispatcher.php b/tests/mock/event_dispatcher.php index 654a08d7f1..2f0f142905 100644 --- a/tests/mock/event_dispatcher.php +++ b/tests/mock/event_dispatcher.php @@ -24,18 +24,13 @@ class phpbb_mock_event_dispatcher extends \phpbb\event\dispatcher public function trigger_event($eventName, $data = array()): array { - // Ensure tests never hard-exit when phpBB calls exit_handler() + $data = (array) $data; + if ($eventName === 'core.exit_handler') { - // Set the override flag so exit_handler() returns instead of exit; - if (is_array($data)) - { - $data['exit_handler_override'] = true; - } - return (array) $data; + $data['exit_handler_override'] = true; } - // Default behaviour of the mock: return the input data unchanged - return (array) $data; + return $data; } }