From 1ccc126806f183ff3ef0b02378c64edef16c1b9e Mon Sep 17 00:00:00 2001 From: Ankit Agarwal Date: Thu, 1 Aug 2013 10:11:58 +0800 Subject: [PATCH] MDL-40963 events: get_name() should use get_called_class() instead of __CLASS__ --- lib/classes/event/base.php | 2 +- lib/tests/event_test.php | 5 +++++ lib/tests/fixtures/event_fixtures.php | 10 ++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/lib/classes/event/base.php b/lib/classes/event/base.php index fd031d4dbb0..f6e4b7bde8c 100644 --- a/lib/classes/event/base.php +++ b/lib/classes/event/base.php @@ -240,7 +240,7 @@ abstract class base implements \IteratorAggregate { */ public static function get_name() { // Override in subclass with real lang string. - $parts = explode('\\', __CLASS__); + $parts = explode('\\', get_called_class()); if (count($parts) !== 3) { return 'unknown event'; } diff --git a/lib/tests/event_test.php b/lib/tests/event_test.php index 052ed5e1583..aa6b9a3e1ca 100644 --- a/lib/tests/event_test.php +++ b/lib/tests/event_test.php @@ -676,6 +676,11 @@ class core_event_testcase extends advanced_testcase { } } + public function test_get_name() { + $event = \core_tests\event\noname_event::create(array('courseid' => 1, 'other' => array('sample' => 1, 'xx' => 10))); + $this->assertEquals("core_tests: noname event", $event->get_name()); + } + public function test_iteration() { $event = \core_tests\event\unittest_executed::create(array('courseid'=>1, 'context'=>\context_system::instance(), 'other'=>array('sample'=>1, 'xx'=>10))); diff --git a/lib/tests/fixtures/event_fixtures.php b/lib/tests/fixtures/event_fixtures.php index c8a287fb1d4..f38993da5e4 100644 --- a/lib/tests/fixtures/event_fixtures.php +++ b/lib/tests/fixtures/event_fixtures.php @@ -184,3 +184,13 @@ class problematic_event3 extends \core\event\base { } } } + +class noname_event extends \core\event\base { + + protected function init() { + $this->data['crud'] = 'c'; + $this->data['level'] = 10; + $this->context = \context_system::instance(); + } +} +