Followup to r80435: Forgot the svn add
[lhc/web/wiklou.git] / tests / phpunit / includes / HooksTest.php
1 <?php
2
3
4 class HooksTest extends MediaWikiTestCase {
5
6
7 public function testOldStyleHooks() {
8
9 $foo = 'Foo';
10 $bar = 'Bar';
11
12 $i = new NothingClass();
13
14 global $wgHooks;
15
16 $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someNonStatic' );
17
18 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
19
20 $this->assertEquals( 'fOO', $foo, 'Standard method' );
21 $foo = 'Foo';
22
23
24 $wgHooks['MediaWikiHooksTest001'][] = $i;
25
26 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
27
28 $this->assertEquals( 'foo', $foo, 'onEventName style' );
29 $foo = 'Foo';
30
31
32 $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someNonStaticWithData', 'baz' );
33
34 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
35
36 $this->assertEquals( 'baz', $foo, 'Data included' );
37 $foo = 'Foo';
38
39
40 $wgHooks['MediaWikiHooksTest001'][] = array( $i, 'someStatic' );
41
42 wfRunHooks( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
43
44 $this->assertEquals( 'bah', $foo, 'Standard static method' );
45 $foo = 'Foo';
46
47
48 unset( $wgHooks['MediaWikiHooksTest001'] );
49
50 }
51
52 public function testNewStyleHooks() {
53
54 $foo = 'Foo';
55 $bar = 'Bar';
56
57 $i = new NothingClass();
58
59
60 Hooks::register( 'MediaWikiHooksTest001', array( $i, 'someNonStatic' ) );
61
62 Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
63
64 $this->assertEquals( 'fOO', $foo, 'Standard method' );
65 $foo = 'Foo';
66
67
68 Hooks::register( 'MediaWikiHooksTest001', $i );
69
70 Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
71
72 $this->assertEquals( 'foo', $foo, 'onEventName style' );
73 $foo = 'Foo';
74
75
76 Hooks::register( 'MediaWikiHooksTest001', array( $i, 'someNonStaticWithData', 'baz' ) );
77
78 Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
79
80 $this->assertEquals( 'baz', $foo, 'Data included' );
81 $foo = 'Foo';
82
83
84 Hooks::register( 'MediaWikiHooksTest001', array( $i, 'someStatic' ) );
85
86 Hooks::run( 'MediaWikiHooksTest001', array( &$foo, &$bar ) );
87
88 $this->assertEquals( 'bah', $foo, 'Standard static method' );
89 $foo = 'Foo';
90
91 }
92
93 }
94
95 class NothingClass {
96
97 static public function someStatic( &$foo, &$bar ) {
98
99 $foo = 'bah';
100
101 return true;
102
103 }
104
105 public function someNonStatic( &$foo, &$bar ) {
106
107 $foo = 'fOO';
108 $bar = 'bAR';
109
110 return true;
111
112 }
113
114 public function onMediaWikiHooksTest001( &$foo, &$bar ) {
115
116 $foo = 'foo';
117
118 return true;
119
120 }
121
122 public function someNonStaticWithData( $foo, &$bar ) {
123
124 $bar = $foo;
125
126 return true;
127
128 }
129
130 }