diff --git a/src/Event/EventManager.php b/src/Event/EventManager.php index d35dcf707c7..b04c955f00c 100644 --- a/src/Event/EventManager.php +++ b/src/Event/EventManager.php @@ -576,10 +576,15 @@ public function __debugInfo() $properties['_listeners'][$key] = $listenerCount . ' listener(s)'; } if ($this->_eventList) { - foreach ($this->_eventList as $event) { + $count = count($this->_eventList); + for ($i = 0; $i < $count; $i++) { + $event = $this->_eventList[$i]; $properties['_dispatchedEvents'][] = $event->getName() . ' with subject ' . get_class($event->getSubject()); } + } else { + $properties['_dispatchedEvents'] = null; } + unset($properties['_eventList']); return $properties; } diff --git a/tests/TestCase/Event/EventManagerTest.php b/tests/TestCase/Event/EventManagerTest.php index 86c7ca91e73..5210758c9c7 100644 --- a/tests/TestCase/Event/EventManagerTest.php +++ b/tests/TestCase/Event/EventManagerTest.php @@ -811,13 +811,30 @@ public function testDebugInfo() [ '_listeners' => [], '_isGlobal' => false, - '_eventList' => null, '_trackEvents' => false, '_generalManager' => '(object) EventManager', + '_dispatchedEvents' => null, ], $eventManager->__debugInfo() ); + $eventManager->setEventList(new EventList()); + $eventManager->addEventToList(new Event('Foo', $this)); + $this->assertSame( + [ + '_listeners' => [], + '_isGlobal' => false, + '_trackEvents' => true, + '_generalManager' => '(object) EventManager', + '_dispatchedEvents' => [ + 'Foo with subject Cake\Test\TestCase\Event\EventManagerTest' + ], + ], + $eventManager->__debugInfo() + ); + + $eventManager->unsetEventList(); + $func = function () { }; $eventManager->on('foo', $func); @@ -828,9 +845,9 @@ public function testDebugInfo() 'foo' => '1 listener(s)', ], '_isGlobal' => false, - '_eventList' => null, '_trackEvents' => false, '_generalManager' => '(object) EventManager', + '_dispatchedEvents' => null, ], $eventManager->__debugInfo() ); @@ -843,9 +860,9 @@ public function testDebugInfo() 'foo' => '0 listener(s)', ], '_isGlobal' => false, - '_eventList' => null, '_trackEvents' => false, '_generalManager' => '(object) EventManager', + '_dispatchedEvents' => null, ], $eventManager->__debugInfo() ); @@ -867,9 +884,9 @@ public function testDebugInfo() 'baz' => '1 listener(s)', ], '_isGlobal' => false, - '_eventList' => null, '_trackEvents' => false, '_generalManager' => '(object) EventManager', + '_dispatchedEvents' => null, ], $eventManager->__debugInfo() );