Browse Source

Test for EventManager::debugInfo

Cees-Jan Kiewiet 9 years ago
parent
commit
63b181e5dd
1 changed files with 67 additions and 0 deletions
  1. 67 0
      tests/TestCase/Event/EventManagerTest.php

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

@@ -808,4 +808,71 @@ class EventManagerTest extends TestCase
 
         $this->assertFalse($manager->isTrackingEvents());
     }
+
+    public function testDebugInfo()
+    {
+        $eventManager = new EventManager();
+
+        $this->assertSame(
+            [
+                '_listeners' => [],
+                '_isGlobal' => false,
+                '_eventList' => null,
+                '_trackEvents' => false,
+                '_generalManager' => '(object) EventManager',
+            ],
+            $eventManager->__debugInfo()
+        );
+
+        $func = function () {};
+        $eventManager->on('foo', $func);
+
+        $this->assertSame(
+            [
+                '_listeners' => [
+                    'foo' => '1 listener(s)',
+                ],
+                '_isGlobal' => false,
+                '_eventList' => null,
+                '_trackEvents' => false,
+                '_generalManager' => '(object) EventManager',
+            ],
+            $eventManager->__debugInfo()
+        );
+
+        $eventManager->off('foo', $func);
+
+        $this->assertSame(
+            [
+                '_listeners' => [
+                    'foo' => '0 listener(s)',
+                ],
+                '_isGlobal' => false,
+                '_eventList' => null,
+                '_trackEvents' => false,
+                '_generalManager' => '(object) EventManager',
+            ],
+            $eventManager->__debugInfo()
+        );
+
+        $eventManager->on('bar', function () {});
+        $eventManager->on('bar', function () {});
+        $eventManager->on('bar', function () {});
+        $eventManager->on('baz', function () {});
+
+        $this->assertSame(
+            [
+                '_listeners' => [
+                    'foo' => '0 listener(s)',
+                    'bar' => '3 listener(s)',
+                    'baz' => '1 listener(s)',
+                ],
+                '_isGlobal' => false,
+                '_eventList' => null,
+                '_trackEvents' => false,
+                '_generalManager' => '(object) EventManager',
+            ],
+            $eventManager->__debugInfo()
+        );
+    }
 }