Skip to content

Commit

Permalink
[EventDispatcher] added EventDispatcher::removeSubscriber()
Browse files Browse the repository at this point in the history
  • Loading branch information
fabpot committed Mar 18, 2011
1 parent 10a02ff commit 69d324e
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/Symfony/Component/EventDispatcher/EventDispatcher.php
Expand Up @@ -157,6 +157,14 @@ public function addSubscriber(EventSubscriberInterface $subscriber, $priority =
$this->addListener($subscriber->getSubscribedEvents(), $subscriber, $priority);
}

/**
* @see EventDispatcherInterface::removeSubscriber
*/
public function removeSubscriber(EventSubscriberInterface $subscriber)
{
$this->removeListener($subscriber->getSubscribedEvents(), $subscriber);
}

/**
* Triggers the listener method for an event.
*
Expand Down
Expand Up @@ -61,6 +61,13 @@ function addSubscriber(EventSubscriberInterface $subscriber, $priority = 0);
*/
function removeListener($eventNames, $listener);

/**
* Removes an event subscriber.
*
* @param EventSubscriberInterface $subscriber The subscriber.
*/
function removeSubscriber(EventSubscriberInterface $subscriber);

/**
* Gets the listeners of a specific event or all listeners.
*
Expand Down
Expand Up @@ -168,6 +168,17 @@ public function testAddSubscriber()
$this->assertTrue($this->dispatcher->hasListeners(self::preFoo));
$this->assertTrue($this->dispatcher->hasListeners(self::postFoo));
}

public function testRemoveSubscriber()
{
$eventSubscriber = new TestEventSubscriber();
$this->dispatcher->addSubscriber($eventSubscriber);
$this->assertTrue($this->dispatcher->hasListeners(self::preFoo));
$this->assertTrue($this->dispatcher->hasListeners(self::postFoo));
$this->dispatcher->removeSubscriber($eventSubscriber);
$this->assertFalse($this->dispatcher->hasListeners(self::preFoo));
$this->assertFalse($this->dispatcher->hasListeners(self::postFoo));
}
}

class TestEventListener
Expand Down

0 comments on commit 69d324e

Please sign in to comment.