* upgrade patches for oracle 1.17->1.19
[mediawiki.git] / tests / phpunit / includes / HooksTest.php
blob2f9d9f8d3c11b07470c30ef5f1be560895994f9d
1 <?php
3 class HooksTest extends MediaWikiTestCase {
5 public function testOldStyleHooks() {
6 $foo = 'Foo';
7 $bar = 'Bar';
9 $i = new NothingClass();
11 global $wgHooks;
13 $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someNonStatic' );
15 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
17 $this->assertEquals( 'fOO', $foo, 'Standard method' );
18 $foo = 'Foo';
20 $wgHooks['MediaWikiHooksTest001'][] = $i;
22 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
24 $this->assertEquals( 'foo', $foo, 'onEventName style' );
25 $foo = 'Foo';
27 $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someNonStaticWithData', 'baz' );
29 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
31 $this->assertEquals( 'baz', $foo, 'Data included' );
32 $foo = 'Foo';
34 $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someStatic' );
36 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
38 $this->assertEquals( 'bah', $foo, 'Standard static method' );
39 //$foo = 'Foo';
41 unset( $wgHooks['MediaWikiHooksTest001'] );
45 public function testNewStyleHooks() {
46 $foo = 'Foo';
47 $bar = 'Bar';
49 $i = new NothingClass();
51 Hooks::register( 'MediaWikiHooksTest001', array( $i, 'someNonStatic' ) );
53 Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
55 $this->assertEquals( 'fOO', $foo, 'Standard method' );
56 $foo = 'Foo';
58 Hooks::register( 'MediaWikiHooksTest001', $i );
60 Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
62 $this->assertEquals( 'foo', $foo, 'onEventName style' );
63 $foo = 'Foo';
65 Hooks::register( 'MediaWikiHooksTest001', array( $i, 'someNonStaticWithData', 'baz' ) );
67 Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
69 $this->assertEquals( 'baz', $foo, 'Data included' );
70 $foo = 'Foo';
72 Hooks::register( 'MediaWikiHooksTest001', array( $i, 'someStatic' ) );
74 Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
76 $this->assertEquals( 'bah', $foo, 'Standard static method' );
77 $foo = 'Foo';
81 class NothingClass {
82 static public function someStatic( &$foo, &$bar ) {
83 $foo = 'bah';
84 return true;
87 public function someNonStatic( &$foo, &$bar ) {
88 $foo = 'fOO';
89 $bar = 'bAR';
90 return true;
93 public function onMediaWikiHooksTest001( &$foo, &$bar ) {
94 $foo = 'foo';
95 return true;
98 public function someNonStaticWithData( $foo, &$bar ) {
99 $bar = $foo;
100 return true;