4 class HooksTest
extends MediaWikiTestCase
{
7 public function testOldStyleHooks() {
12 $i = new NothingClass();
16 $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someNonStatic' );
18 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
20 $this->assertEquals( 'fOO', $foo, 'Standard method' );
24 $wgHooks['MediaWikiHooksTest001'][] = $i;
26 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
28 $this->assertEquals( 'foo', $foo, 'onEventName style' );
32 $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someNonStaticWithData', 'baz' );
34 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
36 $this->assertEquals( 'baz', $foo, 'Data included' );
40 $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someStatic' );
42 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
44 $this->assertEquals( 'bah', $foo, 'Standard static method' );
48 unset( $wgHooks['MediaWikiHooksTest001'] );
52 public function testNewStyleHooks() {
57 $i = new NothingClass();
60 Hooks
::register( 'MediaWikiHooksTest001', array( $i, 'someNonStatic' ) );
62 Hooks
::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
64 $this->assertEquals( 'fOO', $foo, 'Standard method' );
68 Hooks
::register( 'MediaWikiHooksTest001', $i );
70 Hooks
::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
72 $this->assertEquals( 'foo', $foo, 'onEventName style' );
76 Hooks
::register( 'MediaWikiHooksTest001', array( $i, 'someNonStaticWithData', 'baz' ) );
78 Hooks
::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
80 $this->assertEquals( 'baz', $foo, 'Data included' );
84 Hooks
::register( 'MediaWikiHooksTest001', array( $i, 'someStatic' ) );
86 Hooks
::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
88 $this->assertEquals( 'bah', $foo, 'Standard static method' );
97 static public function someStatic( &$foo, &$bar ) {
105 public function someNonStatic( &$foo, &$bar ) {
114 public function onMediaWikiHooksTest001( &$foo, &$bar ) {
122 public function someNonStaticWithData( $foo, &$bar ) {