Merge "(bug 40257) action=info no longer shows subpages where disabled"
[lhc/web/wiklou.git] / tests / phpunit / includes / HooksTest.php
1 <?php
2
3 class HooksTest extends MediaWikiTestCase {
4
5 public function testOldStyleHooks() {
6 $foo = 'Foo';
7 $bar = 'Bar';
8
9 $i = new NothingClass();
10
11 global $wgHooks;
12
13 $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someNonStatic' );
14
15 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
16
17 $this->assertEquals( 'fOO', $foo, 'Standard method' );
18 $foo = 'Foo';
19
20 $wgHooks['MediaWikiHooksTest001'][] = $i;
21
22 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
23
24 $this->assertEquals( 'foo', $foo, 'onEventName style' );
25 $foo = 'Foo';
26
27 $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someNonStaticWithData', 'baz' );
28
29 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
30
31 $this->assertEquals( 'baz', $foo, 'Data included' );
32 $foo = 'Foo';
33
34 $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someStatic' );
35
36 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
37
38 $this->assertEquals( 'bah', $foo, 'Standard static method' );
39 //$foo = 'Foo';
40
41 unset( $wgHooks['MediaWikiHooksTest001'] );
42
43 }
44
45 public function testNewStyleHooks() {
46 $foo = 'Foo';
47 $bar = 'Bar';
48
49 $i = new NothingClass();
50
51 Hooks::register( 'MediaWikiHooksTest001', array( $i, 'someNonStatic' ) );
52
53 Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
54
55 $this->assertEquals( 'fOO', $foo, 'Standard method' );
56 $foo = 'Foo';
57
58 Hooks::register( 'MediaWikiHooksTest001', $i );
59
60 Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
61
62 $this->assertEquals( 'foo', $foo, 'onEventName style' );
63 $foo = 'Foo';
64
65 Hooks::register( 'MediaWikiHooksTest001', array( $i, 'someNonStaticWithData', 'baz' ) );
66
67 Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
68
69 $this->assertEquals( 'baz', $foo, 'Data included' );
70 $foo = 'Foo';
71
72 Hooks::register( 'MediaWikiHooksTest001', array( $i, 'someStatic' ) );
73
74 Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
75
76 $this->assertEquals( 'bah', $foo, 'Standard static method' );
77 $foo = 'Foo';
78 }
79 }
80
81 class NothingClass {
82 static public function someStatic( &$foo, &$bar ) {
83 $foo = 'bah';
84 return true;
85 }
86
87 public function someNonStatic( &$foo, &$bar ) {
88 $foo = 'fOO';
89 $bar = 'bAR';
90 return true;
91 }
92
93 public function onMediaWikiHooksTest001( &$foo, &$bar ) {
94 $foo = 'foo';
95 return true;
96 }
97
98 public function someNonStaticWithData( $foo, &$bar ) {
99 $bar = $foo;
100 return true;
101 }
102 }