From b404606a9fb053a093f0ec21105af76f066ac6a2 Mon Sep 17 00:00:00 2001 From: Marc Alexander Date: Thu, 9 Jan 2025 20:22:48 +0100 Subject: [PATCH] [ticket/17459] Add support for deprecated events to md_exporter PHPBB-17459 --- phpBB/phpbb/event/md_exporter.php | 11 +++-- tests/event/fixtures/normal_events.md.test | 16 +++++++ tests/event/md_exporter_test.php | 55 ++++++++++++++++++++++ 3 files changed, 79 insertions(+), 3 deletions(-) diff --git a/phpBB/phpbb/event/md_exporter.php b/phpBB/phpbb/event/md_exporter.php index 04e5f91ca2..d89ac512f9 100644 --- a/phpBB/phpbb/event/md_exporter.php +++ b/phpBB/phpbb/event/md_exporter.php @@ -169,7 +169,7 @@ class md_exporter list($file_details, $details) = explode("\n* Since: ", $details, 2); - $changed_versions = array(); + $changed_versions = []; if (strpos($details, "\n* Changed: ") !== false) { list($since, $details) = explode("\n* Changed: ", $details, 2); @@ -184,7 +184,11 @@ class md_exporter else { list($since, $description) = explode("\n* Purpose: ", $details, 2); - $changed_versions = array(); + } + + if (str_contains($since, "\n* Deprecated: ")) + { + list($since, $deprecated) = explode("\n* Deprecated: ", $since, 2); } $files = $this->validate_file_list($file_details); @@ -225,6 +229,7 @@ class md_exporter 'event' => $this->current_event, 'files' => $files, 'since' => $since, + 'deprecated' => $deprecated ?? '', 'changed' => $changes, 'description' => $description, ); @@ -451,7 +456,7 @@ class md_exporter { if (!$this->validate_version($since)) { - throw new \LogicException("Invalid since information found for event '{$this->current_event}'"); + throw new \LogicException("Invalid since information found for event '{$this->current_event}': {$since}"); } return $since; diff --git a/tests/event/fixtures/normal_events.md.test b/tests/event/fixtures/normal_events.md.test index 47921c4e57..a045bd42dd 100644 --- a/tests/event/fixtures/normal_events.md.test +++ b/tests/event/fixtures/normal_events.md.test @@ -18,3 +18,19 @@ acp_bbcodes_actions_prepend2 * Changed: 3.1.0-a5 Moved up * Changed: 3.1.0-a6 Moved down * Purpose: desc2 + +acp_bbcodes_actions_prepend2_deprecated +=== +* Location: adm/style/acp_bbcodes.html +* Since: 3.1.0-a4 +* Deprecated: 3.1.0-a6 +* Changed: 3.1.0-a5 Moved up +* Changed: 3.1.0-a6 Moved down +* Purpose: desc2 + +acp_bbcodes_actions_prepend_deprecated +=== +* Location: adm/style/acp_bbcodes.html +* Since: 3.1.0-a5 +* Deprecated: 3.1.0-a6 +* Purpose: desc2 diff --git a/tests/event/md_exporter_test.php b/tests/event/md_exporter_test.php index b9c5a531fc..ee86c2f161 100644 --- a/tests/event/md_exporter_test.php +++ b/tests/event/md_exporter_test.php @@ -24,6 +24,7 @@ class phpbb_event_md_exporter_test extends phpbb_test_case 'adm' => array('acp_bbcodes.html'), ), 'since' => '3.1.0-a3', + 'deprecated' => '', 'changed' => array( '3.1.0-a4' => '', ), @@ -36,6 +37,7 @@ class phpbb_event_md_exporter_test extends phpbb_test_case 'adm' => array('acp_bbcodes.html'), ), 'since' => '3.1.0-a5', + 'deprecated' => '', 'changed' => array(), 'description' => 'desc2' . "\n", ), @@ -46,12 +48,38 @@ class phpbb_event_md_exporter_test extends phpbb_test_case 'adm' => array('acp_bbcodes.html'), ), 'since' => '3.1.0-a4', + 'deprecated' => '', 'changed' => array( '3.1.0-a5' => 'Moved up', '3.1.0-a6' => 'Moved down', ), 'description' => 'desc2' . "\n", ), + 'acp_bbcodes_actions_prepend2_deprecated' => array( + 'event' => 'acp_bbcodes_actions_prepend2_deprecated', + 'files' => array( + 'prosilver' => array(), + 'adm' => array('acp_bbcodes.html'), + ), + 'since' => '3.1.0-a4', + 'deprecated' => '3.1.0-a6', + 'changed' => array( + '3.1.0-a5' => 'Moved up', + '3.1.0-a6' => 'Moved down', + ), + 'description' => 'desc2' . "\n", + ), + 'acp_bbcodes_actions_prepend_deprecated' => array( + 'event' => 'acp_bbcodes_actions_prepend_deprecated', + 'files' => array( + 'prosilver' => array(), + 'adm' => array('acp_bbcodes.html'), + ), + 'since' => '3.1.0-a5', + 'deprecated' => '3.1.0-a6', + 'changed' => array(), + 'description' => 'desc2' . "\n", + ), )), array('normal_events.md.test', '3.1.0-a5', '3.1.0-a5', array( 'acp_bbcodes_actions_prepend' => array( @@ -61,6 +89,7 @@ class phpbb_event_md_exporter_test extends phpbb_test_case 'adm' => array('acp_bbcodes.html'), ), 'since' => '3.1.0-a5', + 'deprecated' => '', 'changed' => array(), 'description' => 'desc2' . "\n", ), @@ -71,12 +100,38 @@ class phpbb_event_md_exporter_test extends phpbb_test_case 'adm' => array('acp_bbcodes.html'), ), 'since' => '3.1.0-a4', + 'deprecated' => '', 'changed' => array( '3.1.0-a5' => 'Moved up', '3.1.0-a6' => 'Moved down', ), 'description' => 'desc2' . "\n", ), + 'acp_bbcodes_actions_prepend2_deprecated' => array( + 'event' => 'acp_bbcodes_actions_prepend2_deprecated', + 'files' => array( + 'prosilver' => array(), + 'adm' => array('acp_bbcodes.html'), + ), + 'since' => '3.1.0-a4', + 'deprecated' => '3.1.0-a6', + 'changed' => array( + '3.1.0-a5' => 'Moved up', + '3.1.0-a6' => 'Moved down', + ), + 'description' => 'desc2' . "\n", + ), + 'acp_bbcodes_actions_prepend_deprecated' => array( + 'event' => 'acp_bbcodes_actions_prepend_deprecated', + 'files' => array( + 'prosilver' => array(), + 'adm' => array('acp_bbcodes.html'), + ), + 'since' => '3.1.0-a5', + 'deprecated' => '3.1.0-a6', + 'changed' => array(), + 'description' => 'desc2' . "\n", + ), )), ); }