1*772c9249SMichael Hamann<?php 2*772c9249SMichael Hamann 3*772c9249SMichael Hamann/** 4*772c9249SMichael Hamann * This tests if event handlers can trigger the same event again. 5*772c9249SMichael Hamann * This is used by plugins that modify cache handling and use metadata 6*772c9249SMichael Hamann * for checking cache validity which triggers another cache use event. 7*772c9249SMichael Hamann */ 8*772c9249SMichael Hamannclass events_nested_test extends DokuWikiTest { 9*772c9249SMichael Hamann function test_nested_events() { 10*772c9249SMichael Hamann global $EVENT_HANDLER; 11*772c9249SMichael Hamann $firstcount = 0; 12*772c9249SMichael Hamann $secondcount = 0; 13*772c9249SMichael Hamann 14*772c9249SMichael Hamann $EVENT_HANDLER->register_hook('NESTED_EVENT', 'BEFORE', null, 15*772c9249SMichael Hamann function() use (&$firstcount) { 16*772c9249SMichael Hamann $firstcount++; 17*772c9249SMichael Hamann if ($firstcount == 1) { 18*772c9249SMichael Hamann $param = array(); 19*772c9249SMichael Hamann trigger_event('NESTED_EVENT', $param); 20*772c9249SMichael Hamann } 21*772c9249SMichael Hamann } 22*772c9249SMichael Hamann ); 23*772c9249SMichael Hamann 24*772c9249SMichael Hamann $EVENT_HANDLER->register_hook('NESTED_EVENT', 'BEFORE', null, 25*772c9249SMichael Hamann function() use (&$secondcount) { 26*772c9249SMichael Hamann $secondcount++; 27*772c9249SMichael Hamann } 28*772c9249SMichael Hamann ); 29*772c9249SMichael Hamann 30*772c9249SMichael Hamann $param = array(); 31*772c9249SMichael Hamann trigger_event('NESTED_EVENT', $param); 32*772c9249SMichael Hamann 33*772c9249SMichael Hamann $this->assertEquals(2, $firstcount); 34*772c9249SMichael Hamann $this->assertEquals(2, $secondcount); 35*772c9249SMichael Hamann } 36*772c9249SMichael Hamann} 37