| 19 | | // ->hasListeners() |
|---|
| 20 | | $t->is($dispatcher->hasListeners('foo'), false, '->hasListeners() returns true if the event name has some listeners'); |
|---|
| | 24 | $dispatcher->connect('barbar', 'listenToBarBar'); |
|---|
| | 25 | $dispatcher->disconnect('bar', 'listenToBarBar'); |
|---|
| | 26 | $t->is($dispatcher->getListeners('bar'), array('listenToBar'), '->disconnect() disconnects a listener for an event name'); |
|---|
| | 27 | $t->is($dispatcher->getListeners('barbar'), array('listenToBarBar'), '->disconnect() disconnects a listener for an event name'); |
|---|
| | 28 | |
|---|
| | 29 | |
|---|
| | 30 | // ->getListeners() ->hasListeners() |
|---|
| | 31 | $t->diag('->getListeners() ->hasListeners()'); |
|---|
| | 32 | $t->is($dispatcher->hasListeners('foo'), false, '->hasListeners() returns false if the event has no listener'); |
|---|
| 26 | | function listenToFoo(sfEvent $event) |
|---|
| | 38 | $t->is($dispatcher->getListeners('bar'), array('listenToBar'), '->getListeners() returns an array of listeners connected to the given event name'); |
|---|
| | 39 | $t->is($dispatcher->getListeners('foobar'), array(), '->getListeners() returns an empty array if no listener are connected to the given event name'); |
|---|
| | 40 | |
|---|
| | 41 | $listener = new Listener(); |
|---|
| | 42 | |
|---|
| | 43 | // ->notify() |
|---|
| | 44 | $t->diag('->notify()'); |
|---|
| | 45 | $listener->reset(); |
|---|
| | 46 | $dispatcher = new sfEventDispatcher(); |
|---|
| | 47 | $dispatcher->connect('foo', array($listener, 'listenToFoo')); |
|---|
| | 48 | $dispatcher->connect('foo', array($listener, 'listenToFooBis')); |
|---|
| | 49 | $e = $dispatcher->notify($event = new sfEvent(new stdClass(), 'foo')); |
|---|
| | 50 | $t->is($listener->getValue(), 'listenToFoolistenToFooBis', '->notify() notifies all registered listeners in order'); |
|---|
| | 51 | $t->is($e, $event, '->notify() returns the event object'); |
|---|
| | 52 | |
|---|
| | 53 | $listener->reset(); |
|---|
| | 54 | $dispatcher = new sfEventDispatcher(); |
|---|
| | 55 | $dispatcher->connect('foo', array($listener, 'listenToFooBis')); |
|---|
| | 56 | $dispatcher->connect('foo', array($listener, 'listenToFoo')); |
|---|
| | 57 | $dispatcher->notify(new sfEvent(new stdClass(), 'foo')); |
|---|
| | 58 | $t->is($listener->getValue(), 'listenToFooBislistenToFoo', '->notify() notifies all registered listeners in order'); |
|---|
| | 59 | |
|---|
| | 60 | // ->notifyUntil() |
|---|
| | 61 | $t->diag('->notifyUntil()'); |
|---|
| | 62 | $listener->reset(); |
|---|
| | 63 | $dispatcher = new sfEventDispatcher(); |
|---|
| | 64 | $dispatcher->connect('foo', array($listener, 'listenToFoo')); |
|---|
| | 65 | $dispatcher->connect('foo', array($listener, 'listenToFooBis')); |
|---|
| | 66 | $e = $dispatcher->notifyUntil($event = new sfEvent(new stdClass(), 'foo')); |
|---|
| | 67 | $t->is($listener->getValue(), 'listenToFoolistenToFooBis', '->notifyUntil() notifies all registered listeners in order and stops if it returns true'); |
|---|
| | 68 | $t->is($e, $event, '->notifyUntil() returns the event object'); |
|---|
| | 69 | |
|---|
| | 70 | $listener->reset(); |
|---|
| | 71 | $dispatcher = new sfEventDispatcher(); |
|---|
| | 72 | $dispatcher->connect('foo', array($listener, 'listenToFooBis')); |
|---|
| | 73 | $dispatcher->connect('foo', array($listener, 'listenToFoo')); |
|---|
| | 74 | $e = $dispatcher->notifyUntil($event = new sfEvent(new stdClass(), 'foo')); |
|---|
| | 75 | $t->is($listener->getValue(), 'listenToFooBis', '->notifyUntil() notifies all registered listeners in order and stops if it returns true'); |
|---|
| | 76 | |
|---|
| | 77 | // ->filter() |
|---|
| | 78 | $t->diag('->filter()'); |
|---|
| | 79 | $listener->reset(); |
|---|
| | 80 | $dispatcher = new sfEventDispatcher(); |
|---|
| | 81 | $dispatcher->connect('foo', array($listener, 'filterFoo')); |
|---|
| | 82 | $dispatcher->connect('foo', array($listener, 'filterFooBis')); |
|---|
| | 83 | $e = $dispatcher->filter($event = new sfEvent(new stdClass(), 'foo'), 'foo'); |
|---|
| | 84 | $t->is($e->getReturnValue(), '-*foo*-', '->filter() filters a value'); |
|---|
| | 85 | $t->is($e, $event, '->filter() returns the event object'); |
|---|
| | 86 | |
|---|
| | 87 | $listener->reset(); |
|---|
| | 88 | $dispatcher = new sfEventDispatcher(); |
|---|
| | 89 | $dispatcher->connect('foo', array($listener, 'filterFooBis')); |
|---|
| | 90 | $dispatcher->connect('foo', array($listener, 'filterFoo')); |
|---|
| | 91 | $e = $dispatcher->filter($event = new sfEvent(new stdClass(), 'foo'), 'foo'); |
|---|
| | 92 | $t->is($e->getReturnValue(), '*-foo-*', '->filter() filters a value'); |
|---|
| | 93 | |
|---|
| | 94 | class Listener |
|---|