public function testBubbling() { $events = new Elgg_EventsService(); // false stops it $events->registerHandler('foo', 'bar', array('Elgg_EventsServiceTest', 'returnFalse')); $events->registerHandler('foo', 'bar', array('Elgg_EventsServiceTest', 'throwInvalidArg')); $events->trigger('foo', 'bar'); // null allows it $events = new Elgg_EventsService(); // false stops it $events->registerHandler('foo', 'bar', array('Elgg_EventsServiceTest', 'returnNull')); $events->registerHandler('foo', 'bar', array('Elgg_EventsServiceTest', 'throwInvalidArg')); $this->setExpectedException('InvalidArgumentException'); $events->trigger('foo', 'bar'); }
public function testUncallableHandlersAreLogged() { $events = new Elgg_EventsService(); $loggerMock = $this->getMock('Elgg_Logger', array(), array(), '', false); $events->setLogger($loggerMock); $events->registerHandler('foo', 'bar', array(new stdClass(), 'uncallableMethod')); $expectedMsg = 'handler for event [foo, bar] is not callable: (stdClass)->uncallableMethod'; $loggerMock->expects($this->once())->method('warn')->with($expectedMsg); $events->trigger('foo', 'bar'); }