From d14340db2ab6810eba38779cad978338c15014c8 Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Sun, 10 May 2026 10:40:21 -0700 Subject: [PATCH 1/7] Update tests for phpBB4 --- .github/workflows/tests.yml | 2 +- phpunit.xml.dist | 34 ++++++++--------- tests/acp/acp_module_test.php | 2 +- tests/controller/acp_controller_test.php | 2 +- tests/controller/log_controller_test.php | 2 +- tests/event/listener_test.php | 47 +++++++++++++++--------- tests/functional/frontend_test.php | 8 ++-- tests/service/acp_manager_test.php | 14 +++---- tests/service/consent_manager_test.php | 31 ++++++++-------- tests/service/media_manager_test.php | 6 +-- tests/system/ext_test.php | 4 +- 11 files changed, 80 insertions(+), 72 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0397672..ef4213d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -36,7 +36,7 @@ jobs: call-tests: name: Extension tests - uses: phpbb-extensions/test-framework/.github/workflows/tests.yml@3.3.x + uses: phpbb-extensions/test-framework/.github/workflows/tests.yml@master with: EXTNAME: phpbb/consentmanager CODECOV: 1 diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 574c6b9..572dd6a 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,16 +1,13 @@ - - + backupStaticProperties="false"> ./tests @@ -20,15 +17,16 @@ ./tests/functional/ - - - + + ./ - - ./language/ - ./migrations/ - ./tests/ - - - + + + ./language/ + ./migrations/ + ./tests/ + + diff --git a/tests/acp/acp_module_test.php b/tests/acp/acp_module_test.php index 5e4610e..a53174f 100644 --- a/tests/acp/acp_module_test.php +++ b/tests/acp/acp_module_test.php @@ -95,7 +95,7 @@ public function test_module_info() ], $this->module_manager->get_module_infos('acp', 'consentmanager_module')); } - public function module_auth_test_data() + public static function module_auth_test_data() { return [ // module_auth, expected result diff --git a/tests/controller/acp_controller_test.php b/tests/controller/acp_controller_test.php index 974e0f4..3f2d3f2 100644 --- a/tests/controller/acp_controller_test.php +++ b/tests/controller/acp_controller_test.php @@ -321,7 +321,7 @@ protected function create_request_mock(array $values = [], array $raw_values = [ { $request = $this->getMockBuilder('\phpbb\request\request') ->disableOriginalConstructor() - ->setMethods(['is_set_post', 'variable', 'raw_variable']) + ->onlyMethods(['is_set_post', 'variable', 'raw_variable']) ->getMock(); $request->method('is_set_post') diff --git a/tests/controller/log_controller_test.php b/tests/controller/log_controller_test.php index acda086..2e435cd 100644 --- a/tests/controller/log_controller_test.php +++ b/tests/controller/log_controller_test.php @@ -94,7 +94,7 @@ public function test_log_persists_valid_submission() ), json_decode($response->getContent(), true)); } - public function invalid_submission_data() + public static function invalid_submission_data() { return array( 'invalid hash' => array('invalid_hash', 403), diff --git a/tests/event/listener_test.php b/tests/event/listener_test.php index 87f111c..d0aca66 100644 --- a/tests/event/listener_test.php +++ b/tests/event/listener_test.php @@ -85,7 +85,7 @@ public function test_configure_iframe_renderer_delegates_to_media_manager() ])); } - public function inject_frontend_assigns_template_payload_data() + public static function inject_frontend_assigns_template_payload_data() { return [ 'front end' => [true], @@ -145,24 +145,35 @@ public function test_inject_frontend_assigns_template_payload($invoke) ]); $template->expects($invoke ? self::exactly(2) : self::never()) ->method('assign_block_vars') - ->withConsecutive( - ['CONSENTMANAGER_CATEGORIES', [ - 'ID' => 'necessary', - 'LABEL' => 'Necessary', - 'DESCRIPTION' => 'Required cookies.', - 'REQUIRED' => true, - 'services' => [ - [ - 'LABEL' => 'Cookie baker', - 'DESCRIPTION' => 'Delicious cookies', + ->willReturnCallback(function() use ($invoke) { + static $call = 0; + $args = func_get_args(); + if ($call === 0) + { + self::assertSame('CONSENTMANAGER_CATEGORIES', $args[0]); + self::assertSame([ + 'ID' => 'necessary', + 'LABEL' => 'Necessary', + 'DESCRIPTION' => 'Required cookies.', + 'REQUIRED' => true, + 'services' => [ + [ + 'LABEL' => 'Cookie baker', + 'DESCRIPTION' => 'Delicious cookies', + ], ], - ], - ]], - ['CONSENTMANAGER_CATEGORIES.CONSENTMANAGER_SERVICES', [ - 'LABEL' => 'Cookie baker', - 'DESCRIPTION' => 'Delicious cookies', - ]] - ); + ], $args[1]); + } + else + { + self::assertSame('CONSENTMANAGER_CATEGORIES.CONSENTMANAGER_SERVICES', $args[0]); + self::assertSame([ + 'LABEL' => 'Cookie baker', + 'DESCRIPTION' => 'Delicious cookies', + ], $args[1]); + } + $call++; + }); $listener = new class($helper, $this->language, $consent_manager, $template, $this->createMock('\phpbb\consentmanager\service\media_manager'), $invoke) extends \phpbb\consentmanager\event\listener { /** @var bool */ diff --git a/tests/functional/frontend_test.php b/tests/functional/frontend_test.php index d5fced6..40b1d0f 100644 --- a/tests/functional/frontend_test.php +++ b/tests/functional/frontend_test.php @@ -54,7 +54,7 @@ public function test_log_endpoint_rejects_invalid_json_payload() '{invalid' ); - $this->assertSame(400, self::$client->getResponse()->getStatus()); + $this->assertSame(400, self::$client->getResponse()->getStatusCode()); $this->assertSame(array( 'success' => false, 'error' => 'invalid_payload', @@ -79,7 +79,7 @@ public function test_log_endpoint_accepts_valid_anonymous_submission_without_per ); $response = json_decode(self::$client->getResponse()->getContent(), true); - $this->assertSame(200, self::$client->getResponse()->getStatus()); + $this->assertSame(200, self::$client->getResponse()->getStatusCode()); $this->assertSame(array('necessary', 'analytics'), $response['categories']); $this->assertSame($payload['version'], $response['version']); @@ -113,7 +113,7 @@ public function test_log_endpoint_persists_valid_authenticated_submission() ); $response = json_decode(self::$client->getResponse()->getContent(), true); - $this->assertSame(200, self::$client->getResponse()->getStatus()); + $this->assertSame(200, self::$client->getResponse()->getStatusCode()); $this->assertSame(array('necessary', 'analytics'), $response['categories']); $this->assertSame($payload['version'], $response['version']); @@ -146,7 +146,7 @@ public function test_log_endpoint_rejects_stale_version() ); $response = json_decode(self::$client->getResponse()->getContent(), true); - $this->assertSame(409, self::$client->getResponse()->getStatus()); + $this->assertSame(409, self::$client->getResponse()->getStatusCode()); $this->assertSame('version_mismatch', $response['error']); } diff --git a/tests/service/acp_manager_test.php b/tests/service/acp_manager_test.php index 12f56a0..a69af36 100644 --- a/tests/service/acp_manager_test.php +++ b/tests/service/acp_manager_test.php @@ -45,7 +45,7 @@ public function test_log_admin_settings_updated_delegates_to_phpbb_log() { $log = $this->getMockBuilder('\phpbb\log\log') ->disableOriginalConstructor() - ->setMethods(array('add')) + ->onlyMethods(array('add')) ->getMock(); $log->expects(self::once()) ->method('add') @@ -59,7 +59,7 @@ public function test_log_admin_reprompt_delegates_to_phpbb_log() { $log = $this->getMockBuilder('\phpbb\log\log') ->disableOriginalConstructor() - ->setMethods(array('add')) + ->onlyMethods(array('add')) ->getMock(); $log->expects(self::once()) ->method('add') @@ -73,7 +73,7 @@ public function test_log_admin_export_delegates_to_phpbb_log() { $log = $this->getMockBuilder('\phpbb\log\log') ->disableOriginalConstructor() - ->setMethods(array('add')) + ->onlyMethods(array('add')) ->getMock(); $log->expects(self::once()) ->method('add') @@ -338,7 +338,7 @@ public function test_save_settings_rejects_invalid_integrations($json) self::assertSame([$this->language->lang('ACP_CONSENTMANAGER_INVALID_INTEGRATIONS')], $errors); } - public function invalid_integrations_data() + public static function invalid_integrations_data() { return [ 'malformed json' => ['{not json'], @@ -376,7 +376,7 @@ public function test_save_settings_rejects_invalid_array_integrations($integrati self::assertSame($expected_errors, $errors); } - public function invalid_array_integrations_data() + public static function invalid_array_integrations_data() { return [ 'invalid entry' => [ @@ -518,10 +518,10 @@ public function test_stream_logs_csv_row_format_is_correct() self::assertCount(4, $row); // anonymized_id: 64-char hex - self::assertRegExp('/^[0-9a-f]{64}$/', $row[0]); + self::assertMatchesRegularExpression('/^[0-9a-f]{64}$/', $row[0]); // timestamp: ISO 8601 UTC - self::assertRegExp('/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/', $row[1]); + self::assertMatchesRegularExpression('/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$/', $row[1]); // consent_version self::assertSame('3', $row[2]); diff --git a/tests/service/consent_manager_test.php b/tests/service/consent_manager_test.php index 7841438..6f7c65d 100644 --- a/tests/service/consent_manager_test.php +++ b/tests/service/consent_manager_test.php @@ -51,7 +51,6 @@ protected function setUp(): void $symfony_request = new \phpbb\symfony_request($request); $this->path_helper = new \phpbb\path_helper( $symfony_request, - $this->filesystem, $request, $phpbb_root_path, $phpEx @@ -132,7 +131,7 @@ public function test_get_configured_integrations_uses_persistent_cache() $cached_manager = $this->getMockBuilder('\phpbb\consentmanager\service\consent_manager') ->setConstructorArgs($this->get_manager_constructor_args([], $config_text, new \phpbb_mock_event_dispatcher(), null, null, $this->language, $consent_cache)) - ->setMethods(['normalize_integrations']) + ->onlyMethods(['normalize_integrations']) ->getMock(); $cached_manager->expects(self::never()) ->method('normalize_integrations'); @@ -153,7 +152,7 @@ public function test_get_configured_integrations_reloads_after_persistent_cache_ $refreshed_manager = $this->getMockBuilder('\phpbb\consentmanager\service\consent_manager') ->setConstructorArgs($this->get_manager_constructor_args([], $config_text, new \phpbb_mock_event_dispatcher(), null, null, $this->language, $consent_cache)) - ->setMethods(['normalize_integrations']) + ->onlyMethods(['normalize_integrations']) ->getMock(); $refreshed_manager->expects(self::once()) ->method('normalize_integrations') @@ -188,7 +187,7 @@ public function test_get_configured_integrations_cache_ignores_asset_version_cha $cached_manager = $this->getMockBuilder('\phpbb\consentmanager\service\consent_manager') ->setConstructorArgs($this->get_manager_constructor_args(['assets_version' => 99], $config_text, new \phpbb_mock_event_dispatcher(), null, null, $this->language, $consent_cache)) - ->setMethods(['normalize_integrations']) + ->onlyMethods(['normalize_integrations']) ->getMock(); $cached_manager->expects(self::never()) ->method('normalize_integrations'); @@ -253,7 +252,7 @@ public function test_register_rejects_invalid_definitions($id, array $definition self::assertSame(array(), $manager->get_services()); } - public function invalid_registration_data() + public static function invalid_registration_data() { return array( 'invalid id' => array('bad id', array( @@ -278,7 +277,7 @@ public function test_register_discards_invalid_script_sources(array $definition) self::assertSame(array(), $this->get_service('vendor.bundle', $manager)['scripts']); } - public function invalid_script_source_data() + public static function invalid_script_source_data() { return array( 'multiple sources' => array(array( @@ -521,7 +520,7 @@ public function test_register_memoizes_template_assets_within_request() { $twig_environment = $this->getMockBuilder('\phpbb\template\twig\environment') ->disableOriginalConstructor() - ->setMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) + ->onlyMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) ->getMock(); $twig_environment->method('get_phpbb_root_path') ->willReturn($this->phpbb_root_path); @@ -550,7 +549,7 @@ public function test_register_re_resolves_template_assets_across_requests() { $first_twig_environment = $this->getMockBuilder('\phpbb\template\twig\environment') ->disableOriginalConstructor() - ->setMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) + ->onlyMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) ->getMock(); $first_twig_environment->method('get_phpbb_root_path') ->willReturn($this->phpbb_root_path); @@ -570,7 +569,7 @@ public function test_register_re_resolves_template_assets_across_requests() $second_twig_environment = $this->getMockBuilder('\phpbb\template\twig\environment') ->disableOriginalConstructor() - ->setMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) + ->onlyMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) ->getMock(); $second_twig_environment->method('get_phpbb_root_path') ->willReturn($this->phpbb_root_path); @@ -593,7 +592,7 @@ public function test_register_does_not_persist_failed_asset_resolution_across_re { $failing_twig_environment = $this->getMockBuilder('\phpbb\template\twig\environment') ->disableOriginalConstructor() - ->setMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) + ->onlyMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) ->getMock(); $failing_twig_environment->method('get_phpbb_root_path') ->willReturn($this->phpbb_root_path); @@ -613,7 +612,7 @@ public function test_register_does_not_persist_failed_asset_resolution_across_re $working_twig_environment = $this->getMockBuilder('\phpbb\template\twig\environment') ->disableOriginalConstructor() - ->setMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) + ->onlyMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) ->getMock(); $working_twig_environment->method('get_phpbb_root_path') ->willReturn($this->phpbb_root_path); @@ -868,7 +867,7 @@ public function test_normalize_integrations_handles_edge_cases($input, array $ex self::assertSame($this->get_language_messages($expected_error_specs), $errors); } - public function normalize_integrations_edge_case_data() + public static function normalize_integrations_edge_case_data() { return array( 'empty string' => array( @@ -1022,7 +1021,7 @@ public function test_has_server_consent_rejects_invalid_cookie_state($cookie_val self::assertFalse($manager->has_server_consent($category)); } - public function invalid_server_consent_cookie_data() + public static function invalid_server_consent_cookie_data() { return [ 'stale version' => [ @@ -1062,7 +1061,7 @@ public function test_register_resolves_template_assets_via_twig_lookup() { $twig_environment = $this->getMockBuilder('\phpbb\template\twig\environment') ->disableOriginalConstructor() - ->setMethods(array('get_phpbb_root_path', 'findTemplate')) + ->onlyMethods(array('get_phpbb_root_path', 'findTemplate')) ->getMock(); $twig_environment->method('get_phpbb_root_path') ->willReturn($this->phpbb_root_path); @@ -1086,7 +1085,7 @@ public function test_register_discards_missing_template_assets() { $twig_environment = $this->getMockBuilder('\phpbb\template\twig\environment') ->disableOriginalConstructor() - ->setMethods(array('get_phpbb_root_path', 'findTemplate')) + ->onlyMethods(array('get_phpbb_root_path', 'findTemplate')) ->getMock(); $twig_environment->method('get_phpbb_root_path') ->willReturn($this->phpbb_root_path); @@ -1137,7 +1136,7 @@ protected function get_manager_constructor_args(array $config_values = array(), { $twig_environment = $this->getMockBuilder('\phpbb\template\twig\environment') ->disableOriginalConstructor() - ->setMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) + ->onlyMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) ->getMock(); $twig_environment->method('get_phpbb_root_path') ->willReturn($this->phpbb_root_path); diff --git a/tests/service/media_manager_test.php b/tests/service/media_manager_test.php index f2624ab..6e0c166 100644 --- a/tests/service/media_manager_test.php +++ b/tests/service/media_manager_test.php @@ -174,7 +174,7 @@ public function test_configure_iframe_renderer_sets_media_allowed_parameter() $renderer = $this->getMockBuilder('\phpbb\textformatter\s9e\renderer') ->disableOriginalConstructor() - ->setMethods(['get_renderer']) + ->onlyMethods(['get_renderer']) ->getMock(); $renderer->expects(self::once()) ->method('get_renderer') @@ -193,7 +193,7 @@ public function test_configure_iframe_renderer_clears_media_allowed_parameter_wi $renderer = $this->getMockBuilder('\phpbb\textformatter\s9e\renderer') ->disableOriginalConstructor() - ->setMethods(['get_renderer']) + ->onlyMethods(['get_renderer']) ->getMock(); $renderer->expects(self::once()) ->method('get_renderer') @@ -227,7 +227,7 @@ public function test_build_iframe_placeholder_template_edge_cases($template, $re } } - public function build_iframe_placeholder_template_data() + public static function build_iframe_placeholder_template_data() { return [ 'no runtime iframes' => [ diff --git a/tests/system/ext_test.php b/tests/system/ext_test.php index 9504235..1f6de40 100644 --- a/tests/system/ext_test.php +++ b/tests/system/ext_test.php @@ -29,7 +29,7 @@ protected function setUp(): void parent::setUp(); $this->container = $this->getMockBuilder('\Symfony\Component\DependencyInjection\ContainerInterface')->disableOriginalConstructor()->getMock(); - $this->extension_finder = $this->getMockBuilder('\phpbb\finder')->disableOriginalConstructor()->getMock(); + $this->extension_finder = $this->getMockBuilder('\phpbb\finder\finder')->disableOriginalConstructor()->getMock(); $this->migrator = $this->getMockBuilder('\phpbb\db\migrator')->disableOriginalConstructor()->getMock(); } @@ -60,7 +60,7 @@ public function test_ext_returns_localized_error_when_not_enableable() $lang_loader = new \phpbb\language\language_file_loader($phpbb_root_path, $phpEx); $extension_manager = $this->getMockBuilder('\phpbb\extension\manager') ->disableOriginalConstructor() - ->setMethods(['get_extension_path']) + ->onlyMethods(['get_extension_path']) ->getMock(); $extension_manager->method('get_extension_path') ->with('phpbb/consentmanager', true) From 121e047ecca0e64c21943aa5a301fe38df9b1986 Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Tue, 12 May 2026 10:39:16 -0700 Subject: [PATCH 2/7] Fix tests --- tests/service/acp_manager_test.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/service/acp_manager_test.php b/tests/service/acp_manager_test.php index e75d4d6..6465a0a 100644 --- a/tests/service/acp_manager_test.php +++ b/tests/service/acp_manager_test.php @@ -94,7 +94,7 @@ public function test_log_admin_delete_delegates_to_phpbb_log() $log_args = ['admin', 7, '127.0.0.1', 'LOG_CONSENTMANAGER_DELETE']; $log = $this->getMockBuilder('\phpbb\log\log') ->disableOriginalConstructor() - ->setMethods(array('add')) + ->onlyMethods(array('add')) ->getMock(); $log->expects(self::once()) ->method('add') From 2addf3ed330fbae4a64b933539f83a748def04c9 Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Thu, 14 May 2026 08:22:52 -0700 Subject: [PATCH 3/7] Fix test deprecations --- tests/controller/acp_controller_test.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tests/controller/acp_controller_test.php b/tests/controller/acp_controller_test.php index 8270ee2..334ab84 100644 --- a/tests/controller/acp_controller_test.php +++ b/tests/controller/acp_controller_test.php @@ -210,7 +210,7 @@ public function test_handle_invalid_form_key($action, $manager_method, $log_acti $this->create_controller($this->create_request_mock([$action => 1]))->handle(); } - public function handle_invalid_form_key_data() + public static function handle_invalid_form_key_data() { return [ 'submit' => ['submit', 'save_settings'], @@ -255,7 +255,7 @@ public function test_handle_logs_invalid_form_key_before_processing(array $reque $this->create_controller($this->create_request_mock($request_values), self::EXPORT_URL)->handle_logs(); } - public function handle_logs_invalid_form_key_data() + public static function handle_logs_invalid_form_key_data() { return [ 'download csv' => [ @@ -333,7 +333,7 @@ public function test_handle_logs_delete_requests_confirmation_with_current_filte ], $expected_token_fields), self::$confirm_hidden_fields); } - public function handle_logs_delete_confirmation_data() + public static function handle_logs_delete_confirmation_data() { return [ 'with current csrf tokens' => [ @@ -430,7 +430,7 @@ public function test_handle_logs_invalid_filters_show_error($action, array $requ $this->create_controller($this->create_request_mock($request_values), self::EXPORT_URL)->handle_logs(); } - public function handle_logs_invalid_filter_data() + public static function handle_logs_invalid_filter_data() { $cases = [ 'invalid date from' => [ @@ -577,7 +577,7 @@ public function test_handle_logs_unknown_username_shows_error($action) ]), self::EXPORT_URL)->handle_logs(); } - public function handle_logs_unknown_username_data() + public static function handle_logs_unknown_username_data() { return [ 'download csv' => ['download_csv'], From 2ead2567de0e0596b50371c8c5555f10217f72f8 Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Thu, 14 May 2026 08:23:11 -0700 Subject: [PATCH 4/7] Remove unused service Fix Fix --- config/services.yml | 1 - service/consent_manager.php | 10 ++-------- tests/service/consent_manager_test.php | 6 ------ 3 files changed, 2 insertions(+), 15 deletions(-) diff --git a/config/services.yml b/config/services.yml index 41bd11d..5b24eda 100644 --- a/config/services.yml +++ b/config/services.yml @@ -17,7 +17,6 @@ services: - '@dispatcher' - '@template.twig.environment' - '@path_helper' - - '@filesystem' - '@request' phpbb.consentmanager.log_manager: diff --git a/service/consent_manager.php b/service/consent_manager.php index 8f2fbbb..1423bdd 100644 --- a/service/consent_manager.php +++ b/service/consent_manager.php @@ -13,7 +13,6 @@ use phpbb\config\config; use phpbb\config\db_text; use phpbb\event\dispatcher_interface; -use phpbb\filesystem\filesystem; use phpbb\language\language; use phpbb\path_helper; use phpbb\request\request_interface; @@ -47,9 +46,6 @@ class consent_manager implements consent_manager_interface /** @var path_helper */ protected $path_helper; - /** @var filesystem */ - protected $filesystem; - /** @var request_interface */ protected $request; @@ -87,10 +83,9 @@ class consent_manager implements consent_manager_interface * @param dispatcher_interface $dispatcher Event dispatcher * @param environment $twig_environment Twig environment * @param path_helper $path_helper Path helper - * @param filesystem $filesystem Filesystem helper * @param request_interface $request Request service */ - public function __construct(consent_cache $consent_cache, config $config, db_text $config_text, language $language, dispatcher_interface $dispatcher, environment $twig_environment, path_helper $path_helper, filesystem $filesystem, request_interface $request) + public function __construct(consent_cache $consent_cache, config $config, db_text $config_text, language $language, dispatcher_interface $dispatcher, environment $twig_environment, path_helper $path_helper, request_interface $request) { $this->consent_cache = $consent_cache; $this->config = $config; @@ -99,7 +94,6 @@ public function __construct(consent_cache $consent_cache, config $config, db_tex $this->dispatcher = $dispatcher; $this->twig_environment = $twig_environment; $this->path_helper = $path_helper; - $this->filesystem = $filesystem; $this->request = $request; } @@ -977,7 +971,7 @@ protected function resolve_local_asset_source($asset_path) return $this->local_asset_sources[$asset_path]; } - $template_asset = new asset($asset_path, $this->path_helper, $this->filesystem); + $template_asset = new asset($asset_path, $this->path_helper); if (!$this->is_valid_local_asset_path($asset_path) || !$template_asset->is_relative()) { return $this->local_asset_sources[$asset_path] = ''; diff --git a/tests/service/consent_manager_test.php b/tests/service/consent_manager_test.php index f321dc9..340f883 100644 --- a/tests/service/consent_manager_test.php +++ b/tests/service/consent_manager_test.php @@ -15,9 +15,6 @@ class consent_manager_test extends \phpbb_test_case /** @var \phpbb\language\language */ protected $language; - /** @var \phpbb\filesystem\filesystem */ - protected $filesystem; - /** @var \phpbb\path_helper */ protected $path_helper; @@ -41,8 +38,6 @@ protected function setUp(): void $this->language->add_lang('common', 'phpbb/consentmanager'); $this->language->add_lang('acp_consentmanager', 'phpbb/consentmanager'); - $this->filesystem = new \phpbb\filesystem\filesystem(); - $request = new \phpbb_mock_request(array(), array(), array(), array( 'HTTP_HOST' => 'example.com', 'REQUEST_URI' => '/index.php', @@ -1177,7 +1172,6 @@ protected function get_manager_constructor_args(array $config_values = array(), $dispatcher, $twig_environment, $this->path_helper, - $this->filesystem, $request, ]; } From 3f69adcfde427d9fdfbf2681fa14cade6f20fcb2 Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Thu, 14 May 2026 08:23:52 -0700 Subject: [PATCH 5/7] Add temporary new template event file for consent settings link --- .../template/event/overall_footer_right_side_prepend.html | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 styles/all/template/event/overall_footer_right_side_prepend.html diff --git a/styles/all/template/event/overall_footer_right_side_prepend.html b/styles/all/template/event/overall_footer_right_side_prepend.html new file mode 100644 index 0000000..5fc8316 --- /dev/null +++ b/styles/all/template/event/overall_footer_right_side_prepend.html @@ -0,0 +1,7 @@ +{% if S_CONSENTMANAGER_ENABLED %} + +{% endif %} From 42d3769ff048d6074847aa7be64fa097e676a664 Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Mon, 18 May 2026 10:03:17 -0700 Subject: [PATCH 6/7] Fix merge regressions --- tests/acp/acp_module_test.php | 3 +-- tests/functional/frontend_test.php | 6 +++--- tests/service/acp_manager_test.php | 2 +- tests/service/consent_manager_test.php | 2 +- tests/service/media_manager_test.php | 2 +- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/tests/acp/acp_module_test.php b/tests/acp/acp_module_test.php index 3aad188..38577d1 100644 --- a/tests/acp/acp_module_test.php +++ b/tests/acp/acp_module_test.php @@ -133,11 +133,10 @@ public function test_main_module_export_mode() protected function expect_controller_method($method) { - $args = ['phpbb.consentmanager.controller.acp']; $this->container ->expects(self::once()) ->method('get') - ->with(...$args) + ->with('phpbb.consentmanager.controller.acp') ->willReturn($this->acp_controller); $this->acp_controller diff --git a/tests/functional/frontend_test.php b/tests/functional/frontend_test.php index 1a20260..46cd841 100644 --- a/tests/functional/frontend_test.php +++ b/tests/functional/frontend_test.php @@ -66,7 +66,7 @@ public function test_log_endpoint_accepts_valid_anonymous_submission_without_per $payload = $this->fetch_frontend_payload(); $response = $this->post_log_request($payload, array('analytics', 'analytics', 'unknown')); - $this->assertSame(200, self::$client->getResponse()->getStatus()); + $this->assertSame(200, self::$client->getResponse()->getStatusCode()); $this->assertSame(array('necessary', 'analytics'), $response['categories']); $this->assertSame($payload['version'], $response['version']); @@ -87,7 +87,7 @@ public function test_log_endpoint_persists_valid_authenticated_submission() $payload = $this->fetch_frontend_payload(); $response = $this->post_log_request($payload, array('analytics', 'analytics', 'unknown')); - $this->assertSame(200, self::$client->getResponse()->getStatus()); + $this->assertSame(200, self::$client->getResponse()->getStatusCode()); $this->assertSame(array('necessary', 'analytics'), $response['categories']); $this->assertSame($payload['version'], $response['version']); @@ -107,7 +107,7 @@ public function test_log_endpoint_rejects_stale_version() $payload = $this->fetch_frontend_payload(); $response = $this->post_log_request($payload, array('analytics'), $payload['version'] + 1); - $this->assertSame(409, self::$client->getResponse()->getStatus()); + $this->assertSame(409, self::$client->getResponse()->getStatusCode()); $this->assertSame('version_mismatch', $response['error']); } diff --git a/tests/service/acp_manager_test.php b/tests/service/acp_manager_test.php index 62ca3b8..646d44c 100644 --- a/tests/service/acp_manager_test.php +++ b/tests/service/acp_manager_test.php @@ -70,7 +70,7 @@ public function test_log_admin_action_delegates_to_phpbb_log($log_action) $this->create_manager(7, 'admin-session', $log)->log_admin_action($log_action); } - public function log_admin_action_data() + public static function log_admin_action_data() { return [ ['LOG_CONSENTMANAGER_UPDATED'], diff --git a/tests/service/consent_manager_test.php b/tests/service/consent_manager_test.php index f36a602..f639dae 100644 --- a/tests/service/consent_manager_test.php +++ b/tests/service/consent_manager_test.php @@ -1062,7 +1062,7 @@ protected function create_twig_environment_mock($template_path, $result, $invoca { $twig_environment = $this->getMockBuilder('\phpbb\template\twig\environment') ->disableOriginalConstructor() - ->setMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) + ->onlyMethods(array('get_phpbb_root_path', 'getNamespaceLookUpOrder', 'findTemplate')) ->getMock(); $twig_environment->method('get_phpbb_root_path') ->willReturn($this->phpbb_root_path); diff --git a/tests/service/media_manager_test.php b/tests/service/media_manager_test.php index 3f9bca1..8c7dbb8 100644 --- a/tests/service/media_manager_test.php +++ b/tests/service/media_manager_test.php @@ -292,7 +292,7 @@ protected function create_renderer_mock($parameter_name, $parameter_value) $renderer = $this->getMockBuilder('\phpbb\textformatter\s9e\renderer') ->disableOriginalConstructor() - ->setMethods(['get_renderer']) + ->onlyMethods(['get_renderer']) ->getMock(); $renderer->expects(self::once()) ->method('get_renderer') From 01a80870053f7a56d01d9e121f52493e4ec80266 Mon Sep 17 00:00:00 2001 From: Matt Friedman Date: Mon, 1 Jun 2026 11:00:44 -0700 Subject: [PATCH 7/7] Fix tests --- tests/controller/acp_controller_test.php | 2 +- tests/service/acp_manager_test.php | 5 +---- tests/service/media_manager_test.php | 5 +---- tests/service/translation_manager_test.php | 1 - 4 files changed, 3 insertions(+), 10 deletions(-) diff --git a/tests/controller/acp_controller_test.php b/tests/controller/acp_controller_test.php index f14ca1e..308da9a 100644 --- a/tests/controller/acp_controller_test.php +++ b/tests/controller/acp_controller_test.php @@ -248,7 +248,7 @@ public function test_handle_consent_text_uses_sanitized_multibyte_request_variab $request = $this->getMockBuilder('\phpbb\request\request') ->disableOriginalConstructor() - ->setMethods(['is_set_post', 'variable', 'raw_variable']) + ->onlyMethods(['is_set_post', 'variable', 'raw_variable']) ->getMock(); $request->method('is_set_post') ->willReturnCallback(static function ($name) { diff --git a/tests/service/acp_manager_test.php b/tests/service/acp_manager_test.php index 68cb99c..e61eecd 100644 --- a/tests/service/acp_manager_test.php +++ b/tests/service/acp_manager_test.php @@ -794,10 +794,7 @@ protected function get_language_messages(array $message_specs) protected function invoke_method($object, $method_name, array $arguments = []) { - $method = new \ReflectionMethod($object, $method_name); - $method->setAccessible(true); - - return $method->invokeArgs($object, $arguments); + return (new \ReflectionMethod($object, $method_name))->invokeArgs($object, $arguments); } protected function create_log_manager($user_id, $session_id) diff --git a/tests/service/media_manager_test.php b/tests/service/media_manager_test.php index 29aaae0..ab6ddf8 100644 --- a/tests/service/media_manager_test.php +++ b/tests/service/media_manager_test.php @@ -261,10 +261,7 @@ public function test_rewrite_iframe_node_rewrites_static_and_xsl_src_and_onload_ protected function invoke_method($object, $method_name, array $arguments = []) { - $method = new \ReflectionMethod($object, $method_name); - $method->setAccessible(true); - - return $method->invokeArgs($object, $arguments); + return (new \ReflectionMethod($object, $method_name))->invokeArgs($object, $arguments); } protected function build_strip_internal_s9e_fixture() diff --git a/tests/service/translation_manager_test.php b/tests/service/translation_manager_test.php index 867569d..eb483be 100644 --- a/tests/service/translation_manager_test.php +++ b/tests/service/translation_manager_test.php @@ -52,7 +52,6 @@ protected function setUp(): void $this->insert_language('de', 'German'); $config = new \phpbb\config\config(['allow_nocensors' => false]); - set_config(null, null, null, $config); $cache = new \phpbb_mock_cache(); $phpbb_container = new \phpbb_mock_container_builder();