public function testStopPropagation() { $eventManager = new EventManager(); $event = new Event('event1'); $event->setParam('count', 0); $eventManager->addListener('event1', function ($e) { $count = $e->getParam('count', 0); $e->setParam('count', $count + 1); }, 2); $eventManager->addListener('event1', function ($e) { $count = $e->getParam('count', 0); $e->setParam('count', $count + 1); }, 2); $eventManager->addListener('event1', function ($e) { $count = $e->getParam('count', 0); $e->setParam('count', $count + 1); }, 1); $eventManager->addListener('event1', function ($e) { $count = $e->getParam('count', 0); $e->setParam('count', $count + 1); $e->stopPropagation(); }); $eventManager->trigger($event); $this->assertEquals($event->getParam('count'), 2); }
public function testEvent() { $event = new Event('Test'); $this->assertEquals($event->getName(), 'Test'); $this->assertEquals($event->getParams(), array()); $this->assertNull($event->getParam('some')); $this->assertFalse($event->getParam('some', false)); $this->assertFalse($event->isStoppedPropagation()); $event = new Event('Test2', array('foo' => 'bar', 'a' => 100)); $this->assertEquals($event->getName(), 'Test2'); $event->setName('NewTest2'); $this->assertEquals($event->getName(), 'NewTest2'); $this->assertEquals($event->getParams(), array('foo' => 'bar', 'a' => 100)); $this->assertEquals($event->getParam('foo'), 'bar'); $event->setParam('foo', 'baz'); $this->assertEquals($event->getParam('foo'), 'baz'); $event->stopPropagation(); $this->assertTrue($event->isStoppedPropagation()); }