示例#1
0
 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);
 }
示例#2
0
 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());
 }