. namespace core\event; // phpcs:disable moodle.PHPUnit.TestCaseProvider.dataProviderSyntaxMethodNotFound /** * Detect common problems in plugin events. * * @group plugin_checks * @package core * @copyright 2025 Petr Skoda * @license https://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ final class plugin_checks_test extends \core\tests\plugin_checks_testcase { /** * Verify all plugin events. * * @dataProvider all_plugins_provider * @coversNothing * * @param string $component * @param string $plugintype * @param string $pluginname * @param string $dir */ public function test_event_classes(string $component, string $plugintype, string $pluginname, string $dir): void { $events = \core_component::get_component_classes_in_namespace($component, 'event'); if (!$events) { $this->expectNotToPerformAssertions(); return; } foreach ($events as $eventclassname => $unused) { $rc = new \ReflectionClass($eventclassname); if ($rc->isAbstract()) { continue; } if (!is_subclass_of($eventclassname, \core\event\base::class)) { // Most likely an observer in irregular location, ignore for now. continue; } $this->assertIsString($eventclassname::get_name()); } } }