Browse Source

Added EventManager::isTrackingEvents

Jeremy Harris 9 years ago
parent
commit
d4ddcf5df7
2 changed files with 29 additions and 0 deletions
  1. 10 0
      src/Event/EventManager.php
  2. 19 0
      tests/TestCase/Event/EventManagerTest.php

+ 10 - 0
src/Event/EventManager.php

@@ -515,6 +515,16 @@ class EventManager
     }
 
     /**
+     * Returns whether this manager is set up to track events
+     *
+     * @return bool
+     */
+    public function isTrackingEvents()
+    {
+        return $this->_trackEvents && $this->_eventList;
+    }
+
+    /**
      * Enables the listing of dispatched events.
      *
      * @param \Cake\Event\EventList $eventList The event list object to use.

+ 19 - 0
tests/TestCase/Event/EventManagerTest.php

@@ -784,4 +784,23 @@ class EventManagerTest extends TestCase
         $this->assertTrue($manager->getEventList()->hasEvent('Event'));
         $this->assertTrue(EventManager::instance()->getEventList()->hasEvent('Event'));
     }
+
+    /**
+     * Test isTrackingEvents
+     *
+     * @return void
+     */
+    public function testIsTrackingEvents()
+    {
+        $this->assertFalse(EventManager::instance()->isTrackingEvents());
+
+        $manager = new EventManager();
+        $manager->setEventList(new EventList());
+
+        $this->assertTrue($manager->isTrackingEvents());
+
+        $manager->trackEvents(false);
+
+        $this->assertFalse($manager->isTrackingEvents());
+    }
 }