bean = new Account(); Bug52113TestHook::$count = 0; LogicHook::refreshHooks(); } public function tearDown() { if(!empty($this->hook)) { call_user_func_array('remove_logic_hook', $this->hook); } } /** * @ticket 52113 */ public function testCallLogicHookLoop() { $this->hook = array('Accounts', 'test_event', Array(1, 'Test hook', __FILE__, 'Bug52113TestHook', 'count')); call_user_func_array('check_logic_hook_file', $this->hook); for($i=0;$i<50;$i++) { $this->bean->call_custom_logic("test_event"); } $this->assertEquals(50, Bug52113TestHook::$count); } /** * @ticket 52113 */ public function testCallLogicHookRecursive() { $this->hook = array('Accounts', 'test_event', Array(1, 'Test hook', __FILE__, 'Bug52113TestHook', 'recurse')); call_user_func_array('check_logic_hook_file', $this->hook); for($i=0;$i<20;$i++) { $this->bean->call_custom_logic("test_event"); } $this->assertEquals(220, Bug52113TestHook::$count); } } class Bug52113TestHook { static public $count = 0; public function count() { self::$count++; } public function recurse($bean, $event) { $this->count(); $bean->call_custom_logic($event); } }